blob: 28aa9f5df3075212caedc48481bac2d7e7302053 [file] [log] [blame]
This document is a work in progress and was created in parallel to the
release of Apache log4net 1.2.11 and adapted for 2.0.6.
* make sure you have all the required software around. For the 2.0.6
release this meant
- you may need a couple of Windows or Linux boxes in order to be
able to build all target frameworks.
- Things you need
o a Subversion command line client
o NAnt 0.92 or better
Make sure to unblock the ZIP before you extract it.
o Some recent version of a Java runtime environment (Java5 at
o Apache Maven 3.x
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 3.5SP1 and SDK 2.0
As of October 2011 this is available from
o .NET Framework and SDK 4.0
As of October 2011 this is available from
o .NET Core Developer Kit available from
o Mono available from
Unfortunately NAnt 0.92 has issues with Mono that is too recent,
I used a Ubuntu 14.04 installation and installed NAnt and Mono
via the Ubuntu Debian packages. It comes with Mono 3.2.8.
o Sandcastle Help File Builder with its Dependencies
As of November 2015 this is available from
Install Html Help 1 Compiler by follwoing the instructions
during the SGFB installation. It may tell you there'd already be
a newer version but SHFB needs this installation anyway.
* Make sure your PGP key is in
<> and
copy that file to .
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 (2.0.6 right now) is in all
the required places. [yes, there is a lot of duplication]
- <property name="package.version" value="2.0.6"/>
- pom.xml: <version>2.0.6</version>
- log4net.nuspec: <version>2.0.6</version>
- log4net.shfbproj: <HtmlHelpName>log4net-sdk-2.0.6</HtmlHelpName>
- src/AssemblyInfo.cs: many, many AssemblyInformationalVersionAttribute
- src/AssemblyVersionInfo.cpp as well as .cs, .vb and .js - twice in
each file
These files also hold the assembly's copyright statement. Make
sure it includes the current year.
- src/Log4netAssemblyInfo.cs: public const string Version = "2.0.6"
- src/site/xdocs/download_log4net.xml - many times
- netstandard/log4net/project.json - "version": "2.0.6",
- netstandard/log4net.tests/project.json - "version": "2.0.6",
* 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 (
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
- 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 1775235 \ \
* 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 as well as nuget.exe to the root directory.
* Extract the contents of the Mono zip to bin/mono
* Run "nant"
* Run SHFB
* Run "nant package"
* sign the distribution files, I used
$ for i in log4net?2.0.6*; do \
md5sum $i > $i.md5 \
sha1sum $i > $i.sha1 \
sha256sum $i > $i.sha256 \
gpg --detach-sign --armor $i; done
* commit the distribution files to dest area of the svn dist
repository, i.e to
also create a README.html based on the release-notes.
* publish the site build somewhere convenient for you - is a good option
* if you've got set up a myget feed, publish the nuget package
* 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
The following is based on the template used in Commons
| log4net 2.0.6 RC1 is available for review here:
| (revision 17495)
| Details of changes since 1.2.15 are in the release notes:
| I have tested this with Mono and several .NET frameworks using NAnt.
| The tag is here:
| (revision 1775236)
| Site:
| RAT Report:
| Nuget Package:
| Votes, please. This vote will close in 72 hours, 1000 GMT 24-Dec 2016
| [ ] +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
* svn mv the ZIPs, hashes and signatures to and
You can do so using a local working copy of - which tends to be huge, so
check out selectively - or using svnmucc.
* create a file README.html holding just the latest news from
release-notes.html and svn commit it to
* create a svn tag for the release from the release candidate tag that
has been accepted
$ svn cp -m "1.2.14 release has been accepted" \ \
* publish the nuget package
* wait for the mirrors to catch up before proceeding, this takes
several hours
Announce the Release
* publish the website by copying it to
by convention create a directory named after the release, e.g. copy
site to
Ensure line-feeds are consistent and that the cgi script has the
svn:executable property set.
Change the .htaccess files and 2.x/2.0.x symlinks in
so they point at your new directory.
Copy the download_log4net.html file from the new directory to
* send an announcement mail at least to
using your 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
* Add the new version to the reporter tool
Post-Release Cleanup
* Delete all artifacts of old releases from