From 887e0847cd43bc5bbe745949bced556c85748678 Mon Sep 17 00:00:00 2001
From: Awiteb
Date: Wed, 26 Jun 2024 23:04:48 +0300
Subject: [PATCH] chore: Add contribution guide file
Signed-off-by: Awiteb
---
CONTRIBUTING.md | 113 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 113 insertions(+)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..26f68f1
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -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:
+
+```
+():
+```
+
+- The `` is optional, and the `` 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 `` 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/