Difference between revisions of "HOWTO-Release"

Jump to navigation Jump to search
1,812 bytes added ,  19:01, 9 October 2021
m
(Added sign binaries section)
(19 intermediate revisions by 5 users not shown)
Line 7: Line 7:


=== Preparations ===
=== Preparations ===
* Making the release plan
* Make the release plan, normally 1-2 weeks before branching, 3-4 weeks for bug fixing, 2 weeks after tagging before the release
* Telling people about it, making sure everybody knows what is going on
** e-mail -devel with the proposed schedule, ask if someone would like to finish some functionality
** Look through all the open issues on the bugtracker and identify release blockers and nice-to-have-fixed bugs
* Update the lists of files below, adding new engine data files and such
* Update the lists of files below, adding new engine data files and such
* If some games must be fixed before the release, identify those and create a list at [[Release Testing]]
* Announce the testing period on the main website and copy to the forums and FB
=== During the release cycle ===
* E-mail the scummvm-devel list at least weekly with the list of release blockers and nice-to-have-fixed bugs
* Track daily testing progress and update Wiki if applicable. Normally, we collect playtests on the forums
* Watch for any potential blockers and pat developers who own the identified blockers
* Squash as many bugs as possible


=== Branching for major release ===
=== Branching for major release ===
Line 18: Line 27:
** <code>git commit -m "RELEASE: This is 2.2.0pre" -a</code>
** <code>git commit -m "RELEASE: This is 2.2.0pre" -a</code>
* Create annotated tag desc/2.2.0pre on that commit and push
* Create annotated tag desc/2.2.0pre on that commit and push
** <code>git tag -m "Mark 2.2.0pre" desc/2.2.0pre</code>
** <code>git tag -a -m "Mark 2.2.0pre" desc/2.2.0pre</code>
** <code>git push origin tag desc/2.2.0pre branch-2-2:branch-2-2</code>
** <code>git push origin tag desc/2.2.0pre branch-2-2:branch-2-2</code>
* Increase version on master to 2.3.0git, and commit
* Increase version on master to 2.3.0git, and commit
Line 25: Line 34:
** <code>git commit -m "RELEASE: This is 2.3.0git" -a</code>
** <code>git commit -m "RELEASE: This is 2.3.0git" -a</code>
* Create annotated tag desc/2.3.0git on that commit and push
* Create annotated tag desc/2.3.0git on that commit and push
** <code>git tag -m "Mark 2.3.0git" desc/2.3.0git</code>
** <code>git tag -a -m "Mark 2.3.0git" desc/2.3.0git</code>
** <code>git push origin tag desc/2.3.0git master</code>
** <code>git push origin tag desc/2.3.0git master</code>
* Update buildbot
* Update buildbot
** Set <code>scumm_branch_stable = "branch-2-2"</code> in master.cfg around [https://github.com/scummvm/scummvm-sites/blob/buildbot/config/master.cfg#L25 line 25].
** Edit at the end of [https://github.com/scummvm/dockerized-bb/blob/master/buildbot-config/builds.py builds.py] the line starting with <code>builds.append(ScummVMStableBuild("stable",</code>.
** Restart the buildbot as described [[Buildbot#Administration|here]]
** Remove the customizations in <code>class ScummVMStableBuild</code> if there were any to make the code inherit from ScummVMBuild without any difference.
** Edit the file [https://github.com/scummvm/dockerized-bb/blob/master/buildbot-config/platforms.py platforms.py] and remove all specific rules mentioning <code>ScummVMStableBuild</code>
** Update the code on the server and reload the buildbot as described [[Buildbot#Administration_on_server|here]]
** Remove the old snapshots: <code> rm /home/buildbot/dockerized-bb/buildbot-data/packages/snapshots/stable/*</code>
** Login on Buildbot, force a build of fetch-stable with cleaning and packaging to create packages for the new stable.
* Communication
* Communication
** Update IRC and Discord channel description
** Update IRC and Discord channel description
Line 54: Line 67:
** NEWS(.md)
** NEWS(.md)
** COPYRIGHT
** COPYRIGHT
*Make sure ADGF_TESTING flag is cleared on all games.
* Review the following port specific files for version updates:
* Review the following port specific files for version updates:
** backends/platform/ps2/README.PS2
** backends/platform/ps2/README.PS2
Line 72: Line 86:
** There is a script <code>devtools/dist-scummvm.sh</code>, which creates them automatically.
** There is a script <code>devtools/dist-scummvm.sh</code>, which creates them automatically.
** Make sure that porters have write access to the release folder on FRS: <code>chmod 775 <folder></code>
** Make sure that porters have write access to the release folder on FRS: <code>chmod 775 <folder></code>
* Add version to dists/macosx/scummvm_appcast.xml
* Follow the instructions at [[HOWTO-Release#Signing binaries]] in order to enable updates via (Win)Sparkle


=== Branching for minor releases ===
=== Branching for minor releases ===
Line 100: Line 114:
*** scummmodern.zip (from gui/themes directory) (if your port uses new GUI)
*** scummmodern.zip (from gui/themes directory) (if your port uses new GUI)
*** scummclassic.zip (from gui/themes directory) (if your port uses new GUI)
*** scummclassic.zip (from gui/themes directory) (if your port uses new GUI)
*** scummremastered.zip (from gui/themes directory) (if your port uses new GUI)
*** translations.dat (from gui/themes directory)
*** translations.dat (from gui/themes directory)
*** pred.dic (from dists directory)
*** pred.dic (from dists directory)
Line 119: Line 134:
*** tony.dat (from dists/engine-data)
*** tony.dat (from dists/engine-data)
*** toon.dat (from dists/engine-data)
*** toon.dat (from dists/engine-data)
*** ultima.dat (from dists/engine-data)
*** wintermute.zip (from dists/engine-data)
*** wintermute.zip (from dists/engine-data)
*** xeen.ccs (from dists/engine-data)
*** xeen.ccs (from dists/engine-data)
Line 131: Line 147:
** Update <code>data/downloads.xml</code>.
** Update <code>data/downloads.xml</code>.
** Add a news item.
** Add a news item.
** Sparkle automatic updates
** Follow the instructions at [https://wiki.scummvm.org/index.php?title=HOWTO-Release#Signing_binaries HOWTO-Release#Signing binaries] in order to enable updates via (Win)Sparkle
*** Create a ReleaseNotes file on FRS with the changes from this release (from NEWS file).
*** Sign the macOS and Win32 binaries with our private key for Sparkle
*** Update the scummvm_appcast.xml file in scummvm/dist/macosx/.
*** Copy the app cast file on the website as appcasts/macosx/release.xml
** Copy over the release files to FRS
** Copy over the release files to FRS
*** Set the OS for the newly uploaded binaries (click on the (i) next to each binary).
*** Set the OS for the newly uploaded binaries (click on the (i) next to each binary).
Line 146: Line 158:
* When 1.7.0 is ready to be announced, make a permanent v1.7.0 tag in git to mark the release
* When 1.7.0 is ready to be announced, make a permanent v1.7.0 tag in git to mark the release
** <code>git checkout branch-1-7-0</code>
** <code>git checkout branch-1-7-0</code>
** <code>git tag -m "Tag v1.7.0" v1.7.0</code>
** <code>git tag -a -m "Tag v1.7.0" v1.7.0</code>
** <code>git push origin tag v1.7.0</code>
** <code>git push origin tag v1.7.0</code>
* Also increase the version number on the 1.7.x branch to 1.7.1pre
* Also increase the version number on the 1.7.x branch to 1.7.1pre
Line 153: Line 165:
** <code>git commit -m "RELEASE: This is 1.7.1pre" -a</code>
** <code>git commit -m "RELEASE: This is 1.7.1pre" -a</code>
* Create annotated tag desc/1.7.1pre on that commit and push
* Create annotated tag desc/1.7.1pre on that commit and push
** <code>git tag -m "Mark 1.7.1pre" desc/1.7.1pre</code>
** <code>git tag -a -m "Mark 1.7.1pre" desc/1.7.1pre</code>
** <code>git push origin tag desc/1.7.1pre branch-1-7:branch-1-7</code>
** <code>git push origin tag desc/1.7.1pre branch-1-7:branch-1-7</code>
*Add this doc to the Read The Doc admin settings to generate the documentation for this version.


=== Creating source tarballs ===
=== Creating source tarballs ===
Line 167: Line 180:




=== Sign binaries ===
=== Signing binaries ===
Put tarballs into directory <tt>archives/</tt>, run:
Put tarballs into directory <tt>archives/</tt>, run:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Line 189: Line 202:
Write a news blurb (or rather multiple to be used in the following). Usually, you want a bit longer one for the website, a list for Versiontracker, something with proper english sentences for Freshmeat, etc....
Write a news blurb (or rather multiple to be used in the following). Usually, you want a bit longer one for the website, a list for Versiontracker, something with proper english sentences for Freshmeat, etc....


* Write a news item for our website (also to be used as template for news items on other sites).
* Write a news item for our website (also to be used as a template for news items on other sites).
* Update / notify various sites:
** Change version constants in <tt>include/Constants.php</tt>
** Create a SF.net news item
**Make sure to update the Release information in the datasheet
** [http://freecode.com/ Freecode]
** Make sure Sparkle appcast is updated (see [[#Signing binaries]])
* Update / notify various sites:  
** Post about the release on our forums
** Post about the release on our forums
** ... more ?
** Post about the release on Facebook
* Put the updated web site online
* Put the updated web site online
* Update IRC channel topic
* Update IRC and Discord channel topics


=== Updating the wiki ===
=== Updating the wiki ===
329

edits

Navigation menu