blob: fe1c5a6d91784c1bfba3a463a1f0949640ffd8ee [file] [log] [blame]
-----
Release Guide
-----
-----
-----
~~ 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.
~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html
Release Guide
* Prepare
To prepare and perform a release, you must be at least a Apache Kalumet committer.
** each and every release must be [SIGNED|http://www.apache.org/dev/release-signing.html]
** your public key should also be cross-signed by other Apache committers (not required, but suggested)
** make sure you have all Apache servers defined in your [settings.xml|http://maven.apache.org/developers/committer-settings.html]
** use Maven 3.x
Your settings.xml should look like:
+---
<settings>
...
<profiles>
<profile>
<id>release</id>
<properties>
<gpg.passphrase> <!-- YOUR KEY PASSPHRASE --> </gpg.passphrase>
</properties>
</profile>
</profiles>
...
<servers>
<!-- To publish a snapshot of some part of Maven -->
<server>
<id>apache.snapshots.https</id>
<username> <!-- YOUR APACHE SVN USERNAME --> </username>
<password> <!-- YOUR APACHE SVN PASSWORD --> </password>
</server>
<!-- To stage a release of some part of Maven -->
<server>
<id>apache.releases.https</id>
<username> <!-- YOUR APACHE SVN USERNAME --> </username>
<password> <!-- YOUR APACHE SVN PASSWORD --> </password>
</server>
...
</servers>
</settings>
+---
* Staging the Release Candidate
** Grab the latest source
+---
svn co https://svn.apache.org/repos/asf/incubator/kalumet/trunk
+---
** Prepare the POM for release:
*** make sure there is not SNAPSHOTS in the dependencies or plugins definition
*** make sure everything build fine
*** validate that the release prepare works fine in dryRun: mvn release:prepare -DdryRun
*** publish a SNAPSHOT before releasing: mvn deploy
** Prepare the release
+---
mvn release:clean
mvn release:prepare
+---
** Stage the release for vote
+---
mvn release:perform
+---
** Close the staging repository. To do that, logon on [http://repository.apache.org|http://repository.apache.org],
click "Stage Repositories" on the left menu. Select your stage repository and click on the "Close" button.
** Verify the staged artifacts.
*** if you click on your repository, a tree view will appear below. You can browse the content to ensure that
the artifacts are as you expect. Pay attention to the existence of signature files (*.asc). If you repository is
not correct, you can drop it to create a new one after cancelling the release (see later).
*** note the staging repository URL (you will need it for the vote e-mail)
* Starting the vote
Propose a vote on dev mailing list, for example:
+---
To: "Kalumet Developers List" <kalumet-dev@incubator.apache.org>
Subject: [VOTE] Release Apache Kalumet xx.yy
Hi,
We solved N issues in this release:
http://issues.apache.org/jira/...
There are still some outstanding issues:
http://issues.apache.org/jira/...
Staging repository:
https://repository.apache.org/content/repositories/YOUR REPOSITORY ID/
Please vote to approve this release:
[ ] +1 Approve the release
[ ] -1 Do not approve the release (please provide specific comments)
This vote will be open for 72 hours.
+---
* Wait for the result
To be approved, a release requires at least 3 binding votes (a binding vote is a vote performed by a PMC/IPMC).
At the end of the vote period, you can close the vote by sending a result e-mail:
+---
To: "Kalumet Developers List" <kalumet-dev@incubator.apache.org>
Subject: [RESULT][VOTE] Release Apache Kalumet xx.yy
Hi,
The vote has passed with the following result :
+1 (binding): <<list of names>>
+1 (non binding): <<list of names>>
I will promote the artifacts on Central and update Jira versions.
+---
If the vote is unsuccessful, you have to fix the identified issues and restart the release process (see "Cancelling the release" section).
If the vote is successful, you can promote the staging repository and update the Jira (see "Promoting the release" section).
* Cancelling the release
If the vote fails, or you decided to redo the release:
** remove the release tag from Subversion (svn del ...)
** logon http://repository.apache.org and drop the staged repository.
** rollback the version in pom.xml and commit any fixes.
* Promoting the release
If the vote passes:
** logon http://repository.apache.org, click on "Staged Repository" on the left menu. Select your staged repository
and click on "Release" button.
** update the versions in Jira by setting the release date
** update the download section of the website
** announce the release (on the website and on the mailing lists):
+---
To: "Kalumet Developers List" <kalumet-dev@incubator.apache.org>
Subject: [ANN] Apache Kalumet xx.yy released
The Kalumet team is pleased to announce the release of Kalumet xx.yy
<<insert short description of the release>>
This release is available from http://incubator.apache.org/kalumet/downloads and Maven:
<dependency>
<groupId>org.apache.kalumet</groupId>
<artifactId>org.apache.kalumet.XXX</artifactId>
<version>Y.Z</version>
</dependency>
Release Notes:
<<insert release notes in text format from JIRA>>
Enjoy!
-The Kalumet team
+---