...
- Find the existing BookKeeper JIRA ticket that the change pertains to.
- Do not create a new JIRA ticket if creating a change to address an existing ticket in JIRA; add to the existing discussion and work instead.
- To avoid conflicts, assign the JIRA ticket to yourself if you plan to work on it.
- Look for existing pull requests or review boards that are linked from the the JIRA ticket, to understand if someone is already working on it.
- If the change is new, then it usually needs a new JIRA ticket. However, trivial changes, where "what should change" is virtually the same as "how it should change" do not require a JIRA ticket. Example: "Fix typos in Foo javadoc"
- If required, create a new JIRA ticket:
- Provide a descriptive Title. "Update web UI" or "Problem in ledger storage" is not sufficient. "Potential resource leak with unclosed LedgerManager in BookieShell" is good.
- Write a detailed description. For bug reports, this should ideally include a short reproduction of the problem. For new features, it may include a design document or a link to mailing list discussion.
- Set required fields:
- Issue Type. Generally, Bug, Improvement, New Feature, Documentation are the only types used in BookKeeper.
- Priority. Set to Major or below; higher priorities are generally reserved for committers to set. JIRA tends to unfortunately conflate "size" and "importance" in its Priority field values. Their meaning is roughly:
Blocker: pointless to release without this change as the release would be unusable to a large minority of users
Critical: a large minority of users are missing important functionality without this, and/or a workaround is difficult
Major: a small minority of users are missing important functionality without this, and there is a workaround
Minor: a niche use case is missing some support, but it does not affect usage or is easily worked around
Trivial: a nice-to-have change but unlikely to be any problem in practice otherwise
- Component
- Affects Version. For Bugs, assign at least one version that is known to exhibit the problem or need the change.
- To avoid conflicts, assign the JIRA ticket to yourself if you plan to work on it. Leave it unassigned otherwise.
- If the change is a large change, consider inviting discussion on the issue at dev@bookkeeper.apache.org first before proceeding to implement the change.
Review Board Workflow
Info |
---|
Steps 4-7 could be automated using BookKeeper Patch Review Script |
Create local branch from master.
Code Block $ git checkout -b BOOKKEEPER-XXXX
- Make your modifications, add tests and run the whole test suite.
- Commit your changes.
Generate a patch.
Code Block $ git format-patch --no-prefix master
- Upload the patch to JIRA.
- If the patch is non-trivial, also upload it to review board under bookkeeper-git.
- Click on Patch Available in JIRA to signal that the patch is ready to be reviewed.
- The jenkin build will build the patch and run various checks like long lines, trailing spaces, findbugs. The pre-commit build report will be posted as a comment to the ticket. Please watch the comment and address the failures observed in pre-commit job and iterator over them.
...