...
In this section, the release is X.Y.Z (e.g. 1.3.0)
1. Checkout the trunk.
Code Blocknoformat |
---|
git clone http://git-wip-us.apache.org/repos/asf/flume.git flume |
...
3. Update the "version" value of all pom.xml and RELEASE-NOTES in trunk to X.(Y+1).0:
Code Blocknoformat |
---|
git checkout trunk find . -name pom.xml | xargs sed -i "" -e "s/X.Y.0-SNAPSHOT/X.$(Y+1).0-SNAPSHOT/" find flume-ng-doc/ -name "*.rst" | xargs sed -i "" -e "s/X.Y.0-SNAPSHOT/X.$(Y+1).0-SNAPSHOT/" vim RELEASE-NOTES git add . git commit -m "FLUME-XXXX: Preparing for the X.Y release" |
4. Find hash for use later
Code Blocknoformat |
---|
git log |
5. Create a branch for the X.(Y+1) release series
E.g. flume-1.5 should be branched off of flume-1.4
Code Blocknoformat |
---|
git checkout flume-X.Y git checkout -b flume-X.(Y+1) git cherry-pick <hash from the previous step> |
6. Push the changes up stream
Code Blocknoformat |
---|
git push -u origin trunk:trunk git push -u origin flume-X.Y:flume-X.Y |
7. Checkout the release branch:
Code Blocknoformat |
---|
git checkout flume-X.Y |
8. Remove -SNAPSHOT from the release branch and commit
Code Blocknoformat |
---|
find . -name pom.xml | xargs sed -i "" -e "s/X.Y.0-SNAPSHOT/X.Y.0/" find flume-ng-doc/ -name "*.rst" | xargs sed -i "" -e "s/X.Y.0-SNAPSHOT/X.Y.0/" git add . git commit -m "FLUME-XXXX: Removing -SNAPSHOT from X.Y branch" |
9. Ensure RELEASE-NOTES has the appropriate version and description of the release.
10. Tag a candidate:
Code Blocknoformat |
---|
git tag -a release-X.Y.Z -m "Apache Flume X.Y.Z release." git push origin release-X.Y.Z |
If an rc1, rc2, etc is needed, delete that tag before creating a new one:
Code Blocknoformat |
---|
git tag -d release-X.Y.Z git push origin :refs/tags/release-X.Y.Z |
...
1. Check out the candidate
Code Blocknoformat |
---|
git checkout release-X.Y.Z |
2. Generate a tarball
Code Blocknoformat |
---|
mvn clean install -DskipTests |
3. Unpack the source tarball
Code Blocknoformat |
---|
cd flume-ng-dist/target tar xzvf apache-flume-X.Y.Z-src.tar.gz |
4. Do another full build inside the source tarball. This time, allow all unit tests & integration tests to run and also include the docs
Code Blocknoformat |
---|
cd apache-flume-X.Y.Z mvn clean install -Psite |
...
1. Add your key to the KEYS file:
Code Blocknoformat |
---|
(gpg --list-sigs <your-email> && gpg --armor --export <your-email>) >> KEYS |
...
From the flume root directory
Code Blocknoformat |
---|
mvn clean deploy -Psite -Psign -DskipTests |
...
Copy the apache-flume-X.Y.Z-{bin,src}.tar.gz{,.{asc,md5,sha1}} files to people.apache.org.
Code Blocknoformat |
---|
$ ssh people.apache.org $ cd public_html $ mkdir apache-flume-X.Y.Z-rcN $ cd apache-flume-X.Y.Z-rcN $ wget --no-check-certificate https://repository.apache.org/content/repositories/orgapacheflume-XXXX/org/apache/flume/flume-ng-dist/X.Y.Z/flume-ng-dist-X.Y.Z-{src,bin}.tar.gz{,.{asc,md5,sha1}} $ for file in flume-ng-dist-*; do mv $file $(echo $file | sed -e "s/flume-ng-dist/apache-flume/g");done |
...
Source and convenience artifacts
Code Blocknoformat |
---|
svn checkout https://dist.apache.org/repos/dist/release/flume dist-flume cd dist-flume mkdir 1.0.0 cp <all release artifacts including asc/checksum files> 1.0.0/ svn rm stable # remove older version link ln -s 1.0.0 stable # update stable version link svn add stable 1.0.0 svn commit |
...