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
|