Support:Releasing: Difference between revisions

From Arianne
Jump to navigation Jump to search
Content deleted Content added
imported>Hendrik Brummermann
imported>Hendrik Brummermann
Line 125: Line 125:
* Unzip: <code>unzip ../branch_cvs/1.xx/build/stendhal-server-1.xx.zip</code>
* Unzip: <code>unzip ../branch_cvs/1.xx/build/stendhal-server-1.xx.zip</code>
* Announce in game that the server will go down now (so that it is one of the last lines in the chatlog for players)
* Announce in game that the server will go down now (so that it is one of the last lines in the chatlog for players)
* Stop the server <code>./stendhal stop</code>
* Restart the server as root <code>systemctl restart stendhal</code>
* Check the log that the shutdown completed: <code>less log/server.log</code>, hit shift+g to go to the end of the file, q to exit
* Start the server: <code>./stendhal start</code>
* Keep an eye on <code>less log/server.log</code> for errors, hit shift+f to follow, ctrl+c, q to exit
* Keep an eye on <code>less log/server.log</code> for errors, hit shift+f to follow, ctrl+c, q to exit



Revision as of 16:32, 23 December 2025

From /home/marauroa/doc/releasing.txt

Preparing for release

Announcements

  • Announce a code freeze (allow bug fixes only)
  • Ask testers to test everything new and everything old
  • Ask developers to update doc/CHANGES.txt
  • Ask testers to make nice screenshots of the changes (to use later for the arianne.sf.net announcement)

Version numbers

The correct way to change version numbers is to edit build.ant.properties then run ant init (or ant dist).

You edit the lines

   version.old = 1.47
   version  = 1.48
   version.android = 1048000

A version of a.b.c is converted to abbbccc with leading 0 for the Android version code. For example 1.48 is 1048000 and 1.49.1 is 1049001.

Branching procedure

We develop code on master and branch from master for each release.

Eclipse is a good way to branch: from a master checkout, right click and select Team -> Switch to | New Branch... Please make sure, that you're choosing a name for the new branch which sticks with conventions. VERSION_0x_RELEASE_yy

Once a branch is successfully created, one can can update their IDE to use that branch [Team -> Switch to -> Other, Checkout} or for command line:

git pull
git checkout VERSION_01_RELEASE_XX

Prepare the release announcement

  • Prepare a nice text about the changes in the new release, preferably from an in-game perspective
  • Add two or three screenshots (250px width)
  • Don't put it in the website, yet. Perhaps store it in the Support:-section on the wiki?

Releasing Phase 1: Building and testing

git checkout

  • In a shell go to directory /home/marauroa/branch_cvs
  • Create subfolder with the version number based on the existing checkout:
  • cp -ax stendhal 1.xx
  • cd 1.xx
  • git pull
  • git checkout VERSION_01_RELEASE_xx

Building the release

  • copy the keystore.ks and build.ant-private.properties: cp ../skeleton/* .
  • download the last official release to build-archive: cd build-archive; wget http://arianne.sourceforge.net/download/stendhal.zip; mv stendhal.zip stendhal-<oldversion>.zip; cd ..
  • run ~/bin/build
  • copy the output from the signupdated-step into an editor for later use

So, the download and release files are build now

Preparing the updater

Note: 1.20 is the version of the update-base. (The last time the updater was broken).

  • download the file http://arianne.sourceforge.net/stendhal/updates/update-1.20.properties and save it as update-1.20.properties.xxx
  • edit update-1.20.properties.xxx. The file has lots of comments. Important: for the init.file-list and update.file-list parameters, stendhal or stendhal-diff must be the last entry in order to recover from a half-download.
  • Use ls -l to learn the file size, the signature have been printed by the build script earlier (see above)
  • You need at least stendhal-data-1.xx.jar and stendhal-1.xx.jar for the initial download and stendhal-data-diff-1.xx-1.xx.jar, stendhal-diff-1.xx-1.xx.jar for the update. If there had been changes, include marauroa, stendhal-sound-diff and/or stendhal-music-diff.
  • Upload the files to arianne.sourceforge.net: scp * nhnb,arianne@web.sf.net:/home/project-web/arianne/htdocs/stendhal/updates/
  • Upload the files to arianne-project.org: cp * /var/www/arianne/stendhal/updates/

Testing the updater

  • On your local computer find ~/.stendhal/jar/jar.properties and add this line server.update-prop-1.20=http://arianne.sourceforge.net/stendhal/updates/update-1.20.properties.xxx
  • Test a normal update for the download client
  • Test a update for the webstart client.
  • Test a fresh download for the webstart client.
  • Test a webstart start with only diff-files (created by an update of a downloaded client) in the jar-folder

Releasing Phase 2: Sourceforge Project

Important: This is the point of no return.

Only do these next steps when you are sure that you are ready to restart server and make the release go live. get yourself a calming drink and take some deep breaths because the next 30 minutes is going to be hard work.

Uploading the File Release

  • Login to the Sourceforge Shell server: ssh -t nhnb,arianne@shell.sourceforge.net create
  • Go to the stendhal folder: cd /home/frs/project/arianne/stendhal
  • Create the folder for the download: mkdir 1.xx
  • Edit the version number in vi stendhal-readme.markdown
  • Logout of the sourceforge shell
  • From the build/lib directory of stendhalgame.org, upload the updater/webstart files: scp stendhal-*.jar stendhal*-diff-*.jar nhnb@frs.sourceforge.net:/home/frs/project/arianne/z_old/stendhal-updates
  • Upload the distribution scp * nhnb@frs.sourceforge.net:/home/frs/project/arianne/stendhal/1.xx

Alternatively, you can use the Sourceforge webpages at Develop -> Project Admin -> File Manager to create the folder and upload the files.

Release notes and default download

  • Login to Sourceforge with an account that has admin rights for the arianne-project
  • Click in Develop -> Project Admin -> File Manager
  • Find stendhal and the newly added folder
  • Left click on the main download file (full zip) and select all platforms

Active the client updater

  • Update the single line /home/project-web/arianne/htdocs/stendhal.version to be 1.XX
  • Rename update-1.20.properties.xxx to update-1.20.properties
  • Uncomment the announcement in /home/project-web/arianne/htdocs/xml/website_news.xml
  • Edit /home/project-web/arianne/htdocs/xml/game_stendhal.xml - update the top part for version and release date, Update the changelog

Releasing Phase 3: Update stendhalgame.org

  • Double check that the file release is visible, the default download points to the new version, that http://arianne.sourceforge.net/stendhal/updates/update-1.20.properties and http://arianne.sourceforge.net/stendhal.version are updated
  • Announce in game: /msg postman tellall Hi, please logout within the next five minutes and return in about ten minutes for a quick server update.

Rebuild the server

  • Rebuild the server because we want it to be unsigned (this makes live-bugfixing easier)
  • Go into the cvs checkout folder: /home/marauroa/branch_cvs/1.xx
  • delete the keystore.ks: rm keystore.ks
  • rebuild: ant clean dist

Update the server process

  • Go into the server directory: cd /home/marauroa/server
  • Delete the old version: rm *1.xx*
  • Update the version number in the shell script "stendhal"
  • Unzip: unzip ../branch_cvs/1.xx/build/stendhal-server-1.xx.zip
  • Announce in game that the server will go down now (so that it is one of the last lines in the chatlog for players)
  • Restart the server as root systemctl restart stendhal
  • Keep an eye on less log/server.log for errors, hit shift+f to follow, ctrl+c, q to exit

Watch the game

  • Login with an admin char, become visible and wait in townhall.
  • Rent a sign pointing to the release announcement on http://arianne.sf.net

Update the website

  • change to the parent folder of the cvs checkout: cd /home/marauroa/branch_cvs
  • delete the old version: rm -rf stendhal
  • activate the new version: mv 1.xx stendhal (/var/www/stendhal/data is a symlink pointing to this place)
  • update the version number in /var/www/stendhal/configuration.php
  • update the version number in /var/www/stendhal/stendhal.version (I think this is not used anymore since 0.99)

Pointer to announcement

  • Login with an admin account to https://stendhalgame.org
  • In the right hand side admin-menu, create a News-item
  • When you see the list of old news-items, scroll all the way down, to create a new one
  • Use the same title as the one on arianne.sf.net, select "release" News type.
  • You can use this template, just adjust the link
<p>There is a new release of Stendhal for you to enjoy. Please see <a href="LINK-TO-NEWS-DETAILS-PAGE-ON-arianne.sf.net">
the announcement</a> for details. </p>

<p>Enjoy!</p>

<p>PS: Join us in <a href="/chat/">#arianne</a> to discuss the release and learn how you can contribute.</p>

Releasing Phase 4: After Release

Calm down, the difficult and time critical tasks are done