First off, thanks for taking the time to contribute to 🚀 Blockscout-Rust 🚀 projects! 🎉
The following is a set of guidelines for contributing to blockscout-rs, which is hosted in the Blockscout organization.
This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
- Check the issues list to see if the problem has already been reported.
- Update to the latest version and see if the issue persists.
Bugs are tracked as GitHub issues. Create an issue and provide the following information by filling in the provided template:
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible.
- Describe the behavior you observed after following the steps and explain why it is problematic.
- Explain which behavior you expected to see instead and why.
- Include screenshots, logs, ENVs, or any other information that might help in understanding the problem.
- Mark the issue with the appropriate label (bug, enhancement, documentation, question, etc).
We welcome code contributions of all sizes - from fixing typos to implementing new features. However, if you're only fixing typos, we encourage you to bundle these changes with other meaningful code improvements to maximize the impact of your contribution.
For example, while fixing typos, you could:
- Add missing code comments
- Improve error messages
- Update outdated examples
- Enhance test coverage
This helps ensure that each pull request provides substantial value to the project.
If you want to help us improve the project, you can contribute code. To do so, follow these steps:
- Fork (https://github.com/blockscout/blockscout-rs/fork) the repository and make changes on your fork in a feature branch.
- Create your branch with the name
<name>/<short-slug-of-your-feature-or-fix> - Write code to implement features or fix bugs. Make sure your code is well-tested
- Commit your changes. Commit messages SHOULD follow our commit message conventions format.
- Create a pull request. The title of the pull request MUST follow the commit message conventions format.
For more details see RUST_CODE_STYLE_GUIDE.md
-
Use Conventional Commits:
- Follow Conventional Commits v1.0.0.
-
Commit Types:
Note: those types are preferred, but you can use any other type if it fits better.
feat: New featurefix: Bug fixperf: Performance improvementchore: Maintenance tasks (including code changes that do not fit other types)refactor: Code restructuringci: Continuous Integration changesdocs: Documentation updatesbuild: Build system changesconfig: Configuration changestest: Adding or updating testsrevert: Reverting commit changes
-
Message Format
type(scope): description- Type: Lowercase (e.g.,
feat,fix) - Scope: Service name (optional)
- Description: Short and concise (imperative mood)
- Type: Lowercase (e.g.,
-
Examples:
feat: add new feature ...fix: correct bug ...docs: update READMEci: add new workflow
-
Pull Request Titles
- SHOULD include service name (in
lower-kebab-case) or other scope of change after<type> - Examples:
feat(stats): add resolution for newAccounts chartfix(stats): correct wrong update bugdocs: add CONTRIBUTING.mdci(verifier): update docker build step
- SHOULD include service name (in