chore: Add contribution guide file
Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
parent
42aa6837ed
commit
887e0847cd
1 changed files with 113 additions and 0 deletions
113
CONTRIBUTING.md
Normal file
113
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
# Contributing to oxidetalis
|
||||||
|
|
||||||
|
Thank you for your interest in contributing to oxidetalis! We welcome
|
||||||
|
contributions from the community to help improve the project.
|
||||||
|
|
||||||
|
## Reporting Issues
|
||||||
|
|
||||||
|
If you encounter any issues or bugs while using oxidetalis, please open a new
|
||||||
|
issue on the Forgejo repository. When reporting an issue, please provide as much
|
||||||
|
detail as possible, including steps to reproduce the issue and any relevant
|
||||||
|
error messages.
|
||||||
|
|
||||||
|
## Feature Requests
|
||||||
|
|
||||||
|
If you have a feature request or an idea for improving oxidetalis, we encourage
|
||||||
|
you to open a new issue on the Forgejo repository. Please describe the feature
|
||||||
|
or improvement in detail and provide any relevant context or examples.
|
||||||
|
|
||||||
|
## Writing Code
|
||||||
|
Before you start writing code, please open a new issue first to discuss the
|
||||||
|
proposed changes. This will help ensure that your contribution is aligned with
|
||||||
|
the project's goals and that you are not duplicating work that is already in
|
||||||
|
progress or has been completed by someone else.
|
||||||
|
|
||||||
|
### Rust Version
|
||||||
|
In the oxidetalis project, we always try to stay on the lowest MSRV possible for
|
||||||
|
compatibility, but the development process relies on the nightly release to get
|
||||||
|
the latest rust-analyzer and rustfmt features.
|
||||||
|
|
||||||
|
You can check the nightly version used in the project in the `rust-toolchain`
|
||||||
|
file. And the MSRV in the `Cargo.toml` file.
|
||||||
|
|
||||||
|
### PR title
|
||||||
|
Your PR will squash and merge, and your PR title will be used as the commit
|
||||||
|
message. Please make sure your PR title is clear and concise.
|
||||||
|
|
||||||
|
The title must follow [Conventional Commits] format. This means that the title
|
||||||
|
should be in the following format:
|
||||||
|
|
||||||
|
```
|
||||||
|
<type>(<scope>): <description>
|
||||||
|
```
|
||||||
|
|
||||||
|
- The `<scope>` is optional, and the `<description>` should be a clear and
|
||||||
|
concise summary of the changes.
|
||||||
|
- You should use the imperative, present tense (e.g., "Add feature" instead of
|
||||||
|
"Added feature").
|
||||||
|
- The `<type>` should be one of the following:
|
||||||
|
- `feat`: A new feature
|
||||||
|
- `fix`: A bug fix
|
||||||
|
- `docs`: Documentation changes
|
||||||
|
- `refactor`: Refactoring code without changing its behavior
|
||||||
|
- `change`: Changes that affect the meaning of the code
|
||||||
|
- `deprecate`: Changes that deprecate a part of the code
|
||||||
|
- `remove`: Changes that remove a deprecated part of the code
|
||||||
|
- `security`: Changes that affect the security of the code
|
||||||
|
- `perf`: A code change that improves performance
|
||||||
|
- `test`: Adding missing tests or correcting existing tests
|
||||||
|
- `chore`: Changes to the build process or auxiliary tools and libraries such
|
||||||
|
as documentation generation
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
```
|
||||||
|
- feat: something
|
||||||
|
- chore(ci): update MSRV
|
||||||
|
```
|
||||||
|
|
||||||
|
### PR description
|
||||||
|
Your PR description should provide a clear and concise summary of the changes
|
||||||
|
you have made. It should also include any relevant context or background
|
||||||
|
information that will help the project maintainers understand the purpose of the
|
||||||
|
changes. Make sure to reference the issue that your PR is addressing, and note
|
||||||
|
any breaking changes that your PR introduces.
|
||||||
|
|
||||||
|
Make sure to explain why you made the changes not just what changes you made.
|
||||||
|
|
||||||
|
### Code Style
|
||||||
|
|
||||||
|
Please follow the existing code style and conventions used in the oxidetalis
|
||||||
|
project. This includes:
|
||||||
|
|
||||||
|
- Using Rust's official formatting tool, `rustfmt`, to format your code.
|
||||||
|
- Writing clear and concise code with meaningful variable and function names.
|
||||||
|
- Adding comments to explain complex logic or algorithms.
|
||||||
|
|
||||||
|
### CI
|
||||||
|
Run the CI before submitting your code. You can run the CI with the following
|
||||||
|
command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
just ci
|
||||||
|
```
|
||||||
|
|
||||||
|
This will run the tests and check the code formatting. If the CI fail, please
|
||||||
|
fix the issues before submitting your code.
|
||||||
|
|
||||||
|
## Code Review
|
||||||
|
|
||||||
|
All contributions to oxidetalis will go through a code review process. This
|
||||||
|
ensures that the code meets the project's standards and maintains its quality.
|
||||||
|
Please be open to feedback and suggestions from the project maintainers during
|
||||||
|
the code review process.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
By contributing to oxidetalis, you agree that your contributions will be
|
||||||
|
licensed under the project's licenses. Each crate in the project has its own
|
||||||
|
license, so please make sure you are aware of the license terms before making a
|
||||||
|
contribution.
|
||||||
|
|
||||||
|
Happy contributing!
|
||||||
|
|
||||||
|
[Conventional Commits]: https://www.conventionalcommits.org/en/v1.0.0/
|
Loading…
Reference in a new issue