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 u...@people.apache.org:.ssh/authorized_keys - -* Try to login: - - ssh u...@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_...@svn.apache.org/repos/asf/velocity/engine/tags/2.0 https://_your_apache_...@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 **annou...@apache.org** moderated list using your `@apache.org` (see [how to configure your SMTP client](https://reference.apache.org/committer/email)). **You have finished!**