You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by cb...@apache.org on 2018/10/13 13:55:04 UTC
svn commit: r1843755 -
/velocity/site/cms/trunk/content/release-process.mdtext
Author: cbrisson
Date: Sat Oct 13 13:55:04 2018
New Revision: 1843755
URL: http://svn.apache.org/viewvc?rev=1843755&view=rev
Log:
[site] Update release process page
Modified:
velocity/site/cms/trunk/content/release-process.mdtext
Modified: velocity/site/cms/trunk/content/release-process.mdtext
URL: http://svn.apache.org/viewvc/velocity/site/cms/trunk/content/release-process.mdtext?rev=1843755&r1=1843754&r2=1843755&view=diff
==============================================================================
--- velocity/site/cms/trunk/content/release-process.mdtext (original)
+++ velocity/site/cms/trunk/content/release-process.mdtext Sat Oct 13 13:55:04 2018
@@ -10,8 +10,8 @@ Instructions make explicit references to
To create a release you have to install:
-* [Java Development Kit 6](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
-* [Maven 2](http://maven.apache.org/)
+* [Java Development Kit 8](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
+* [Maven 3](http://maven.apache.org/)
* [GnuPG](http://www.gnupg.org/)
* [OpenSSH](http://www.openssh.com/}OpenSSH)
@@ -26,23 +26,6 @@ These operations need to be performed on
/www/www.apache.org/dist/velocity/
Publish your GPG key in a PGP key server, such as [MIT Keyserver](http://pgp.mit.edu/).
-
-* Create and upload yout SSH key
-
-* Generate your SSH key (in this case we will use RSA encryption):
-
- ssh-keygen -t rsa
-
-
-* Copy your public key to the server:
-
- scp ~/.ssh/id_rsa.pub user@people.apache.org:.ssh/authorized_keys
-
-* Try to login:
-
- ssh user@people.apache.org
-
- If it does not ask you a password, everything is ok.
* Modify `settings.xml`
@@ -50,6 +33,7 @@ These operations need to be performed on
This is the minimal configuration, obviously if you already have a `settings.xml` file, you must edit it:
+ :::xml
<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
@@ -74,8 +58,9 @@ These operations need to be performed on
</servers>
<profiles>
<profile>
- <id>release</id>
+ <id>apache-release</id>
<properties>
+ <gpg.keyname>YOUR_KEY_NAME</gpg.keyname>
<gpg.passphrase>YOUR_SECRET_PHRASE</gpg.passphrase>
</properties>
</profile>
@@ -92,25 +77,53 @@ These steps must be performed **for each
If it's not the first release candidate you're trying to release, you should archive the previous release candidate. For instance:
+ :::shell
svn mv ci -m "[engine] archive engine 2.0 RC4" https://_your_apache_id_@svn.apache.org/repos/asf/velocity/engine/tags/2.0 https://_your_apache_id_@svn.apache.org/repos/asf/velocity/engine/tags/2.0-RC4
And don't forget to also drop the staged artifact.
+
+ Of course, you will also have to revert the automated commits from the previous `mvn release:*` commands.
+
+* Complete and update the changelog source file `src/changes/changes.xml` (note: we may get rid of this changelog in the future since it is quite painful to maintain and seems highly redundant with the JIRA release notes).
* Prepare the release tag
To prepare the release Subversion tag, check out the branch/trunk from where
you are preparing the release and type:
+ :::shell
mvn release:prepare -Dusername=YOUR_SVN_USER -Dpassword=YOUR_SVN_PASSWORD
The plugin interactively will ask you the version to release, the Subversion tag to use and the next snapshot version. Rather than `velocity-engine-parent-X.X` (the default), we tend to use X.X for the tag name.
-* Perform the Release
+* Perform the release
To perform the release, i.e. creating and deploying Maven artifacts, use:
+ :::shell
mvn release:perform
+
+* Stage the release
+
+ Commit all poms (renamed from `<module>/pom.xml` to `module-<version>.pom`), binary, sources, javadoc jars in the proper subdirectory of the [release staging area](https://dist.apache.org/repos/dist/dev/velocity) svn repository, along with their signature files (*.asc), which have been generated under the `target/checkout` folder.
+
+* Provide sha-256 checksums
+
+ Create sha-256 checksums for each pom/jar/asc file on the
+
+ :::shell
+ for file in *.jar *.asc *.pom; do sha256sum < $file > $file.sha256; done
+ and add those files to the release staging area svn repository.
+
+* Release the JIRA version
+
+ * In JIRA go to the version that you want to release and release it.
+
+ * Create a new version, if it has not been done before.
+
+ * Create the JIRA release notes and **copy the content** inside your pretty release notes HTML file, which is to be hosted under svn on the same release staging area.
+
* Close the staging repository
Login to [Nexus repository](https://repository.apache.org) using your Apache LDAP credentials.
@@ -142,60 +155,77 @@ These steps must be performed **for each
You can then rollback your release and repeat the process.
Note the repository URL, you will need this in your vote email.
+
+* Prepare the site
+
+ Copy the `/devel/` section to its `<version>` section (but do not yet refence it from the menu)
-* Release the JIRA version
+ Generate the corresponding javadoc with
- * In JIRA go to the version that you want to release and release it.
-
- * Create a new version, if it has not been done before.
-
- * Create the release notes and **write down the link** that it uses.
-
+ :::shell
+ mvn javadoc:aggregate
+
+ and commit the result in [VERSION]/apidocs
+
+ Push those changes to production (see the [Site Building](http://velocity.apache.org/site-building.html) page).
+
* Send announcement for the test build
+
+ In **developers mailing list** send an announcement for the test build:
- In **developers mailing list** send an announcement for the test build:
+ (note: in all the following, ${module} refers to the module -Engine or Tools- being released, ${version} to the version)
- Subject: [ANNOUNCE] Velocity Engine ${version} test build available
+ Subject: [ANNOUNCE] Velocity ${module} ${version} test build available
- The test build of Velocity Engine ${version} is available.
+ The test build of Velocity ${module} ${version} is available.
- No determination as to the quality ('alpha,' 'beta,' or 'GA') of Velocity Engine ${version} has been made, and at this time it is simply a "test build". We welcome any comments you may have, and will take all feedback into account if a quality vote is called for this build.
+ No determination as to the quality ('alpha,' 'beta,' or 'GA') of Velocity ${module} ${version} has been made, and at this time it is simply a "test build". We welcome any comments you may have, and will take all feedback into account if a quality vote is called for this build.
Release notes:
- * ${jira.release.notes}
+ * https://dist.apache.org/repos/dist/dev/velocity/.../release-notes.html
Distribution:
- * http://people.apache.org/builds/velocity-engine-parent/${version}/
+ * https://dist.apache.org/repos/dist/dev/velocity/.../
Maven 2 staging repository:
* https://repository.apache.org/content/repositories/velocity-[YOUR REPOSITORY ID]/
+ Documentation:
+
+ * https://velocity.apache.org/${module}/${version}
+ Sources:
+
+ * https://svn.apache.org/repos/asf/velocity/${module}/tags/${version}
+
A vote regarding the quality of this test build will be initiated within the next couple of days.
-
-
+
* Call for a vote
A few days after the test build announcement, call for a vote in **developers mailing list**.
- Subject: [VOTE] ${version} Release Quality
+ Subject: [VOTE] Velocity ${module} ${version} Release Quality
- The Velocity Engine ${version} test build has been available since ${testBuildDate}.
+ The Velocity ${module} ${version} test build has been available since ${testBuildDate}.
Release notes:
- * ${jira.release.notes}
+ * https://dist.apache.org/repos/dist/dev/velocity/.../release-notes.html
Distribution:
- * http://people.apache.org/builds/velocity-engine-parent/${version}/
+ * https://dist.apache.org/repos/dist/dev/velocity/.../
Maven 2 staging repository:
* https://repository.apache.org/content/repositories/velocity-[YOUR REPOSITORY ID]/
+ Sources:
+
+ * https://svn.apache.org/repos/asf/velocity/${module}/tags/${version}
+
If you have had a chance to review the test build, please respond with a vote on its quality:
[ ] Leave at test build
@@ -203,14 +233,13 @@ These steps must be performed **for each
[ ] Beta
[ ] General Availability (GA)
-
Everyone who has tested the build is invited to vote. Votes by PMC members are considered binding. A vote passes if there are at least three binding +1s and more +1s than -1s.
+
+### Post-vote operations
-* Post-vote operations
-
- After a vote is finished, and it has been decided that is **at least of alpha quality**, there is the need of a post-vote process.
+After a vote is finished, and it has been decided that is **at least of alpha quality**, there is the need of a post-vote process.
- * Promote staged artifacts
+* Promote staged artifacts
Once the release is deemed fit for public consumption it can be transfered to a production repository where it will be available to all users.
@@ -223,43 +252,73 @@ These steps must be performed **for each
Select the "Releases" repository and click "Promote".
Next click on "Repositories", select the "Releases" repository and validate that your artifacts exist as you expect them.
+
+* Publish the release
+
+ Copy the staged release to the Apache Releases svn repository at https://dist.apache.org/repos/dist/release/velocity/{module}/...
- * Update the site
+ You may subsequently receive an automated email from the Apache Reporter Service asking you to log on to https://reporter.apache.org/addrelease.html?velocity to add the release metadata to its database. Please do so.
+
+* Update the site
- Wait 24 hours to let the mirror sync to the release and then update the site. In particular you have to update the index and the download pages:
+ Wait 24 hours to let the mirror sync to the release and then update the site.
+
+ Update the download page, the left menu, the news section, and the engine or tools index:
+
+ velocity/site/cms/trunk/content/download.mdtext
+ velocity/site/cms/trunk/content/left.nav
+ velocity/site/cms/trunk/content/news.xml
+ velocity/site/cms/trunk/content/${module}/index.mdtext
- https://svn.apache.org/repos/asf/velocity/site/site/xdoc/download.xml
- https://svn.apache.org/repos/asf/velocity/site/site/news.xml
+ Push the changes into production.
+
+ Check the resulting site for broken links
+
+ :::shell
+ wget --spider -r -nd -nv -H -l 2 -w 2 -o links.log https://velocity.apache.org/
+
+* Update the DOAP RDF project metadata located under `svn.apache.org/repos/asf/velocity/site/site\.
+
+* Send announcement
+
+ Finally, send an an announcement to the **users** and **developers mailing list** (in text-only format), by adapting the following canevas:
+
+ Subject: [ANNOUNCE] Velocity ${module} ${version} ${quality} released
- Build and publish the site:
+ The Apache Velocity team is pleased to announce the release of Velocity ${module} ${version} ${quality}.
+
+ [insert here a short description of the ${module}, aka:]
+
+ Velocity is a Java-based template engine. It permits anyone to use a simple yet powerful template language to reference objects defined in Java code.
+
+ [or]
+
+ Velocity Tools is a library of template tools and helpers to ease the use of the Apache Velocity template engine in standalone applications and in webapps.
- mvn site
- mvn site:deploy
-
- * Send announcement
-
- Finally, send an an announcement to the **users** and **developers mailing list**:
-
- Subject: [ANNOUNCE] Velocity Engine ${version} ${quality} released
-
- The Apache Velocity team is pleased to announce the release of Velocity Engine ${version} ${quality}.
-
- Velocity Engine ${version} is available in a binary and a source distribution.
-
- http://velocity.apache.org/download.html
-
- It is also available in the central Maven repository under Group ID "org.apache.velocity".
-
- The 2.0.x series of the Apache Velocity Engine framework has a minimum
- requirement of the following specification versions:
-
- * Java Standard Edition (Java SE) 1.6
-
- The release notes are available online at:
-
- * ${jira.release.notes}
-
- Please feel free to test the distribution and post your comments to the user list, or, if appropriate, file a ticket with JIRA.
+ [insert here a short description of the main changes]
+
+ For a complete list of changes, please visit the Velocity ${module} ${version} releases notes [1].
+
+ For notes on upgrading from Velocity ${module} ${previous-version}, see Velocity ${module} Upgrading section [2].
+
+ Velocity ${module} ${version} is available in a binary and a source distribution [3].
+
+ http://velocity.apache.org/download.html#${module}
+
+ It is also available in the central Maven repository under Group ID "org.apache.velocity[.tools]".
+
+ Please feel free to test the distribution and post your comments to the user list [4], or, if appropriate, file a ticket with JIRA [5].
+
+ Regards,
+
+ the Apache Velocity community.
+
+ [1]: http://www.apache.org/dist/velocity/${module}/${version}/release-notes.html
+ [2]: http://velocity.apache.org/${module}/${version}/upgrading.html
+ [3]: http://velocity.apache.org/download.cgi#${module}
+ [4]: http://velocity.apache.org/contact.html#mailing-lists
+ [5]: https://issues.apache.org/jira/projects/VELTOOLS
+ And send the same announcement in a separate email to the **announce@apache.org** moderated list using your `@apache.org` (see [how to configure your SMTP client](https://reference.apache.org/committer/email)).
**You have finished!**