Skip to content

Commit 1cb560c

Browse files
committed
📝 add release docs, move sub-docs to docs folder
1 parent 2323519 commit 1cb560c

5 files changed

+77
-2
lines changed

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,7 @@ may be installed by using the bundled helper scripts:
4242
These scripts download the relevant installers from Microsoft servers,
4343
but you run them at your own risk.
4444

45-
Please see [CONTRIBUTING.md](CONTRIBUTING.md) and
46-
[BUILDING.md](BUILDING.md)
45+
Please see
46+
- [CONTRIBUTING.md](doc/CONTRIBUTING.md)
47+
- [BUILDING.md](doc/BUILDING.md)
48+
- [RELEASING.md](doc/RELEASING.md)

BUILDING.md doc/BUILDING.md

File renamed without changes.
File renamed without changes.

doc/RELEASING.md

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
Log4Net Release procedure
2+
---
3+
4+
This serves to document the release procedure for log4net, which is probably
5+
more of interest to maintainers than anyone else, but I've found that there
6+
are enough moving parts and time between releases to make the process more
7+
difficult than it needs to be. Some parts are automated and others can be in
8+
the future.
9+
10+
Assuming the code is in a place where a release can be made, for the imagined
11+
release version 2.0.123:
12+
13+
1. Update the documentation under `src/site`
14+
- minimally, this means at least:
15+
- `src/site/xdoc/release/release-notes.xml`
16+
- copy an existing release section & think about:
17+
- what does this release change?
18+
- bug fixes?
19+
- enhancements
20+
- don't forget to mention contributors
21+
- people who reported issues
22+
- people who created pull requests
23+
- people who suggested code that was implemented
24+
- `src/site/xdoc/download_log4net.xml`
25+
- you should be able to search & replace on the prior version
26+
for the new one you're about to create
27+
2. Update the log4net.csproj file with this new version
28+
3. Build release artifacts with `npm run release`
29+
- if this doesn't work, you may need to `npm ci` first!
30+
- currently, this _must_ happen on a windows machine because of older
31+
.net framework requirements which cannot be met on a Linux machine
32+
(or at least, I haven't figured out how - in particular CF)
33+
4. Sign release artifacts (zips & nupkg) under `build/artifacts`
34+
- eg `gpg --argmor --output log4net-2.0.123.nupkg.asc --detach-sig log4net-2.0.123.nupkg`
35+
- there is an accompanying `sign-log4net-libraries.sh` which you could invoke if you cd
36+
into the `build/artifacts` folder
37+
- I build on Windows and sign on Linux as my build machine belongs to my company
38+
and I don't want to store keys there. Always protect your keys fervently!
39+
5. Clone out the log4net doc repo (https://github.com/apache/logging-log4net-site)
40+
- check out the `asf-staging` branch
41+
- create a folder which includes the version, eg `log4net-2.0.123`
42+
6. Copy the contents of `target/site` from this repo into the folder created in (5)
43+
7. Update the symlinks in the base of the docs repo, ie:
44+
- 2.0.x -> 2.0.123
45+
- 2.x -> 2.0.123
46+
8. update the `doap_log4net.rdf` to point to the new release
47+
- (copy-paste-modify an existing release)
48+
9. update the `.htaccess` file
49+
- the trailing RewriteRule should point to the new log4net-2.0.123 folder
50+
10. push the `asf-staging` branch to github and wait a bit
51+
- after a minute or two, check the updates at https://logging.staged.apache.org/log4net
52+
- are you seeing the correct releases page?
53+
- are you seeing the correct downloads page?
54+
- download links should (at this point) not work
55+
11. create an rc-releasd at GitHub with a tag like `rc/2.0.123`
56+
- attach all the files from the build/artifacts folder, _including signatures_
57+
12. get the artifacts in build/artifacts up to https://downloads.apache.org/logging/log4net/
58+
- currently, I have to as another ASF member for help with this
59+
- I also see release notes there - which are out of date (don't know how to update)
60+

doc/sign-log4net-libraries.sh

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
# see https://infra.apache.org/release-signing#openpgp-ascii-detach-sig
3+
DID_SOMETHING=0
4+
for f in log4net*.nupkg log4net*.zip; do
5+
DID_SOMETHING=1
6+
echo "signing: $f"
7+
gpg --armor --output $f.asc --detach-sig $f
8+
done
9+
10+
if test "$DID_SOMETHING" = "0"; then
11+
echo "No log4net artifacts found - are you sure you're in the right directory?"
12+
exit 2
13+
fi

0 commit comments

Comments
 (0)