Thank you for considering contributing to Safrochain! This document outlines the process for contributing to this repository.
This project and everyone participating in it is governed by the CODE_OF_CONDUCT.md. By participating, you are expected to uphold this code.
- Fork the repository and clone your fork.
- Add the upstream remote:
git remote add upstream https://github.com/Safrochain-Org/safrochain-node - Create a feature branch from
main:git checkout -b feat/your-feature-name - Install dependencies:
make install
- Make your changes on the feature branch.
- Run tests:
make test - Format code:
make format - Run lint:
make lint - Commit following Conventional Commits:
feat:- new featurefix:- bug fixdocs:- documentation onlychore:- maintenance, tooling, dependenciestest:- adding or updating testsrefactor:- code change that neither fixes a bug nor adds a feature
- Ensure all tests pass:
make test - Update documentation if your changes affect public APIs.
- Update
CHANGELOG.mdif your changes are significant. - Submit the PR against the
mainbranch. - Ensure the PR description clearly describes the problem and solution, and references related issues.
- Go: Follow Effective Go and use
gofmt. - Protobuf: Follow Google's Protocol Buffer Style Guide.
- Keep functions focused and small; write godoc comments for exported symbols.
- Write unit tests for new functionality.
- Run the full test suite before submitting:
make test - For Cosmos SDK module changes, add integration tests.
- Add godoc comments to all exported functions, types, and constants.
- Keep module READMEs up-to-date.
- Document breaking changes in CHANGELOG.md.
Open a GitHub Discussion or create an issue.