forked from apache/logging-log4net
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReleaseInstructions.txt
269 lines (196 loc) · 8.74 KB
/
ReleaseInstructions.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
THIS DOCUMENT NEEDS TO BE ADAPTED NOW WE'VE MOVED TO GIT
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.
Prereqs
=======
* 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 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 3.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 3.5SP1 and SDK 2.0
As of October 2011 this is available from
<http://msdn.microsoft.com/en-us/netframework/>
o .NET Framework and SDK 4.0
As of October 2011 this is available from
<http://msdn.microsoft.com/en-us/netframework/>
o .NET Core Developer Kit available from https://www.microsoft.com/net/core
o Mono available from http://www.mono-project.com/download/
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
<https://github.com/EWSoftware/SHFB>
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
<https://svn.apache.org/repos/asf/logging/log4net/trunk/KEYS> and
copy that file to
https://dist.apache.org/repos/dist/release/logging/log4net/ .
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]
- log4net.build: <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 (http://www.apache.org/).
`----
in particular, check that {latest} is the current year.
* Update the release notes
- go to the Roadmap View in JIRA
<https://issues.apache.org/jira/browse/LOG4NET#selectedTab=com.atlassian.jira.plugin.system.project%3Aroadmap-panel>
- 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 1775235 \
https://svn.apache.org/repos/asf/logging/log4net/trunk \
https://svn.apache.org/repos/asf/logging/log4net/tags/2.0.6RC1
* 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
https://dist.apache.org/repos/dist/dev/logging/log4net
also create a README.html based on the release-notes.
* publish the site build somewhere convenient for you -
home.apache.org 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
members.
The following is based on the template used in Commons
,----
| log4net 2.0.6 RC1 is available for review here:
| https://dist.apache.org/repos/dist/dev/logging/log4net
| (revision 17495)
|
| Details of changes since 1.2.15 are in the release notes:
| http://stefan.samaflost.de/staging/log4net-2.0.6/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/2.0.6RC1
| (revision 1775236)
|
| Site:
| http://stefan.samaflost.de/staging/log4net-2.0.6/
|
| RAT Report:
| http://stefan.samaflost.de/staging/log4net-2.0.6/rat-report.html
|
| Nuget Package:
| https://www.myget.org/feed/log4net-test/package/nuget/log4net
|
| 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
https://dist.apache.org/repos/dist/release/logging/log4net/source and
https://dist.apache.org/repos/dist/release/logging/log4net/binaries
respectively.
You can do so using a local working copy of
https://dist.apache.org/repos/dist - 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
https://dist.apache.org/repos/dist/release/logging/log4net
* 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" \
https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.14RC1 \
https://svn.apache.org/repos/asf/logging/log4net/tags/1.2.14
* 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
https://svn.apache.org/repos/infra/websites/production/logging/content/log4net
by convention create a directory named after the release, e.g. copy
site to
https://svn.apache.org/repos/infra/websites/production/logging/content/log4net/log4net-1.2.14
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
https://svn.apache.org/repos/infra/websites/production/logging/content/log4net
so they point at your new directory.
Copy the download_log4net.html file from the new directory to
https://svn.apache.org/repos/infra/websites/production/logging/content/log4net
* send an announcement mail at least to
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
* Add the new version to the reporter tool
https://reporter.apache.org/addrelease.html?logging
Post-Release Cleanup
====================
* Delete all artifacts of old releases from
https://dist.apache.org/repos/dist/release/logging/log4net