Thank you for your interest in contributing the Hedera SDK for Java!
We appreciate your interest in helping us and the rest of our community. We welcome bug reports, feature requests, and code contributions.
Jump To:
Bug reports are accepted through the Issues page.
The bug label is used to track bugs.
Before submitting a bug report, please do the following:
-
Do a search through the existing issues to make sure it has not already been reported. If you find that the bug has already been raised, please give it a +1 to help us to decide which issues we prioritise.
-
If possible, upgrade to the latest release of the SDK. It's possible the bug has already been fixed in the latest version. We will do our utmost to maintain backwards compatibility between patch version releases, so that you can be confident that your application will continue to work as expected with the newer version.
If you have completed these steps and you need to submit a bug report, please read the guidelines below.
Please ensure that your bug report contains the following:
- A short, descriptive title. Other community members should be able to understand the nature of the issue by reading this title.
- A succinct, detailed description of the problem you're experiencing. This should include:
- Expected behaviour of the SDK and the actual behaviour exhibited.
- Any details of your application development environment that may be relevant.
- If applicable, the exception stack-trace.
- If you are able to create one, include a Minimal Working Example that reproduces the issue.
- Markdown formatting as appropriate to make the report easier to read; for example use code blocks when pasting a code snippet or exception stack-trace.
Feature requests are also submitted through the Issues page.
As with Bug Reports, please do a search of the open requests first before submitting a new one to avoid duplicates. If you do find a a feature request that represents your suggestion, please give it a +1.
NOTE: If you intend to implement this feature, please submit the feature request before working on any code changes. This will allow members on the SDK team to assess the idea, discuss the design with you and ensure that it makes sense to include such a feature in the SDK.
Feature requests are labeled as enhancements.
Open an issue with the following:
- A short, descriptive title. Other community members should be able to understand the nature of the issue by reading this title.
- A detailed description of the the proposed feature. Explain why you believe it should be added to the SDK. Illustrative example code may also be provided to help explain how the feature should work.
- Markdown formatting as appropriate to make the request easier to read.
- If you plan to implement this feature yourself, please let us know that you'd like to the issue to be assigned to you.
Code contributions to the SDK are handled using Pull Requests. Please keep the following in mind when considering a code contribution:
-
The SDK is released under the Apache 2.0 License.
Any code you submit will be released under this license.
-
For anything other than small or quick changes, you should always start by reviewing the Issues page to ensure that the nobody else is already working on the same issue.
If you're working on a bug fix, check to see whether the bug has already been reported. If it has but no one is assigned to it, ask one of the maintainers to assign it to you before beginning work. If you're confident the bug hasn't been reported yet, create a new Bug Report and ask us to assign it to you.
If you are thinking about adding entirely new functionality, open a Feature Request or get in touch with us on Discord to ask for feedback first before beginning work; this is to ensure that nobody else is already working on the feature (or another similar feature) and to confirm that it makes sense for such functionality to be included in the SDK.
-
All code contributions must be accompanied with new or modified tests that verify that the code works as expected; i.e. that the issue has been fixed or that the functionality works as intended.
Before submitting your pull request, refer to the pull request readiness checklist below:
- Includes tests to exercise the new behaviour
- Code is documented, especially public and user-facing constructs
- Local run of
mvn checkstyle:check
andmvn spotbugs:check
succeed - Git commit message is detailed and includes context behind the change
- If the change is related to an existing Bug Report or Feature Request, please include its issue number
To contribute, please fork the GitHub repository and submit a pull request to the master
branch.
All Pull Requests must be approved by at least one member of the SDK team before it can be merged in. The members only have limited bandwidth to review Pull Requests so it's not unusual for a Pull Request to go unreviewed for a few days, especially if it's a large or complex one. After a couple of weeks, if you haven't received any feedback regarding your Pull Request from the SDK team, feel free to contact us on Discord to ask for a review.
- Join us in our Discord channel; there you can engage with the Hedera team and other developers and enthusiasts.