Skip to content

Commit

Permalink
Merge pull request #215 from KennyOliver/issue-54
Browse files Browse the repository at this point in the history
Issue 54: Updating `CONTRIBUTING.md`
  • Loading branch information
KennyOliver authored Jan 16, 2025
2 parents ac4aa7d + c20848d commit f70c38c
Showing 1 changed file with 83 additions and 47 deletions.
130 changes: 83 additions & 47 deletions CONTRIBUTING.md
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 &amp; 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 &mdash; see the [LICENSE](./LICENSE) file for details.

&copy; 2024-2025 Kenneth Oliver. All rights reserved.

0 comments on commit f70c38c

Please sign in to comment.