This document is a work in progress and was created in parallel to the release of Apache log4net 1.2.11. Prereqs ======= * make sure you have all the required software around. For the 1.2.11 release this meant - The default Mono installation (2.6.x) on Ubuntu Linux 10.4. Newer versions of Mono currently can't be used as they don't provide Mono 1.0 and cause a bunch of extra warnings that will be addressed post the 1.2.11 release. - A Windows XP box that is used to create the release binaries with o a Subversion command line client (I installed Cygwin out of a habit and used the Cygwin version) o NAnt 0.91-alpha2 or better http://nant.sourceforge.net/ Make sure to unblock the ZIP before you extract it. o Some recent version of a Java runtime environment (Java5 at minimum) o Apache Maven 2.2.x http://maven.apache.org/ You may want to set some environment variables like Path (to include Maven's and NAnt's bin directories), M2_HOME and JAVA_HOME to make things easier. o .NET Framework and SDK 1.0 You'll need an MSDN account or need to know somebody with an MSDN account to grab that - or need to know somebody who still has it around. It used to be free downloads. This framework must be installed first as it refuses to install in parallel to any of the other .NET frameworks. o .NET Framework and SDK 1.1 As of October 2011 this is available from o .NET Framework 3.5SP1 and SDK 2.0 As of October 2011 this is available from The 2.0 SDK provides the compilers for Compact Framework 2.0, the 3.5 SDK does not. So make sure you use the one for 2.0 o .NET Framework and SDK 4.0 As of October 2011 this is available from o HTML Help Compiler As of October 2011 this is available from * Make sure your PGP key is in and copy that file to /www.apache.org/dist/logging/log4net/ on people.apache.org. You should also upload your key to the keyservers. * Make sure you have decrypted old-log4net.snk.gpg to old-log4net.snk Preparing the Stage =================== * Make sure the correct version number (1.2.11 right now) is in all the required places. [yes, there is a lot of duplication] - log4net.build: - pom.xml: 1.2.11 - src/AssemblyVersionInfo.cpp as well as .cs, .vb and .js - twice in each file - src/Log4netAssemblyInfo.cs: public const string Version = "1.2.11" - src/site/xdocs/download_log4net.xml - many times * The next release after 1.2.11 will need to add a section for "old ASF but no longer Incubator" releases pointing to http://archive.apache.org/dist/logging/log4net/ * Create the site using "nant generate-site" in order to create the RAT report as a side-effect and fix all files that don't have the proper license header. * Make sure NOTICE corresponds to the general format of ,---- |Apache log4net |Copyright 2004-{latest} The Apache Software Foundation | |This product includes software developed by |The Apache Software Foundation (http://www.apache.org/). `---- in particular, check that {latest} is the current year. * Update the release notes - go to the Roadmap View in JIRA - follow the Release Notes link for the release you are going to create - Copy the text to src/site/xdocs/release/release-notes.xml in a new section for the new release and massage it to your liking. Create the Release ================== * Tag the source tree that makes up the release $ svn cp -r 1179495 \ https://svn.apache.org/repos/asf/logging/log4net/trunk \ https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.11RC1 * Create a fresh working copy of the new tag on the Linux box and copy old-log4net.snk to the root directory. * Run "nant" * zip up the bin/mono directory and copy it to the Windows machine * Create a fresh working copy of the new tag on the Windows box and copy old-log4net.snk to the root directory. * Extract the contents of the Mono zip to bin/mono * Run "nant package" * sign the distribution files, I used $ for i in log4net-1.2.11-*.zip; do md5sum $i > $i.md5; \ gpg --detach-sign --armor $i; done * copy the distribution files to the public_html directory in your home dir on people.apache.org * call for a vote on the log4net-dev list. It may be a good idea to copy the general list of Logging Services in order to reach more PMC members. The following is based on the template used in Commons ,---- | log4net 1.2.11 RC1 is available for review here: | http://people.apache.org/~bodewig/log4net/ | | Details of changes since 1.2.10 are in the release notes: | http://people.apache.org/~bodewig/log4net/site/release/release-notes.html | | I have tested this with Mono and several .NET frameworks using NAnt. | | The tag is here: | https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.11RC1 | (revision 1179495) | | Site: | http://people.apache.org/~bodewig/log4net/site/ | | RAT Report: | http://people.apache.org/~bodewig/log4net/site/rat-report.html | | Votes, please. This vote will close in 72 hours, 1900 GMT 9-Oct 2011 | | [ ] +1 Release these artifacts | [ ] +0 OK, but... | [ ] -0 OK, but really should fix... | [ ] -1 I oppose this release because... | | Thanks! `---- * If the vote doesn't pass, adapt trunk and start over with tagging the next release candidate * Once the vote passes: Publish the Release =================== * copy the ZIPs, hashes and signatures to /www/www.apache.org/dist/logging/log4net/source and /www/www.apache.org/dist/logging/log4net/binaries on people.apache.org respectively. * create a file README.html holding just the latest news from release-notes.html and copy it to /www/www.apache.org/dist/logging/log4net * double check all files under log4net are owned by the group logging and have the correct permissions (group-writable, world-readable) * create a svn tag for the release from the release candidate tag that has been accepted $ svn cp -m "1.2.11 release has been accepted" \ https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.11RC1 \ https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.11 * wait for the mirrors to catch up before proceeding, this takes several hours Announce the Release ==================== * publish the website by copying it to /www/logging.apache.org/log4net/ double check all files under log4net are owned by the group logging and have the correct permissions (group-writable, world-readable, directories have the sticky bit set - mode 2775) * wait for the new site to become visible, check the download page actually works * send an announcement mail at least to log4net-dev@logging.apache.org log4net-user@logging.apache.org general@logging.apache.org announce@apache.org using your @apache.org email address. PGP sign the announcement mail. * mark the version as released in JIRA and create a new version for the next release if necessary * Add the new version to the DOAP file at https://svn.apache.org/repos/asf/logging/log4net/doap_log4net.rdf Post-Release Cleanup ==================== * Delete all artifacts of old releases from /www/www.apache.org/dist/logging/log4net on people.apache.org