Skip to content

Commit 857af6b

Browse files
committed
add ChangeLog.md and ReleaseSteps.md documents
1 parent 41e775c commit 857af6b

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

doc/ChangeLog.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# ChangeLog
2+
3+
## Version 0.1 (alpha) (October 11 2020)
4+
5+
Release of version 0.1 (alpha).
6+
7+
## September 20 2020
8+
9+
Unit tests largely completed.
10+
11+
## May 23 2020
12+
13+
Unit tests (work in progress), CMake build system, Travis CI, cross-platform build.
14+
15+
## April 09 2020
16+
17+
SGFC patching complete.
18+
19+
## February 5 2020
20+
21+
Created project

doc/ReleaseSteps.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Release steps
2+
3+
This document lists the steps needed to make a project release.
4+
5+
## Before the release
6+
7+
Things that need to be done before the actual release can take place:
8+
9+
- Create a release branch. All remaining work will be done in this branch. Command: `git checkout -b release-0.1.0 develop`
10+
- Run a CI build and fix all errors (hopefully none) and warnings that are reported on all platforms.
11+
- Make sure that the issues in the bugtracker are up to date
12+
- If SGFC has been updated
13+
- Make sure that the version number in `SgfcConstants::SgfcVersion` is up to date.
14+
- Make sure that the license information in `README.md` and in the `NOTICE` file is up to date.
15+
- Make sure to read the relevant release notes.
16+
- Make sure that no debugging stuff has been forgotten in the code (e.g. search for "xxx")
17+
- Update `ChangeLog.md`
18+
- The main source for this are the issues on the bug tracker.
19+
- The git commit log may also have useful information.
20+
- Make sure that the version number is up to date in the following places:
21+
- `SgfcConstants::LibraryVersion`
22+
- `CMakeLists.txt` (the main file in the project root)
23+
- Make sure that the copyright year is up to date in the following files (e.g.
24+
2020-2021 instead of 2020):
25+
- `NOTICE`
26+
- All source files that were touched since the last release. For instance, to list all files that were touched since the release 0.1 and were not updated to the current year 2021: `git diff --name-only 0.1 | egrep "^(example|include|src|test)" | sort | uniq | xargs grep "// Copyright" 2>/dev/null | grep -v 2021 | cut -d":" -f1`
27+
- Remove the build directory to make sure that subsequent test and distribution builds are clean: `rm -rf build`
28+
- Commit final changes (check with `git status` that nothing was forgotten).
29+
30+
## Create artifacts
31+
32+
### Create an archive
33+
34+
TODO: Describe what to do to create a tar ball and upload it to GitHhub.
35+
36+
### Generate and publish API documentation
37+
38+
Step-by-step instructions to generate and publish the API documentation.
39+
40+
```
41+
cd build
42+
43+
# Cleanup from a previous build
44+
rm -rf doc/html
45+
46+
# Regenerate docs from scratch
47+
cmake --build . --target libsgfcplusplus-doc
48+
git checkout gh-pages
49+
50+
# Remove documentation from previous release
51+
rm -rf ../api-docs
52+
53+
# Add documentation from new release
54+
cp -Rp doc/html ../api-docs
55+
56+
git add ../api-docs
57+
git commit -m "add API docs for version 0.1"
58+
```
59+
60+
## Make the release
61+
62+
- Merge all changes in the release branch into `develop`
63+
- `git checkout develop`
64+
- `git merge release-0.1.0`
65+
- Merge all changes in the release branch into `master`
66+
- `git checkout master`
67+
- `git merge develop`
68+
- Tag and sign the release
69+
- `git tag -s -m "tagging release x.y" x.y <commit hash>`
70+
- Update the GitHub repository
71+
- `git push`
72+
- `git push --tags`
73+
- Remove the release branch, both locally and, if it was pushed, on GitHub
74+
- Close tickets that are not yet closed in the issue tracker, then close the milestone
75+
- Create a new release on GitHub that references the git tag. Copy ChangeLog content into the release description.
76+
- Update website `libsgfcplusplus.herzbube.ch`
77+
- Advertise the release

0 commit comments

Comments
 (0)