File: github_release.checklist

package info (click to toggle)
gemrb 0.9.4%2Bdfsg-1
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid, trixie
  • size: 21,960 kB
  • sloc: cpp: 140,145; python: 30,926; ansic: 4,405; objc: 731; sh: 311; java: 105; xml: 69; makefile: 7
file content (79 lines) | stat: -rw-r--r-- 3,732 bytes parent folder | download
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
### Release checklist

This is a general release preparation checklist to be used in the final stages of preparing
a new release. Copy it to a new issue on the GitHub tracker and the syntax will suddenly make sense.

Final development:
- [ ] Fix or postpone issues in the [milestone](https://github.com/gemrb/gemrb/milestones)
- [ ] Triage open pull requests
- [ ] Check local stashes
- [ ] No Coverity Scan issues

Beta testing:
- [ ] Retest character generation of all games
- [ ] Playthrough: Chateau Irenicus to Waukeen's promenade
- [ ] Playthrough: TOB up to Saradush in bg2ee
- [ ] Playthrough: bg1 prologue
- [ ] Playthrough: iwd1 prologue
- [ ] Playthrough: iwd2 prologue
- [ ] Playthrough: pst to exit of Mortuary
- [ ] Playthrough: our demo
- [ ] Ideally a full game runthrough of one of the compleatable games

Release:
- [ ] Finalise choice of version number, eg. v1.2.3
- [ ] Amend Roadmap in contributing.md
- [ ] Final `NEWS` update
- [ ] Update version number in `gemrb/core/InterfaceConfig.h` and `.github/ISSUE_TEMPLATE/bug_report.md`
- [ ] Add a git tag and push it (make sure to push together with something else, so the build won't be skipped)
    ```
        ver=0.8.2
        git tag -a -m "GemRB $ver" v$ver
        git push origin v$ver
    ```
- [ ] Create the source tarball with `make dist`
  - [ ] Add any missing files to the cmake install targets and recreate the tarball
  - [ ] Add any new files from fetch-demo-data to the cmake dist target
  - [ ] Add any new extraneous files to `.gitattributes` and recreate
  - [ ] Build it and run the minimal test or more: `gemrb/gemrb -c ../gemrb/GemRB.cfg.noinstall.sample`

Deployment:
- [ ] Promote the new tag to a release on GitHub
- [ ] Write docs (a template is available in `admin/announcement.template`):
  - [ ] Forum announcements
  - [ ] Release notes (configuration changes, notes for packagers) - use previous as a template
- [ ] SourceForge
  - [ ] Upload source package to SourceForge, maintaining the naming format under Releases
  - [ ] Upload any release notes alongside as Readme.md
  - [ ] Copy generated release builds into Release:
```sh
# run in SourceForge shell
version=0.9.0

cd /home/frs/project/gemrb/Buildbot\ Binaries
mkdir -p ../Releases/$version
cp -v Windows/AppVeyor/$(ls Windows/AppVeyor/ -1rt | tail -n1) ../Releases/$version/gemrb-win32-v$version.zip
cp -v Apple/OSX/$(ls Apple/OSX/ -1rt | tail -n1) ../Releases/$version/gemrb-macos-v$version.tar.bz2
cp -v Apple/ARM64/$(ls Apple/ARM/64 -1rt | tail -n1) ../Releases/$version/gemrb-macos-arm64-v$version.zip
cp -v $(find Linux/ -name "*$version*" | tail -n1) ../Releases/$version/gemrb-linux-v$version.AppImage
```

  - [ ] Mark release builds as OS defaults on SourceForge as appropriate; mark the source for everyone else
  - [ ] Test downloads
- [ ] Runtime tests of release packages
- [ ] Announce on
  - [ ] homepage: _config (bump version), index, news, potentially features/status, install (recheck the new links)
  - Gibberlings3 forums
    - [ ] GemRB forum
    - [ ] modding news
  - [ ] SourceForge project news section and gemrb-release mailing list
  - [ ] #GemRB in channel and title; Discord channel if it doesn't propagate there automatically
  - [ ] New Wikidata release entry and ref: https://www.wikidata.org/wiki/Q1988298

Post-release:
- [ ] Run `admin/guidoc_wikifier.sh` (no params needed) and upload the new docs
- [ ] Update versions back to the `-git` suffix
- [ ] Run `admin/restart_news.sh` to restart the NEWS cycle
- [ ] If the manpage changed (`git log v0.8.6.. gemrb.6.in`), adapt the web copy (pandoc can convert it to markdown)
- [ ] Close old milestone
- [ ] Close old project and create new one from template, redo its milestone rule