Guide for Hive Committers
Table of Contents |
---|
This page contains guidelines for committers of the Apache Hive project. (If you're currently a contributor, and are interested in how we add new committers, read BecomingACommitter)
...
The first act of a new core committer is typically to add their name to the credits page. This requires changing the XML source in httphttps://svngithub.com/apache.org/repos/asf/hive/-site/authorblob/srcmain/documentation/content/xdocs/credits.xml. Once done, update the Hive website as described in the Documentation section belowcommunity/people.md
Committers are strongly encouraged to subscribe to the security@hive.apache.org list with their Apache email and help addressing security vulnerability reports.
Review
Hive committers should, as often as possible, attempt to review patches Pull Requests submitted by others. Ideally every submitted patch PR will get reviewed by a committer within a few days. If a committer reviews a patch PR they've not authored, and believe it to be of sufficient quality, then they can commit merge the patchPR, otherwise the patch PR should be cancelled with a clear explanation for why it was rejected.
The list of submitted patches is in the Hive Patchesopen Pull Requests can be found here: Hive Open Pull Requests. This is ordered by time of last modificationcreating. Committers should scan the list from topbottom-to-bottomtop, looking for patches Pull Requests that they feel qualified to review and possibly commit.
For non-trivial changes, it is best to get another committer to review your own patches before commit. Use "Submit Patch" like other contributors, and then wait for a "+1" from another committer before committing.
Reject
merge.
Hive committers can not +1/Approve their own Pull Requests, i.e. you are allowed to commit/merge your own changes only if the Pull Request first receives a +1 vote from another committer. In the past this rule has typically been ignored when making small changes to the website (e.g. adding a new committer to the credits page), but you should follow the standard process for anything else.
Reject
Pull Requests Patches should be rejected which do not adhere to the guidelines in HowToContribute. Committers should always be polite to contributors and try to instruct and encourage them to contribute better patchesPull Requests. If a committer wishes to improve an unacceptable patch, then it should first be rejected, and a new patch should be attached by the committer for reviewchange, then he/she drop review comments and ask the contributor to update.
PreCommit runs, and committing patches
- Run Pre-Commit tests on a Pull Request before committing.
- If the test run is clean (and there's a +1 from a committer), the Pull Request can be merged/committed.
- Test runs may not be clean due to issues in the PR itself, or due to flaky tests. These issues must be fixed and PR should not be committed until the run is clean.
If a commit introduces new test failures, the preferred process is to revert the patch, rather than opening a new JIRA to fix the new failures.
Commit
When you commit/merge a patchPull Request, please:
- Ensure that the patch Pull Request has a +1 vote, and that 24 hours have elapsed since the first +1 vote was cast on JIRAthe Pull Request. Note that this rule appears in the Hive Bylaws. Do not ignore it.
- Include the Jira issue id in the commit message, along with a short description of the change and the name of the contributor if it is not you. Be sure to get the issue id right, as this causes Jira to link to the change in Subversion (use the issue's "All" tab to see these)Git/Github.
- if contributor is you then add the following suffix to commit message "(<you>, reviewed by <reviewer>)". Example: "HIVE-123. Add awesomesauce to the optimizer. (jvs, reviewed by Ashutosh Chauhan)"
- if contributor is not you then add the following suffix to commit message "(<contributor> via <you>)". Example: "HIVE-123. Add awesomesauce to the optimizer. (Mike Brakestoner
- , reviewed by Ashutosh Chauhan)"
Additionally: "Co-authored-by: Ayush Saxena <ayushsaxena@apache.org>" can be used to attribute any additional code contributors.
- Resolve the issue as fixed, thanking the contributor and the reviewers. Always set the "Fix Version" at this point, but please only set a single fix version, the earliest release in which the change will appear. Use the -E option to make sure that empty files are removed during the commitHowever, if a patch is backported to a point release (such as 1.0.2) then multiple fix versions should be set so that the automated release notes can list the Jira issue for the point release as well as the primary release.
Committing Documentation
Hive's official documentation is authored using Forresthosted at Github-Hive-Site. To commit major documentation changes you must have Forrest installed and the forrest
executable on your $PATH
. Note that the current version (0.8) doesn't work properly with Java 6, use Java 5 instead. Documentation is of two types:
- End-user documentation, versioned with releases; and,
- The website. This is maintained separately in subversion, republished as it is changed.
To commit end-user documentation changes to trunk or a branch, ask the user to submit only changes made to the *.xml files in src/docs
. Apply that patch, run ant docs
to generate the html, and then commit. End-user documentation is only published to the web when releases are made, as described in HowToRelease.
To commit changes to the website and re-publish them:
Code Block |
---|
svn co https://svn.apache.org/repos/asf/hive/site
cd site
ant
firefox publish/index.html # preview the changes
svn stat # check for new pages
svn add # add any new pages
svn commit
ssh people.apache.org
cd /www/hive.apache.org
svn up
|
raise a Pull Request to the hive-site repo.
Changes committed to the hive site repo will automatically get published on: https://hive.apache.org/Changes to website (via svn up) might take upto an hour to be reflected on hive site.
Backporting commits to previous branches
NOTE: the information in this section does not match the current practice, which is to re-apply the patch (or a backport of the patch) directly on the branch.
If a patch needs to be backported to previous branches, follow these steps.
- Commit the changes to trunk and note down the revision number, say 4001. (Revision number is displayed as response to your svn commit command).
2. Check out the desired branch and execute this command from the root directory.Code Block svn merge -r 4000:4001 https://svn.apache.org/repos/asf/hive/trunk . svn commit
Dialog
Raise a Pull Request directed toward the target branch with the actual Jira Id/message & commit id.
- If the build is green, the PR can be merged to the desired branch
Dialog
Committers/Contributors can hang out in the #hive channel in Apache Slack workspace Committers should hang out in the #hive room on irc.freenode.net for real-time discussions. However any substantive discussion (as with any off-list project-related discussion) should be re-iterated in Jira or on the developer list.
Note: Committers or individuals with Apache Id can directly join the #hive slack channel on Apache Workspace, any other individual if interested should drop a mail to hive dev mailing list with his email id and any existing member of the #hive apache channel should be able to send him the invite to join the group.
Instructions to add folks to ASF hive channel: https://infra.apache.org/slack.html