Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{hide-from:user=*}
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.
{hide-from}

{toc}

h1. Prerequisites

Before entering into this process you need to ensure you will be able to cryptographically sign the final result in such a way that others can validate the signature.  This can be a confusing process.  Here are links to several documents that should help.
* [http://www.apache.org/dev/openpgp.html]
* [http://www.apache.org/dev/release-signing.html]
* [http://httpd.apache.org/dev/verification.html]

h1. Discuss

Send a \[DISCUSS\] email to the dev@knox list proposing a release.

h1. Prepare

In preparation for each release there are a number of sub-steps required to ensure that that the project's repository is in a suitable state for branching.

h2. Update CHANGES

Update CHANGES.txt with release date (Release X.Y - MM/dd/yyyy) and (if needed) add additional changelog entries

h2. Update documentation

h2. Build, Test and Push Changes
{code}
git pull
git commit --all --message "Prepare for branch."
ant verify
git push
{code}

h1. Tag Branch Point and Branch
{code}
git tag --annotate v{X.Y.Z} --message "Branch point for v{X.Y.Z}"
git push origin --tags
git checkout --branch v{X.Y.Z}
git push --set-upstream origin v{X.Y.Z}
{code}

h1. Clone & Checkout Branch
{code}
git clone https://git-wip-us.apache.org/repos/asf/incubator-knox.git knox-{X.Y.Z}
cd knox-{X.Y.Z}
git checkout --branch v{X.Y.Z}
{code}

h2. Update version numbers on master branch

(from A.B.C-SNAPSHOT to D.E.F-SNAPSHOT)

h2. Update version numbers on release branch

(from X.Y.Z-SNAPSHOT to X.Y.Z)

h2. Build & Verify
{code}
ant verify
{code}

h2. Sanity Test

Do some basic manual testing to see if release looks ok.  For example do and install and run through a few of the samples.

h1. Sign
{code}
ant sign
{code}

h1. Verify Signatures

Verify the hashes and signatures.  First change into the distribution directory.
{code}
cd target/{X.Y.Z}
{code}

Verify the signatures for both the source and binary distribution.
{code}
gpg --verify knox-{X.Y.Z}-src.zip.asc knox-{X.Y.Z}-src.zip
gpg --verify knox-{X.Y.Z}.zip.asc knox-{X.Y.Z}.zip
{code}

Verify the SHA-1 hashes for both the source and binary distribution.
{code}
cat knox-{X.Y.Z}-src.zip.sha && openssl sha1 knox-{X.Y.Z}-src.zip 
cat knox-{X.Y.Z}.zip.sha && openssl sha1 knox-{X.Y.Z}.zip 
{code}

Verify the MD5 digest for both the source and binary distribution.
{code}
cat knox-{X.Y.Z}-src.zip.md5 && openssl md5 knox-{X.Y.Z}-src.zip
cat knox-{X.Y.Z}.zip.md5 && openssl md5 knox-{X.Y.Z}.zip
{code}

h1. Tag Release Candidate
{code}
git tag --annotate vX.Y.Z-rcN --message "vX.Y.Z release candidate N"
git push origin --tags
{code}

h1. Stage

Follow the instructions output by the sign step above.  Basically execute this command.

{code}
scp -r target/X.Y.Z {release-manager}@people.apache.org:public_html/knox
{code}

h1. Vote

Send a \[VOTE\] email to the dev@knox list.  A template was output by the sign step above as {{target/vote.eml}}.

h2. Iterate based on feedback until vote passes

h2. Publish

Follow Step-By-Step Guide to Mirroring Releases.
TODO

15. Once vote passes, tag the release:

16. Copy release tar file to people.apache.org:/www/www.apache.org/dist/lucene/tika. based on vote (also included \*.asc file and \*.md5 file)

17. Wait 24 hours for release to propagate to mirrors.

h2. Update site

4. Update news in src/site/src/documentation/content/xdocs/index.xml and for main lucene.apache.org site stored at [https://svn.apache.org/repos/asf/lucene/site/]. The second change may require additional rights

h2. Create version in JIRA for release X.Y.

h2. Send announcements to the user and developer lists.

2. Update CHANGES with header for new changes

{include:Footer}