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