diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..ac1d716437 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,100 @@ +# Contribution Guide + +Thank you for considering contributing to our project! We welcome contributions that align with our goals and help improve the project. To ensure that contributions are valuable and consistent, we ask that all contributors follow these guidelines. + +--- + +## 📋 General Guidelines + +1. **Understand the Project** + Before contributing, take some time to understand the project's purpose, goals, and existing structure. Review the [README](./README.md) and other documentation. + +2. **Respect the Code of Conduct** + We are committed to maintaining a welcoming and inclusive environment. + +3. **Check Existing Issues and Discussions** + Review the [Issues](https://github.com/safe-global/safe-client-gateway/issues) and [Pull Requests](https://github.com/safe-global/safe-client-gateway/pulls) (PRs) sections before opening a new issue or starting a pull request (PR). Your idea might already be in progress or previously discussed. + +--- + +## 🛠️ Contribution Process + +### 1. Fork the Repository (Optional) + +- Fork the repository to your GitHub account. +- Clone your fork to your local machine. + +### 2. Set Up Your Environment + +- Follow the setup instructions in the [README.md](./README.md). + +### 3. Create a New Branch + +- Use a descriptive branch name (e.g., `feature/add-auth`, `bugfix/fix-crash`, or `docs/update-guide`). + +### 4. Make Changes + +- Ensure your changes are consistent with the project's coding style and standards. +- Write clear and concise commit messages. + +### 5. Test Your Changes + +- Run all relevant tests and linters locally to ensure your changes work as expected. +- Add new tests if you're introducing new functionality. + +### 6. Open a Pull Request + +- Go to the main repository and open a PR from your branch. +- Use a clear title and provide a detailed description of your changes. +- Link related issues (e.g., `Fixes #123`). +- If your PR is still in progress, mark it as a draft. + +--- + +## ⚠️ Guidelines for Pull Requests (PRs) + +To prevent issues with PRs: + +1. **Scope Your Changes** + + - Ensure each PR focuses on a single feature, bugfix, or improvement. Avoid combining unrelated changes. + +2. **Communicate Before Major Changes** + + - For significant changes, open an issue first to gather feedback and ensure alignment. + +3. **Adhere to Standards** + + - Follow the project’s coding style, structure, and standards. + - Run all tests and ensure the build passes before submitting your PR. + +4. **Avoid Unsolicited Large Changes** + + - Do not submit large-scale refactors, redesigns, or changes to critical functionality without prior discussion. + +5. **Include Documentation** + - Update documentation if your changes introduce new features or modify existing behavior. + +--- + +## 🚩 PRs We Cannot Accept + +To save time and maintain focus on meaningful improvements, we cannot accept PRs that: + +- Do not align with the project's goals or roadmap. +- Introduce unnecessary complexity or bloat. +- Duplicate existing work or address issues already being worked on. +- Include poorly tested or untested changes. +- Lack meaningful context or description. +- Make minor, inconsequential changes such as fixing typos, reformatting code without a functional purpose, or making stylistic adjustments that do not add value. + - **Note:** If you find a typo or minor issue, please open an issue for discussion. + +--- + +## 🧑‍🤝‍🧑 Getting Help + +If you’re unsure about anything, don’t hesitate to ask for help! Open an issue or comment on an open one, and we’ll be happy to guide you. + +--- + +We appreciate your contributions and effort to make this project better. Thank you for being a part of our community!