2.9 KiB
Contributing
Corda is an open-source project and we welcome contributions. This guide explains how to contribute back to Corda.
Identifying an area to contribute
There are several ways to identify an area where you can contribute to Corda:
- Browse issues labelled as
HelpWanted
on the Corda JIRA board- Any issue with a
HelpWanted
label is considered ideal for open-source contributions - If there is a feature you would like to add and there isn't a corresponding issue labelled as
HelpWanted
, that doesn't mean your contribution isn't welcome. Please reach out on the Corda Slack channel (see below) to clarify
- Any issue with a
- Check the Corda GitHub issues
- It's always worth checking in the Corda Slack channel (see below) whether a given issue is a good target for your contribution. Someone else may already be working on it, or it may be blocked by an on-going piece of work
- Ask in the Corda Slack channel
Making the required changes
- Create a fork of the master branch of the Corda repo
- Clone the fork to your local machine
- Make the changes, in accordance with the
code style guide </codestyle>
Testing the changes
Running the tests
Your changes must pass the tests described here </testing>
.
Building against the master branch
You may also want to test your changes against a CorDapp defined outside of the Corda repo. To do so, please follow the instructions here </building-against-master>
.
Merging the changes back into Corda
Create a pull request from your fork to the master branch of the Corda repo
Complete the pull-request checklist in the comments box:
- State that you have run the tests
- State that you have included JavaDocs for any new public APIs
- State that you have included the change in the
changelog </changelog>
andrelease notes </release-notes>
where applicable - State that you are in agreement with the terms of CONTRIBUTING.md
Request a review from a member of the Corda platform team via the Corda Slack channel
Wait for your PR to pass all four types of continuous integration tests (integration, API stability, build and unit)
- Currently, external contributors cannot see the output of these tests. If your PR fails a test that passed locally, ask the reviewer for further details
Once a reviewer has approved the PR and the tests have passed, squash-and-merge the PR as a single commit