Drafted by "Him7n [email protected]"
Approved by "Lab Rat [email protected]"
Thank you for considering contributing to our repository! We welcome contributions from the community to help improve our project. Before you start, please take a moment to read and understand these guidelines to ensure a smooth collaboration.
Please review and adhere to our Code of Conduct to maintain a friendly and inclusive environment for all contributors and users.
There are several ways to contribute to our project:
If you encounter a bug or unexpected behavior, please create a new issue in our issue tracker. Provide a detailed description, including steps to reproduce the issue and any relevant error messages.
If you have an idea for an enhancement or new feature, you can open a new issue in the issue tracker to discuss it. Please include a clear and concise description of your suggestion.
If you want to contribute code to the project, follow the steps outlined below:
Follow instructions in INSTALL to smoothly set up your environment and get going. If you need any additional help, then please ask it out by creating a new issue.
If you haven't already, fork our repository on GitHub by clicking the "Fork" button on the top right of the repository page. This creates a copy of the repository under your GitHub account.
Before making changes, create a new branch to work in. Choose a descriptive name for your branch related to the issue or feature you're working on:
git checkout -b feature/your-feature-name
Now you can make changes to the code. Ensure you follow the project's coding standards and guidelines. Commit your changes with clear and concise commit messages:
git add .
git commit -m "feat: Add your descriptive commit message here"
It is a recommended best practice to keep your changes as logically grouped as possible within individual commits. There is no limit to the number of commits any single Pull Request may have, and many contributors find it easier to review changes that are split across multiple commits.
Please adhere to the general guideline that you should never force push to a publicly shared branch. Once you have opened your pull request, you should consider your branch publicly shared. Instead of force pushing you can just add incremental commits; this is generally easier on your reviewers. If you need to pick up changes from main, you can merge main into your branch.
A reviewer might ask you to rebase a long-running pull request in which case force pushing is okay for that request.
Note that squashing at the end of the review process should also not be done, that can be done when the pull request is integrated via GitHub.
<type>: <short summary>
│ │
│ └── Summary in present tense.
| Not capitalized.
| No period at the end.
│
│
└── Commit Type: build | chore | ci | docs | feat | fix | perf | refactor | test
<type>
must be one of the following:
build
: Changes that affect the build system or external dependencies (example scopes:deps
,dev-deps
,metadata
)chore
: Changes such as fixing formatting or addressing warnings or lints, or other maintenance changesci
: Changes to our CI configuration files and scripts (examples:workflows
,dependabot
,renovate
)docs
: Documentation only changesfeat
: A new featurefix
: A bug fixperf
: A code change that improves performancerefactor
: A code change that neither fixes a bug nor adds a featuretest
: Adding missing tests or correcting existing tests
Use the <summary>
field to provide a succinct description of the change:
- Use the imperative, present tense: "change" not "changed" nor "changes".
- Don't capitalize the first letter.
- No period (.) at the end.
If you make changes that affect the project's documentation, please update the documentation accordingly in the /docs
directory.
When you're ready to submit your changes, push your branch to your forked repository on GitHub:
git push origin feature/your-feature-name
Then, open a Pull Request (PR) on the main repository. Be sure to provide a clear title and description of your changes.
Your PR will be reviewed by our maintainers, who may provide feedback or request further changes. Be responsive to their comments and update your branch as needed.
Once your changes are approved, they will be merged into the main branch, and your contribution will become part of the project!
By contributing to this project, you agree that your contributions will be licensed under the Apache-2.0.