blob: b2895538d147e65e30b1d2f5fe76fa1181750247 [file] [log] [blame]
-----
Releasing Maven
-----
Jason van Zyl
-----
2010-07-27
-----
~~ 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.
Releasing Maven
Maven differs slightly in its release process due to several extra steps.
* Producing Release Candidates
For non-alpha/beta releases, release candidates are produced before the actual
release.
To produce a release candidate, follow the first seven steps only from the following
procedure:
* {{{./maven-project-release-procedure.html} Maven Project Common Release Procedure}}
The version used should be the eventual version with -RC1, -RC2, etc. appended.
After producing the RC, request that the developers test the release on the list.
If a regression is found, a new release candidate is rolled.
After a reasonable time without regressions found, a wider audience may be polled
if the release manager desires (for example, users@).
Once happy with a release candidate, the full release is performed, with the final
version in place.
* Producing the Release
To produce a final release, the same process as for standard projects is followed:
* {{{./maven-project-release-procedure.html} Maven Project Common Release Procedure}}
Below describes the additional steps that need to be taken at the points where the website are updated
in those instructions.
** Updating the Release Notes and web site
Checkout {{https://svn.apache.org/repos/asf/maven/site/trunk}}.
Note that release notes can be created and checked in, but other changes
should not be checked in as it can be deployed 'live' at any time.
* For 2.0.x: update the <<<releasedVersions>>>, <<<current20xVersion>>> and <<<current20xReleaseDate>>> properties in <<<pom.xml>>>
* For 2.2.x: update the <<<releasedVersions>>>, <<<currentStableVersion>>> and <<<currentStableReleaseDate>>> properties in <<<pom.xml>>>
* For 3.x-alpha/beta: update the <<<developmentVersions>>> and <<<currentDevelopmentVersion>>> properties in <<<pom.xml>>>
Next, create the release notes:
* create docs/$version
* populate docs/$version/release-notes.txt from JIRA
* create docs/$version/release-notes.apt.vm (see other versions for an example)
Only deploy the site once the release is present on the mirrors, and the reference documentation has been deployed to /ref/.
** Staging the latest documentation
Once the release is prepared, but before the release vote, the site needs to be staged.
[[1]] From the site checkout, stage the site (replacing $USER and $VERSION):
+------+
mvn -Preporting site:stage-deploy -DstagingSiteURL=scp://people.apache.org/home/$USER/public_html/staged-sites/maven-$VERSION
+------+
<<Note:>> It requires Maven 2.1.0 or higher to successfully deploy to <<<people.apache.org>>> via SSH. Older Maven
versions will fail due to <<<com.jcraft.jsch.JSchException: Algorithm negotiation fail>>>.
+-----+
http://people.apache.org/~USER/staged-sites/maven-VERSION
+-----+
Some developers have {{{http://www.nabble.com/site%3Astage-deploy-asks-for-a-password--tt15582961s177.html}
reported problems}} with the <<<site:stage-deploy>>> goal. In that case, you can stage the site locally and
upload it manually:
+------+
mvn -Preporting site:stage
scp -r target/staging/people.apache.org/home/$USER/public_html/staged-sites/maven-$VERSION USER@people.apache.org:/home/$USER/public_html/staged-sites/maven-$VERSION
+------+
** Additional release steps
In addition to promoting the repository, the release archives should be copied to
the following locations:
* people.apache.org:/www/www.apache.org/dist/maven/binaries - apache-maven-$VERSION-bin.tar.gz, apache-maven-$VERSION-bin.tar.bz2, apache-maven-$VERSION-bin.zip, corresponding checksums (md5 and sha1) and signatures (asc)
* people.apache.org:/www/www.apache.org/dist/maven/source - apache-maven-$VERSION-src.tar.gz, apache-maven-$VERSION-src.tar.bz2, apache-maven-$VERSION-src.zip, corresponding checksums (md5 and sha1) and signatures (asc)
The files may need to be renamed from those given in the repository.
** Deploy the current references
The source code references need to be deployed before deploying the web site
with the new version.
This is described in {{{../website/deploy-maven-current-ref.html} Deploying the Current References}}.
** Deploying the release website
Once both of the above have synced to the main site and a suitable number of mirors,
proceed to update the web site and produce the announcement.
Commit your changes and then deploy the main Maven site checked out earlier.
+-----+
mvn -Preporting clean site-deploy
+-----+
** Remove Old Versions
Next, any superceded releases should be removed from the above locations (after
confirming that they exist in /www/archive.apache.org/dist/maven).
** Proceed with Announcement
You can now proceed with the steps outlined after deploying the website on
{{{./maven-project-release-procedure.html} Maven Project Common Release Procedure}}