⭐🎉 First off, thanks for taking the time to contribute! 🎉⭐
The following is a short set of guidelines for contributing to Iroha.
- Informational Labels
- Pull Request and Issue Labels
- Issue Labels
- Pull Request Labels
- Contact Developers
Bug is an error, design flaw, failure or fault in Iroha that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.
Bugs are tracked as GitHub Issues. To submit a bug, create new Issue and include these details:
- Title
- Write prefix
[Bug]
for the title - Use a clear and descriptive title
- Write prefix
- Body - include the following sections:
- System environment (OS, iroha version)
- Steps to reproduce
- Expected behavior
- Actual behavior
An enhancement is a code or idea, which makes existing code or design faster, more stable, portable, secure or better in any other way.
Enhancements are tracked as GitHub Issues. To submit new enhancement, create new Issue and incllude these details:
- Title
- Write prefix
[Enhancement]
- Use a clear and descriptive title
- Write prefix
- Body - include the following sections:
- Target - what is going to be improved?
- Motivation - why do we need it?
- Description - how to implement it?
A question is any discussion that is typically neigher a bug, nor feature request, nor improvement - "How do I do X?".
Questions are tracked as Github Issues or via private messages in your favourite messenger.
To submit new question in GitHub Issues, it must include these details:
- Title
- Write prefix
[Question]
- Use a clear and descriptive title
- Write prefix
- Body - describe your question with as many details as possible.
Read our C++ Style Guide and start with beginner-friendly issues with label [good-first-issue]
. Indicate somehow that you are working on this task.
-
Fill in the required template
-
Write tests for new code. Test coverage for new code must be at least 70%.
-
Every pull request should be reviewed and get at least two approvals.
-
Do not include issue numbers in the PR title or commit messages.
-
Include issue numbers in Pull Request body only.
-
When finished work, rebase onto base branch with
$ git fetch $ git rebase -i <base-branch>
-
Follow the C++ Style Guide.
-
Follow the Git Style Guide .
-
Document new code based on the Documentation Styleguide
-
End all files with a newline.
- Use present tense ("Add feature", not "Added feature").
- Use imperative mood ("Deploy docker to..." not "Deploys docker to...").
- Write meaningful commit message.
- Signed-off every commit with DCO:
Signed-off-by: $NAME <$EMAIL>
. You can do it automatically usinggit commit -s
. - Do not include PR or Issue number in commit message.
- Limit the first line of commit message to 50 characters or less.
- First line of commit message must contain summary of work done, second line must contain empty line, third and other lines can contain list of commit changes.
- When only changing documentation, include
[ci skip]
in the commit description. - We use mixed approach of Github Flow and Git Flow. More at Iroha Working Agreement.
- Use clang-format for code formatting (we use google code style).
- Follow CppCoreGuidelines and Cpp Best Practices.
- Avoid platform-dependent code.
- Use C++14.
- Use camelCase for class names and methods, use snake_case for variables.
- Use Doxygen.
- Document all public API: methods, functions, members, templates, classes...
Label Name | Description |
---|---|
pri:low |
Low priority. |
pri:normal |
Normal priority. |
pri:important |
Important issue. |
pri:critical |
Critical issue. Must be fixed immediately. |
pri:blocker |
Issue blocked by other issues. |
status:in-progress |
Work in progress. |
status:inactive |
Inactive PR or Issue. Likely to become a candidate-for-closing |
status:wontfix |
Core team has decided not to fix these issue for now. |
Label Name | Description |
---|---|
enhancement:code |
Any improvements in existing code. |
enhancement:idea |
Fresh ideas to enhance existing architecture, design. |
bug:needs-reproduction |
Bugs or reports that are very likely to be bugs. |
bug:confirmed |
Confirmed bug by maintainers. |
feature |
Feature requests -- completely new functionality. |
accepted |
Pull request is accepted and can be merged. |
candidate-for-closing |
Outdated Pull Request / Issue. Lasts for more than 14 days. |
needs-correction |
Pull Request / Issue that should be corrected by author. |
needs-review |
Pull Request / Issue that should be reviewed by maintainer. |
Label Name | Description |
---|---|
question |
Questions more than bug reports or feature requests - "How do I do X" |
good-first-issue |
Good starting point to begin contributing. |
help-wanted |
Maintainers ask for help to work on this issue. |
Label Name | Description |
---|---|
accepted |
Pull request is accepted and can be merged. |
Developers are available at:
Service | Link |
---|---|
RocketChat | https://chat.hyperledger.org/channel/iroha |
Mailing List | [email protected] |
Gitter | https://gitter.im/hyperledger-iroha/Lobby |
Telegram | https://t.me/joinchat/Al-9jkCZ6eePL9JMQtoOJw |
Thank you for reading the document!