-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #215 from KennyOliver/issue-54
Issue 54: Updating `CONTRIBUTING.md`
- Loading branch information
Showing
1 changed file
with
83 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,101 +1,137 @@ | ||
# Contributing to FlavorLang 🌶️ | ||
|
||
Thanks for considering contributing to FlavorLang! I welcome all types of contributions, including bug fixes, new features, documentation improvements, and ideas! | ||
Thanks for considering contributing to FlavorLang! All types of contributions are welcome, including bug fixes, new features, documentation improvements, and ideas. | ||
|
||
--- | ||
|
||
# Table of Contents | ||
|
||
- [How to Contribute](#how-to-contribute) | ||
- [1. Create or Find an Issue](#1-create-or-find-an-issue) | ||
- [2. Get Authorization](#2-get-authorization) | ||
- [3. Clone the Repository](#3-clone-the-repository) | ||
- [4. Create a Branch](#4-create-a-branch) | ||
- [5. Make Frequent and Descriptive Commits](#5-make-frequent-and-descriptive-commits) | ||
- [6. Push Changes](#6-push-changes) | ||
- [7. Open a Pull Request](#7-open-a-pull-request) | ||
- [8. Code Review and Testing](#8-code-review-and-testing) | ||
- [Coding Standards](#coding-standards) | ||
- [Commit Standards](#commit-standards) | ||
- [Code Quality](#code-quality) | ||
- [Code of Conduct](#code-of-conduct) | ||
- [Getting Help](#getting-help) | ||
- [License](#license) | ||
|
||
--- | ||
|
||
## How to Contribute | ||
|
||
### 1. Fork the Repository | ||
### 1. Create or Find an Issue | ||
|
||
Contributions must be linked to an existing issue. If no relevant issue exists, create one and provide a clear description of the problem or feature. | ||
|
||
Click the "Fork" button at the top-right of this repository to create your copy. | ||
### 2. Get Authorization | ||
|
||
### 2. Clone the Repository | ||
Wait for explicit authorization (via comment or mention) before starting work on any issue. | ||
|
||
Clone your fork to your local machine: | ||
### 3. Clone the Repository | ||
|
||
Clone the repository to your local machine: | ||
|
||
```bash | ||
git clone https://github.com/KennyOliver/FlavorLang.git | ||
cd FlavorLang | ||
``` | ||
|
||
### 3. Create a New Branch | ||
### 4. Create a Branch | ||
|
||
Create a branch for your changes: | ||
Create a new branch based on the `main` branch for your contribution. Use the following naming convention: | ||
|
||
```bash | ||
git checkout -b my-feature-branch | ||
git checkout -b issue-<N> | ||
``` | ||
|
||
### 4. Make Changes and Commit | ||
Where `N` is the number of the issue you are addressing. E.g., `issue-123`. | ||
|
||
Implement your changes and commit them: | ||
### 5. Make Frequent and Descriptive Commits | ||
|
||
```bash | ||
git add . | ||
git commit -m "Describe your changes" | ||
``` | ||
Commit your changes often to ensure progress is clear. Avoid committing large bulk changes; keep changes atomic and focused. Use descriptive commit messages in the format: | ||
|
||
### 5. Optional: Sign Your Commits | ||
``` | ||
Action: Title | ||
``` | ||
|
||
While not required, I encourage signing commits for better authenticity: | ||
**Example:** | ||
|
||
```bash | ||
git commit -S -m "Your signed commit message" | ||
``` | ||
Fix: Error caused by `function` | ||
``` | ||
|
||
If you’re unsure how to sign commits, see GitHub’s guide to signing commits. | ||
Provide a detailed description for each commit in the commit body. Mention the issue number using `#N` in the commit description. Enclose any mentions of code (e.g., `my_func`, `my_var`) in backticks for clarity. | ||
Also ensure that any text in the git commit description is done in bullet points. | ||
|
||
### 6. Push to Your Fork: | ||
**Example:** | ||
|
||
Push your branch to your forked repository: | ||
``` | ||
- Did something. | ||
- Some explanation of what was fixed. | ||
- Why the fix was needed / what the issue was. | ||
```bash | ||
git push origin my-feature-branch | ||
#123 | ||
``` | ||
|
||
### 7. Open a Pull Request: | ||
### 6. Push Changes | ||
|
||
Go to the original repository and open a pull request from your branch. Include a detailed description of your changes. | ||
Push your branch to your forked repository: | ||
|
||
--- | ||
```bash | ||
git push origin issue-<N> | ||
``` | ||
|
||
## Coding Standards | ||
### 7. Open a Pull Request | ||
|
||
### Please adhere to the following standards: | ||
Submit a pull request from your branch to the `main` branch of this repository. Include: | ||
|
||
- Use descriptive commit messages. | ||
- Write clear & concise comments where necessary. | ||
- Ensure your code is formatted properly (e.g., consistent indentation, no trailing spaces). | ||
- Add or update tests where applicable. | ||
- A detailed description of your changes. | ||
- A screenshot demonstrating your code in action (not needed if the pull request is exclusively about documentation). | ||
- Reference to the related issue (e.g., "Closes #N"). | ||
|
||
### Pull Request Guidelines | ||
### 8. Code Review and Testing | ||
|
||
- Ensure your pull request includes a clear description of your changes. | ||
- Reference related issues or feature requests, if any. | ||
- Pass all CI/CD checks before requesting a review. | ||
Your pull request will undergo a code review. All GitHub Actions tests must pass before merging. After approval, we will merge your changes into the `main` branch. | ||
|
||
### Signed Commits (Optional but Recommended) | ||
## Coding Standards | ||
|
||
I encourage contributors to sign their commits for enhanced authenticity, but it’s not required. | ||
### Commit Standards | ||
|
||
If you’d like to sign your commits: | ||
- Use frequent, descriptive commits. | ||
- Follow the format: `Action: Title`. | ||
- Include issue references (e.g., `#N`). | ||
- Enclose code mentions in backticks. | ||
- Use bullet points for git commit descriptions. | ||
|
||
- Generate a GPG key or SSH key. | ||
- Configure Git to use your signing key: | ||
### Code Quality | ||
|
||
```bash | ||
git config --global user.signingkey <your-key-id> | ||
git config --global commit.gpgsign true | ||
``` | ||
- Write clear and concise comments. | ||
- Ensure consistent formatting (e.g., proper indentation, no trailing spaces). | ||
- Add or update tests when applicable. | ||
|
||
## Code of Conduct | ||
|
||
All contributors are expected to follow the Code of Conduct. Please be respectful & collaborative. | ||
All contributors are expected to follow the [Code of Conduct](./CODE_OF_CONDUCT.md). Please be respectful & collaborative. | ||
|
||
## Getting Help | ||
|
||
If you have questions or need help: | ||
|
||
- Check the Issues for similar questions or raise a new one. | ||
- Contact the maintainers directly via the repository discussions. | ||
- Tag me, @KennyOliver, in the issue or discussion for direct assistance. | ||
|
||
--- | ||
|
||
## License | ||
|
||
This project is licensed under the Apache 2.0 License — see the [LICENSE](./LICENSE) file for details. | ||
|
||
© 2024-2025 Kenneth Oliver. All rights reserved. |