blob: a99b6b8a7ff89f3ad4743ab89b5c8fa281d32ed8 [file] [log] [blame]
~~
~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements. See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership. The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied. See the License for the
~~ specific language governing permissions and limitations
~~ under the License.
~~
Committer Guide
%{toc}
This page provides necessary guidelines for committers of Apache Lens.
* New Committers
New committers are encouraged to first read Apache's generic committer documentation:
* {{{http://www.apache.org/dev/new-committers-guide.html} New committer guide}}
* {{{http://www.apache.org/dev/committers.html}Committer FAQ}}
* {{{http://www.apache.org/dev/committers.html#committer-responsibilities} Committer Responsibilities}}
* As first commit - Add your name to the list of Committers in pom.xml of the project. Follow the steps in commit
section for instructions. Specify the roles that have been granted to you in the invite mail. If you are invited as
committer, just add your role as "Committer". If you are invited as PMC, specify "PMC" and "Committer" as your roles.
A typical committer tag would look like
+---
<developer>
<id>amareshwari</id>
<email>amareshwari@apache.org</email>
<name>Amareshwari Sriramadasu</name>
<timezone>+5.5</timezone>
<roles>
<role>PMC</role>
<role>Committer</role>
</roles>
</developer>
+---
* Review
Lens committers should, as often as possible, attempt to review patches submitted by others. Ideally every submitted
patch will get reviewed by a committer within a few days. If a committer reviews a patch they've not authored,
and believe it to be of sufficient quality, then they can commit the patch, otherwise the patch should be cancelled
with a clear explanation for why it was rejected.
The list of submitted patches should be ordered by Updated timestamp -
{{{https://issues.apache.org/jira/issues/?jql=project%20%3D%20LENS%20AND%20status%20%3D%20%22Patch%20Available%22%20ORDER%20BY%20updated%20DESC%2C%20priority%20DESC} Lens patch available issues}}
and {{{https://reviews.apache.org/dashboard/?group=lens&view=to-group}Review board}}. Committers should scan the list
from one which was updated earliest, looking for patches that they feel qualified to review and possibly commit.
Review guidelines are put up at {{{./contribute.html#Review}review guidelines in contributer guide}}
The committers are allowed to commit their own patch only if the patch first receives a +1 vote from another
committer.
Patches should be rejected which do not adhere to the guidelines above and
{{{./contribute.html#Code_compliance}code compliance guidelines in contributer guide}}. Committers should always
be polite to contributors and try to instruct and encourage them to contribute better patches. 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 review.
* Commit
The commit repo is at
{{{https://git-wip-us.apache.org/repos/asf/lens.git} https://git-wip-us.apache.org/repos/asf/lens.git}}
When you commit a patch, please:
* Ensure that all tests pass with patch applied.
* Ensure that the patch has a +1 vote from another committer or yourself.
* Ensure that 24 hours have elapsed since the jira is made patch available or the review request is up. As a practice
we should observe this, but it should be possible to consciously override and commit with a shorter turnaround time.
* Cross check if your git user.name and user.email are properly configured. Set username and email with commands
+---+
git config user.name "Amareshwari Sriramadasu"
git config user.email "amareshwari@apache.org"
+---+
* Apply the patch attached on jira. The patch should be licensed under apache license.
+---+
git apply --check lens_patch.patch
git apply lens_patch.patch
+---+
* Don't forget to do 'git add' on any new files, and 'git rm' on any files that have been 'deleted' by the patch.
* Include the Jira issue id in the commit message, along with a short description of the change and the name of the
contributor. Be sure to get the issue id right, as this causes Jira to link to the change in git.
* Keep yourself as committer and the contributor as the author of the commit.
+---+
git commit -a --author "Amareshwari Sriramadasu <amareshwari@apache.org>" -m "LENS-123 : Adds awesome feature to lens."
+---+
* Push the commit to master branch
* Resolve the issue as fixed, thanking the contributor. Always set the "Fix Version" at this point.
* Put incompatibility flags on, if the change is an incompatible change.
* Add appropriate release note about what the issue is fixing. New features should have elaborate release note on
how to use the feature.
* Reverting a commit
* In case you messed up your first commit - you should post a revert commit to cancel the commit by a reverse patch
and then post a new commit with appropriate changes.
+---
git revert HEAD~1..HEAD # To revert 1 commit.
or,
git revert a4r9593432 # To revert particular commit by commit id.
+---
* Backporting patches
Once the patch is pushed to master, it can be cherry-picked and applied on other major version lines.
If the patch is not applicable for master and only applicable to the release version, then above guide lines of
review and commit needs to be followed with change of committing branch to be the release branch.
Fix version needs to include this release version as well.
* Updating Lens site
Lens uses Apache SVN Pub-Sub system to maintain its website. The script tools/scripts/generate-site-public.sh can be used to generate the
documentation, which has to be committed to website svn. Steps are as follows -
* Checkout website svn: svn co https://svn.apache.org/repos/asf/lens/ $SVN_SITE_DIR
* Run tools/scripts/generate-site-public.sh $SVN_SITE_DIR
* Add newly created files to SVN
* Commit. (Please contact one of the committers for site SVN access)