Any kind of contribution is encouraged, e.g., Jira items or patchsets.
All the tools require an Linux Foundation (LF) ID.
If you do not have an LF ID, here is how to get one.
We are using Jira to track the project progress, and welcome to report bug issues or create to-do tasks there. Each item should try keeping simple and focused, hence easy to fix and review.
After login with your LF ID, you can see those task items with one of the following statuses:
To Do
: Available for picking and fix.In Progress
: Some on already picked it (check the assignee) to work on.Under Review
: Related patchset has been submitted for review, and added as comment under the Jira item.Done
: Patchset merged, the item has been resolved.
In brief, if you want to contribute, create or find some To Do
item, and assign it to yourself, then update its status to In Progress
. After the item is fixed, remember to mark it as Under Review
and Done
when the patch is submitted and merged.
- Chat: technical discussions and questions
The project employs GitHub as the code commit/review system.
-
Before committing code, please go to Jira to create a new task or check if there's related existing one, then assign yourself as the assignee. Notice each task will get a Jira number like CE-26.
-
Clone the project to your working directory.
$ git clone git@github.com:hyperledger/cello.git
(Optionally) Config your git name and email if not setup previously.
$ git config user.name "your name"
$ git config user.email "your email"
- Assign yourself a
To Do
Jira task, mark it asIn progress
, then create a branch with the Jira task number off of your cloned repository, e.g., for CE-26, it can be:
$ cd cello
$ git checkout -b CE-26
- After modifying the code, run
make check
to make sure all the checking is passed. Then Commit your code with-s
to sign-off, and-a
to automatically add changes (or rungit add .
to include all changes manually).
$ make check
...
py27: commands succeeded
py30: commands succeeded
py35: commands succeeded
flake8: commands succeeded
congratulations :)
$ git commit -s -a
Example commit msg may look like (take CE-1234 for example):
[CE-1234] A short description of your change with no period at the end
You can add more details here in several paragraphs, but please keep each line
width less than 80 characters. A bug fix should include the issue number.
CE-1234 #done.
Signed-off-by: Your Name <committer@email.address>
- Submit your PR using hub, and mark the
corresponding Jira item as
Under Review
.
docs % git push ryjones
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 835 bytes | 835.00 KiB/s, done.
Total 4 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
To github.com:ryjones/cello.git
90f0d2e..ec42e8a master -> master
docs % hub pull-request
https://github.com/hyperledger/cello/pull/145
docs %
Notice you will get a GitHub PR url like https://github.com/hyperledger/cello/pull/145
, open it and check the status.
After the ci checking passed, add reviewers to the reviewer list and also post the GitHub PR url in the chat channel. The patch will be merged into the master
branch after passing the review, then mark the Jira item as Done
.
- If you need to refine the patch further as the reviewers may suggest, you can change on the same branch, and commit the new code with
git commit -a --amend
, and then use thegit review
command again.
This work is licensed under a Creative Commons Attribution 4.0 International License.