Changes

Jump to navigation Jump to search

HOWTO-Release

1,565 bytes added, 17:08, 25 October 2018
m
Text replacement - "</source>" to "</syntaxhighlight>"
''This is work in progress and needs to be completed!''
 
All examples are based on 1.7 and 1.7.0 version. Don't forget to adapt with the adequate version.
* Update the lists of files below, adding new engine data files and such
=== Branching for 1.4.x major release ===* Create a branch for the 1.47.x releases from master, named branch-1-47** <code>git checkout -b branch-1-4 7 master</code>* Increase version on branch-1-4 7 to 1.47.0pre (using <code>devtools/update-version.pl</code>; see below), and commit** <code>devtools/update-version.pl 1 4 7 0 pre</code>** <code>git commit -m "RELEASE: This is 1.47.0pre" -a</code>* Create annotated tag desc/1.47.0pre on that commit and push** <code>git tag -m "Mark 1.47.0pre" desc/1.47.0pre</code>** <code>git push origin tag desc/1.47.0pre branch-1-47:branch-1-47</code>* Increase version on master to 1.58.0git, and commit
** <code>git checkout master</code>
** <code>devtools/update-version.pl 1 5 8 0 git</code>** <code>git commit -m "RELEASE: This is 1.58.0git" -a</code>* Create annotated tag desc/1.58.0git on that commit and push** <code>git tag -m "Mark 1.58.0git" desc/1.58.0git</code>** <code>git push origin tag desc/1.58.0git master</code>
=== Testing ===
* Ensure ADGF_TESTING/ADGF_UNSTABLE flags are correct for the release.
* Identify release critical (show stopper) bugs and get people to fix them.
* Identify other important bugs and get people to fix them.
=== Preparing the source ===
* Browse 'git log' since the previous release and add all significant changes to the NEWS file
* Make sure the translations.dat file is up to date. This file is automatically generated once per week (on Monday morning) and may need to be updated manually if changes to the translations occurred since the last Monday. Use ''make translations-dat'' to update the file (and then commit it if it was changed).
* You have to update the versions in all relevant files. There is a script, <code>devtools/update-version.pl</code> meant to help you with this. It will generate/update the following files:
** base/internal_version.h
** COPYRIGHT
* Review the following port specific files for version updates:
** backends/platform/gp2x/build/README-GP2X** backends/platform/gp2x/buildps2/README-GP2X.html** backends/platform/ps2/READ_PS2.TXTPS2
** backends/platform/psp/README.PSP
** backends/platform/symbian/README
** backends/platform/wince/README-WinCE.txt
** backends/platform/ds/arm9/dist/readme_ds.txt
** dists/win32/ScummVM.iss (AppVerName)
* Review the release dates in the following port specific files:
** dists/win32/ScummVM.iss
** dists/win32/scummvm.gdf.xml
* Make sure package descriptions are up-to-date:
** dists/redhat/scummvm.spec
* Create MSVC project files in the release branch (for example branch-1-47-0, where the tarballs are created from)
** make ideprojects
** git commit -m "DISTS: Generated Code::Blocks and MSVC project files"
** And last but not least don't forget to push the results to our github repo via "git push"
* Make source tarballs, post put them in the SF.net FRSdirectory.** There is a script <code>devtools/dist-scummvm.sh</code>, which does this creates them automatically.
** 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
=== Branching for 1.4.0 minor releases ===* Create a branch for 1.47.0 from branch-1-47, named branch-1-47-0** <code>git checkout -b branch-1-47-0 branch-1-47</code>* Increase version on branch-1-47-0 to 1.47.0 and commit, push** <code>devtools/update-version.pl 1 4 7 0</code>** Manually edit backends/platform/maemo/debian/changelog to reflect correct release date for 1.47.0 entry** <code>git commit -m "RELEASE: This is 1.47.0" -a</code>** <code>git push origin branch-1-47-0:branch-1-47-0</code>
=== Binaries ===
* Get porters to make binaries.
** Porter must follow our filename convention, which goes like this: "scummvm-VERSION-PORT.EXTENSION". For example: "scummvm-1.1.0-macosx.dmg". Do '''not''' use special names like "EScummVM" or "ScummVMDS". The only exclusion from this requirement is Debian.
** Porters should pass "--enable-release" to configure in case their port is using the configure/make based build system. If their port is not using the configure/make based build system they should make sure they properly define RELEASE_BUILD when compiling their release binary. It is also noteworthy that "--disable-debug" should be passed in order to remove debugging information from the binary.
** Here is a list of files porters should include in their release archives:
*** AUTHORS
*** NEWS
*** README (generic ScummVM one)
*** localized NEWS and README files (from doc/) (optional)
*** scummmodern.zip (from gui/themes directory) (if your port uses new GUI)
*** scummclassic.zip (from gui/themes directory) (if your port uses new GUI)
*** translations.dat (from gui/themes directory)
*** pred.dic (from dists directory)
*** access.dat (from dists/engine-data)
*** drascula.dat (from dists/engine-data)
*** hugo.dat (from dists/engine-data)
*** kyra.dat (from dists/engine-data)
*** lure.dat (from dists/engine-data)
*** mort.dat (from dists/engine-data)
*** neverhood.dat (from dists/engine-data)
*** queen.tbl (from dists/engine-data)
*** sky.cpt (from dists/engine-data)
*** lure.dat (from dists/engine-data)
*** drascula.dat (from dists/engine-data)
*** teenagent.dat (from dists/engine-data)
*** hugotony.dat (from dists/engine-data)
*** toon.dat (from dists/engine-data)
*** wintermute.zip (from dists/engine-data)
 
*** your build binary
*** your build-specific README (optional)
*** ...
* Porters can need to upload binaries via SCP or SFTP: <code>scp FILENAME SFNET_USERNAME,scummvm@frs.sourceforge.net:/home/frs/project/s/sc/scummvm/scummvm/X.Y.Z/</code>** More details on at some service and then send the link to the upload process and team member managing the file release system (this should be detailed in general: https://sourceforgethe email sent to porters with the links to the tarballs).net/apps/trac/sourceforge/wiki/Release%20files%20for%20download
* Update the website internally (i.e. update the version in the repository), but do not yet put these changes online.
** Edit <code>include/config.inc.php</code> to update the global version.
** Update <code>data/downloads.xml</code>.
** Add a news item.
** Sparkle automatic updates*** 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 default platform packages the scummvm_appcast.xml file in scummvm/dist/macosx/.*** Copy the app cast file on sfthe website as appcasts/macosx/release.net xml** Copy over the release files to FRS*** Set the OS for the newly uploaded binaries (click on the (i) next to each binary).**** -win32.exe as Windows binary**** -macosx.dmg as Mac binary**** .tar.bz2 as Linux, FreeBSD and Other binary**** -solaris-x86.tar.gz as Solaris binary === Tagging a version ===* 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 tag -m "Tag v1.7.0" 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** <code>git checkout branch-1-7</code>** <code>devtools/update-version.pl 1 7 1 pre</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** <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> === Creating source tarballs ===Then you need to create and upload the tarballs. <syntaxhighlight lang="bash">devtools/dist-scummvm.sh scummvm 1.9.0devtools/dist-scummvm.sh scummvm-tools 1.9.0</syntaxhighlight>
=== Tagging Then upload the resulting scummvm-1.49.0 ===* When 1.4tar.0 is ready to be announcedgz, make a permanent v1.4.0 tag in git to mark the release, and delete the 1.4.0 branch** <code>git checkout branchscummvm-1-4-0</code>** <code>git tag -m "Tag v1.49.0" v1.4tar.0</code>** <code>git push origin tag v1.4.0</code>* Also increase the version number on the 1.4.x branch to 1.4.1pre** <code>git checkout branch-1-4</code>** <code>devtools/updatebz2, scummvm-version.pl 1 4 1 pre</code>** <code>git commit -m "RELEASE: This is 1.49.1pre" -a</code>* Create annotated tag desc/10.4tar.1pre on that commit xz and push** <code>git tag scummvm-m "Mark 1.49.1pre" desc/10.4tar.1pre</code>** <code>git push origin tag desc/1.4zip to the FRS.1pre branch-1-4:branch-1-4</code>
=== News & Notification ===
** ... more ?
* Put the updated web site online
* Update IRC channel topic
=== Updating the wiki ===
* Add the first release field on the info box of the newly supported engines.
* Update [[Platforms]] page if status changed for some of the platforms (e.g. no release for the latest stable version). For these platforms the latest stable version info will also need to be changed if it was using the StableVersion template.
* Set the ''First Official Version'' field for new platforms.
* Update the support field on the info box of the newly supported games. Also change these games from ''Unsupported Games'' category to ''Supported Games'' category.
TrustedUser
1,649

edits

Navigation menu