330
edits
Rootfather (talk | contribs) |
Rootfather (talk | contribs) |
||
(22 intermediate revisions by 5 users not shown) | |||
Line 7: | Line 7: | ||
=== Preparations === | === Preparations === | ||
* | * Make the release plan, normally 1-2 weeks before branching, 3-4 weeks for bug fixing, 2 weeks after tagging before the release | ||
* | ** 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 | ||
** | ** 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>. | ||
** | ** 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 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> | ||
* | * 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 95: | Line 109: | ||
*** COPYING.OFL | *** COPYING.OFL | ||
*** COPYRIGHT | *** COPYRIGHT | ||
*** NEWS.md | *** NEWS(.md) | ||
*** README.md (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 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. | ||
** | ** 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 | ||
** 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 165: | Line 178: | ||
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). | ||
* | ** Change version constants in <tt>include/Constants.php</tt> | ||
** | **Make sure to update the Release information in the datasheet | ||
** [ | ** 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 | ||
** | ** Post about the release on Facebook | ||
* Put the updated web site online | * Put the updated web site online | ||
* Update IRC channel | * Update IRC and Discord channel topics | ||
=== Updating the wiki === | === Updating the wiki === |
edits