We welcome contributions to the Hyperledger Fabric Project. There's always plenty to do!
If you have any questions about the project or how to contribute, you can find us in the fabric-contracts-api channel on Discord.
Here are a few guidelines to help you contribute successfully...
All issues are tracked in the issues tab in GitHub. If you find a bug which we don't already know about, you can help us by creating a new issue describing the problem. Please include as much detail as possible to help us track down the cause.If you want to begin contributing code, looking through our open issues is a good way to start. Try looking for recent issues with detailed descriptions first, or ask us on Discord if you're unsure which issue to choose.
Make sure you have the support of the Hyperledger Fabric community before investing a lot of effort in project enhancements. Please look up the Fabric RFC process for large changes.
We use our own forks and Github Flow to deliver changes to the code. Follow these steps to deliver your first pull request:
- Fork the repository and create a new branch from
main
. - If you've added code that should be tested, add tests!
- If you've added any new features or made breaking changes, update the documentation.
- Ensure all the tests pass.
- Include the JIRA issue number, a descriptive message, and the Developer Certificate of Origin (DCO) sign-off on all commit messages.
- Issue a pull request!
- GitHub Actions builds must succeed before the pull request can be reviewed and merged.
Please to try to be consistent with the rest of the code and conform to checkstyle rules where they are provided. Spotless is used to enforce code formatting. You can run ./gradlew spotlessApply
to apply the mandated code formatting to the codebase before submitting changes to avoid failing the build with formatting violations.
See our Code of Conduct Guidelines.
Should you have any questions or concerns, please reach out to one of the project's Maintainers.
Some useful gradle commands to help with building. You can add or remove the --no-daemon
as you wish; depending on the performance of you local machine.
# build everything
./gradlew --no-daemon build
# clean up to force tests and compile to rerun
./gradlew clean cleanTest
./gradlew --no-daemon :fabric-chaincode-shim:build
# build docker image
./gradlew :fabric-chaincode-docker:buildImage
You can also scan for vulnerabilities in dependencies (requires Make and Go to be installed):
make scan
See the Hyperledger Fabric contributors guide for more details, including other Hyperledger Fabric projects you may wish to contribute to.
This work is licensed under a Creative Commons Attribution 4.0 International License