Difference between revisions of "HOWTO-Release"

Jump to navigation Jump to search
2,687 bytes added ,  21:28, 28 August 2021
Correct instructions
(Correct instructions)
(17 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 28: Line 37:
** <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 51: Line 64:
** dists/scummvm.rc
** dists/scummvm.rc
* Review the following documentation files for version and copyright year updates:
* Review the following documentation files for version and copyright year updates:
** README.md
** README(.md)
** 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 93: Line 107:
*** COPYING.FREEFONT
*** COPYING.FREEFONT
*** COPYING.LGPL
*** COPYING.LGPL
*** COPYING.OFL
*** COPYRIGHT
*** COPYRIGHT
*** NEWS
*** NEWS(.md)
*** README (generic ScummVM one)
*** README(.md) (generic ScummVM one)
*** localized NEWS and README files (from doc/) (optional)
*** localized NEWS and README files (from doc/) (optional)
*** 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 118: 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 132: Line 149:
** Sparkle automatic updates
** Sparkle automatic updates
*** Create a ReleaseNotes file on FRS with the changes from this release (from NEWS file).
*** Create a ReleaseNotes file on FRS with the changes from this release (from NEWS file).
**** Translate it to ReleaseNotes.html with https://markdowntohtml.com/
*** Sign the macOS and Win32 binaries with our private key for Sparkle
*** Sign the macOS and Win32 binaries with our private key for Sparkle
*** Update the scummvm_appcast.xml file in scummvm/dist/macosx/.
*** Update the scummvm_appcast.xml file in scummvm/dist/macosx/.
Line 154: Line 172:
** <code>git tag -m "Mark 1.7.1pre" desc/1.7.1pre</code>
** <code>git tag -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 164: Line 183:


Then upload the resulting scummvm-1.9.0.tar.gz, scummvm-1.9.0.tar.bz2, scummvm-1.9.0.tar.xz and scummvm-1.9.0.tar.zip to the FRS.
Then upload the resulting scummvm-1.9.0.tar.gz, scummvm-1.9.0.tar.bz2, scummvm-1.9.0.tar.xz and scummvm-1.9.0.tar.zip to the FRS.
=== Signing binaries ===
Put tarballs into directory <tt>archives/</tt>, run:
<syntaxhighlight lang="bash">
bin/generate_appcast archives/
bin/old_dsa_scripts/sign_update archives/scummvm-2.1.1-win32.exe dsa_priv.pem
bin/old_dsa_scripts/sign_update archives/scummvm-2.1.1-macosx.dmg dsa_priv.pem
</syntaxhighlight>
The first line will generate file <tt>archives/release.xml</tt>. The following ones will just spit out DSA signatures.
Copy/paste signatures to <tt>dists/macosx/scummvm_appcast.xml</tt> in the main git repo.
Then run:
<syntaxhighlight lang="bash">
make publish-appcast
cd ../scummvm-web
git commit -m 'WEB: Sync appcast' -a
</syntaxhighlight>


=== News & Notification ===
=== News & Notification ===
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:
** Create <tt>data/compatibility/compat-2.1.1.xml</tt>
** Create a SF.net news item
** Update <tt>data/downloads.xml</tt> file
** [http://freecode.com/ Freecode]  
** Change version constants in <tt>include/Constants.php</tt>
** Make sure Sparkle cast 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 ===

Navigation menu