Skip to content
Snippets Groups Projects
Commit 45aade78 authored by Jaka Kranjc's avatar Jaka Kranjc
Browse files

merged the missing bits of Release.md into github_release.checklist

parent bc3ba530
No related branches found
No related tags found
No related merge requests found
......@@ -158,7 +158,7 @@ All of this makes reviewing and bisecting for regressions easier.
1. Squash merge only if the history is a mess or it makes more
sense (eg. consecutive commits through the github website).
2. For release planning check the milestones and gemrb/docs/Release.txt.
2. For release planning check the milestones and any pending pull requests.
2.1. When starting the final approach, use `admin/github_release.checklist`
as a template to track progress in a dedicated issue.
3. Releases are usually made when larger pieces of work land or many smaller
......
### Release checklist
This is a general release preparation checklist.
See [Release.md](https://github.com/gemrb/gemrb/blob/master/gemrb/docs/en/Release.md) for a longer writeup.
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)
......@@ -16,24 +16,44 @@ Beta testing:
- [ ] Retest character generation of remaining games
Release:
- [ ] Finalise choice of version number
- [ ] Update both version numbers
- [ ] Finalise choice of version number, eg. v1.2.3
- [ ] Update version number in `gemrb/includes/globals.h` and `configure.in`
- [ ] Final `NEWS` update
- [ ] Write docs:
- [ ] Forum announcements
- [ ] Release notes
- [ ] Amend Roadmap in contributing.md
- [ ] `make dist`
- [ ] Create the source tarball with `make dist`
- [ ] Add any missing files to the cmake install targets and recreate the tarball
- [ ] Add any new extraneus files to `.gitattributes` and recreate
- [ ] Build it and run the minimal test or more: `gemrb/gemrb -c ../gemrb/GemRB.cfg.noinstall.sample`
- [ ] Add a git tag and push it
- [ ] Run `admin/guidoc_wikifier.sh` (no params needed) and upload the new docs
```
ver=0.8.2
git tag -a -m "GemRB $ver" v$ver
git push origin v$ver
```
Deployment:
- [ ] Promote the new tag to a release on GitHub
- [ ] Update versions back to `-git` suffix
- [ ] `admin/restart_news.sh`
- [ ] Write docs:
- [ ] Forum announcements
- [ ] Release notes if needed (configuration changes, notes for packagers)
- [ ] SourceForge
- [ ] Upload source package to SourceForge
- [ ] Upload any release notes alongside
- [ ] Mark release's AppVeyor build as a Windows default on SourceForge
- [ ] (optional) regenerate android build
- [ ] Mark release's AppVeyor build as a Windows default on SourceForge and source for everyone else
- [ ] (optional) regenerate android build
- [ ] Test downloads
- [ ] Runtime tests of release packages
- [ ] Announce as per Release.md
- [ ] Announce on
- [ ] homepage: sidebar (versions and news), news, start (version), changelog (status
and log swap), old_changelogs
- [ ] Gibberlings3 forums
- [ ] GemRB forum
- [ ] modding news (a template is available in `admin/announcement.template`)
- [ ] SourceForge project page news section
- [ ] #GemRB in channel and title
- [ ] Discord channel
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
How to make a release
*********************
Cleanup and pre-testing
=======================
Check if there are any open patches, pull requests or important stashes
laying around. Engage, triage and finalize/delay. It sucks to be waiting
for feedback too long, especially if you're an outsider.
Ideally make a speed run through one of the games to find any regressions.
BG2 intro area and TOB up to Saradush will test a lot of subsystems in a
short time.
Fix, revert or delay the release as needed.
Preparing and testing GIT
=========================
* Make sure that version numbers are correct for the upcoming version:
* configure.in
* gemrb/includes/globals.h
* Update NEWS with highlights since the last release
* Make distribution .tar.gz (see Source release below) and test it
- make sure all needed files are included
- the minimal test should not fail:
`gemrb/gemrb -c ../gemrb/GemRB.cfg.noinstall.sample`
* Tag current GIT to version number e.g. v0.9.0
i.e. in the gemrb root directory do
```
ver=0.8.2
git tag -a -m "GemRB $ver" v$ver
git push origin v$ver
```
* After you're done, update the version with a -git suffix, so it will be
easier to tell if people are running release builds or not
Source release
==============
* via cmake/autotools (excludes useless files intentionally!):
`make dist`
* via github (fallback):
if you've pushed the new tagged release already, github will have generated
a clean tarball for you at https://github.com/gemrb/gemrb/releases
Binary releases
===============
Check Travis and Appveyor build bots — the builds are automatically uploaded
to Sourceforge. Grab the commit hash and then mark the correct windows build
as the default download (see below).
If there's time/interest, manually generate an android build.
Release and Announcements
=========================
* Write the release notes if necessary. They are mainly for packagers, so
create them if there are structural or build related changes. New config
options should also be mentioned here if they're not part of the changelog.
* Put the tarballs/binaries into Releases on SF
- go to the Files section
- click on the sources subdir
- add a new similarly-named folder
- use "add file" to upload the sources and release notes
- change the file properties to set the default platforms (under "view details")
* Test the downloads from sourceforge.net
* Announce on SF, #GemRB in channel and title, Discord channel and Gibberlings3:
- our forum
- modding news (Lynx, Avenger, Mike1072, Theacefes, Grim Squeaker, DavidW and cmorgan have access)
(a template is available in `admin/announcement.template`)
- homepages: sidebar (versions and news), news, start (version), changelog (status
and log swap), old_changelogs
- github: go to the Releases tab and promote the new tag to a release, then add
a link to the release notes
* Run `admin/restart_news.sh` to restart the NEWS cycle
* Run `admin/guidoc_wikifier.sh` (no params needed) and upload the new docs
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment