Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...