Support:Releasing: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Hendrik Brummermann No edit summary |
imported>Hendrik Brummermann |
||
| (104 intermediate revisions by 3 users not shown) | |||
| Line 14: | Line 14: | ||
You edit the lines |
You edit the lines |
||
version.old = |
version.old = 1.47 |
||
version = |
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 === |
=== Branching procedure === |
||
We develop code on |
We develop code on <code>master</code> and branch from <code>master</code> for each release. |
||
Eclipse is a good way to branch: from a |
Eclipse is a good way to branch: from a <code>master</code> 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 branch is successfully created, one can can update their IDE to use that branch |
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 |
|||
on your existing HEAD checkout to change it to be for the XX release. |
|||
git checkout VERSION_01_RELEASE_XX |
|||
=== Prepare the release announcement === |
|||
== Releasing == |
|||
* Prepare a nice text about the changes in the new release, preferably from an in-game perspective |
|||
=== CVS Checkout |
|||
* 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 |
* In a shell go to directory /home/marauroa/branch_cvs |
||
* Create subfolder with the version number |
* Create subfolder with the version number based on the existing checkout: |
||
* <code>cp -ax stendhal 1.xx</code> |
|||
* cd into subfolder |
|||
* <code>cd 1.xx</code> |
|||
* run with the correct branch name: <code>cvs -d :pserver:arianne.cvs.sf.net:/cvsroot/arianne checkout -r VERSION_01_RELEASE_00 stendhal</code> |
|||
* <code>git pull</code> |
|||
* <code>git checkout VERSION_01_RELEASE_xx</code> |
|||
=== Building the release === |
=== Building the release === |
||
* still in /home/marauroa/<version> move all the files from the subfolder "stendhal", which was created by CVS, one into the current folder: <code>mv stendhal/* stendhal/.hotspotrc stendhal/.cvsignore .</code> |
|||
* copy the keystore.ks and build.ant-private.properties: <code>cp ../skeleton/* .</code> |
* copy the keystore.ks and build.ant-private.properties: <code>cp ../skeleton/* .</code> |
||
* download the last official release to build-archive: <code>cd build-archive; wget <nowiki>http://arianne.sourceforge.net/download/stendhal.zip</nowiki>; mv stendhal.zip stendhal-<oldversion>.zip; cd ..</code> |
* download the last official release to build-archive: <code>cd build-archive; wget <nowiki>http://arianne.sourceforge.net/download/stendhal.zip</nowiki>; mv stendhal.zip stendhal-<oldversion>.zip; cd ..</code> |
||
* run <code> |
* run <code>~/bin/build</code> |
||
* copy the output from the signupdated-step into an editor |
* copy the output from the signupdated-step into an editor for later use |
||
So, the download and release files are build |
So, the download and release files are build now |
||
== Preparing the updater == |
=== Preparing the updater === |
||
Note: |
Note: 1.20 is the version of the update-base. (The last time the updater was broken). |
||
* download the file <nowiki>http://arianne.sourceforge.net/stendhal/updates/update- |
* download the file <nowiki>http://arianne.sourceforge.net/stendhal/updates/update-1.20.properties</nowiki> and save it as update-1.20.properties.xxx |
||
* edit update- |
* 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 <code>ls -l</code> 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-client, stendhal-sound-diff and/or stendhal-music-diff. |
|||
* 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 the arianne webspace on Sourceforge. |
|||
* Upload the files to arianne.sourceforge.net: <code>scp * nhnb,arianne@web.sf.net:/home/project-web/arianne/htdocs/stendhal/updates/</code> |
|||
* Upload the files to arianne-project.org: <code>cp * /var/www/arianne/stendhal/updates/</code> |
|||
== Testing the updater == |
=== Testing the updater === |
||
* On your local computer find ~/.stendhal/jar/jar.properties and add this line <code>server.update-prop- |
* On your local computer find ~/.stendhal/jar/jar.properties and add this line <code>server.update-prop-1.20=<nowiki>http://arianne.sourceforge.net/stendhal/updates/update-1.20.properties.xxx</nowiki></code> |
||
* Test a normal update for the download client |
* Test a normal update for the download client |
||
* Test a update for the webstart client. |
* Test a update for the webstart client. |
||
| Line 62: | Line 75: | ||
* Test a webstart start with only diff-files (created by an update of a downloaded client) in the jar-folder |
* 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. |
|||
{{Likely Outdated}} |
|||
=== Uploading the File Release === |
=== Uploading the File Release === |
||
* Login to the Sourceforge Shell server: <code>ssh -t nhnb,arianne@shell.sourceforge.net create</code> |
|||
* download + z_old |
|||
* Go to the stendhal folder: <code>cd /home/frs/project/arianne/stendhal</code> |
|||
* Create the folder for the download: <code>mkdir 1.xx</code> |
|||
* Edit the version number in <code>vi stendhal-readme.markdown</code> |
|||
* Logout of the sourceforge shell |
|||
* From the build/lib directory of stendhalgame.org, upload the updater/webstart files: <code>scp stendhal-*.jar stendhal*-diff-*.jar nhnb@frs.sourceforge.net:/home/frs/project/arianne/z_old/stendhal-updates</code> |
|||
* Upload the distribution <code>scp * nhnb@frs.sourceforge.net:/home/frs/project/arianne/stendhal/1.xx</code> |
|||
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 === |
|||
You need to get the folder ready for the files to go in. You can: |
|||
* 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 === |
|||
<pre> |
|||
Make a shell session using |
|||
ssh -t kymara,arianne@shell.sourceforge.net create |
|||
then |
|||
cd /home/frs/project/a/ar/arianne/stendhal/ |
|||
mkdir (version number) |
|||
* Update the single line /home/project-web/arianne/htdocs/stendhal.version to be 1.XX |
|||
From your directory of files, |
|||
* Rename update-1.20.properties.xxx to update-1.20.properties |
|||
Copy these using for example |
|||
* Uncomment the announcement in /home/project-web/arianne/htdocs/xml/website_news.xml |
|||
scp stendhal-*0.72.zip kymara@frs.sourceforge.net:/home/frs/project/a/ar/arianne/stendhal/0.72 |
|||
* Edit /home/project-web/arianne/htdocs/xml/game_stendhal.xml - update the top part for version and release date, Update the changelog |
|||
Upload a text file to the same location with release notes. |
|||
== Releasing Phase 3: Update stendhalgame.org == |
|||
Or, you can use the UI from sourceforge at Develop -> Project Admin -> File Manager to create the folder and upload the files. |
|||
* Double check that the file release is visible, the default download points to the new version, that <nowiki>http://arianne.sourceforge.net/stendhal/updates/update-1.20.properties</nowiki> and <nowiki>http://arianne.sourceforge.net/stendhal.version</nowiki> 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 === |
|||
Once files are uploaded, |
|||
* Rebuild the server because we want it to be unsigned (this makes live-bugfixing easier) |
|||
Copy the server zip to the server machine |
|||
* Go into the cvs checkout folder: <code>/home/marauroa/branch_cvs/1.xx</code> |
|||
* delete the keystore.ks: <code>rm keystore.ks</code> |
|||
* rebuild: <code> ant clean dist</code> |
|||
=== Update the server process === |
|||
Next you need to make the diff files for the updater and sign them. |
|||
Go back to your stendhal source directory. We need to know the differences between this version and the old one (as defined in build.ant.properties). So get a stendhal-oldversion.zip and copy it into the directory build-archive. |
|||
* Go into the server directory: <code>cd /home/marauroa/server</code> |
|||
Now run: |
|||
* Delete the old version: <code> rm *1.xx*</code> |
|||
ant -f release.xml -Dkeystore.alias=miguelangelblanchlardin@hotmail.com -Dkeystore.password=qwerty |
|||
* Update the version number in the shell script "stendhal" |
|||
* 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) |
|||
* Restart the server as root <code>systemctl restart stendhal</code> |
|||
* Keep an eye on <code>less log/server.log</code> for errors, hit shift+f to follow, ctrl+c, q to exit |
|||
=== Watch the game === |
|||
From build/lib, copy stendhal-data-diff-0.67-0.68.jar, stendhal-diff-0.67-0.68.jar, stendhal-starter-0.68.jar to your home directory on sf.net. |
|||
Use for example scp /home/katie/72stendhal/build/lib/stendhal-diff-0.71-0.72.jar kymara@web.sourceforge.net:htdocs/stendhal/updates/ |
|||
* Login with an admin char, become visible and wait in townhall. |
|||
The updater needs a correctly configured file at http://arianne.sourceforge.net/stendhal/updates/update.properties. We usually create one in that |
|||
* Rent a sign pointing to the release announcement on <nowiki>http://arianne.sf.net</nowiki> |
|||
place called update.properties.xxx and test that it works correctly by editing our ~/stendhal/jar/jar.properties file to have the line |
|||
server.update-prop=http\://arianne.sourceforge.net/stendhal/updates/update.properties.xxx |
|||
=== Update the website === |
|||
There is now an example of update.properties in src/games/stendhal/client/update. File sizes are gotten with ls -l. |
|||
To login and change these files, do e.g. ssh -t kymara,arianne@shell.sourceforge.net create |
|||
or use scp as above. |
|||
* change to the parent folder of the cvs checkout: <code>cd /home/marauroa/branch_cvs</code> |
|||
* delete the old version: <code>rm -rf stendhal </code> |
|||
* activate the new version: <code>mv 1.xx stendhal</code> (/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 === |
|||
Sourceforge side things |
|||
1) Enter in Sourceforge |
|||
2) Click in Develop -> Project Admin -> File Manager |
|||
3) Find stendhal and the newly added folder |
|||
4) Left click on the release notes text file you uploaded. Tick that it's a release note and save |
|||
5) left click on each other file and select the release note for it using teh drop down menu |
|||
6) left click on the main download file (full zip) and select all platforms |
|||
7) wait for them to show up |
|||
* Login with an admin account to https://stendhalgame.org |
|||
8) Finally email users (arianne-announce@..) |
|||
* In the right hand side admin-menu, create a News-item |
|||
If not already done: |
|||
* When you see the list of old news-items, scroll all the way down, to create a new one |
|||
9) Copy diff files for updates and the properties file to /home/project-web/arianne/htdocs/stendhal/updates/ |
|||
* Use the same title as the one on arianne.sf.net, select "release" News type. |
|||
-9b) Copy stendhal-starter-0.XX.jar to /home/project-web/arianne/htdocs/jws/ - if needed |
|||
* You can use this template, just adjust the link |
|||
10) Test that updates work with update.properties.xxx. See above |
|||
<pre> |
|||
<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> |
|||
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 10 minutes is going to be hard work. |
|||
</pre> |
|||
*Announce to users that server is going down. Shut it down. |
|||
*Unzip your stendhal-server-XX.zip into the correct place |
|||
*Edit the version number server side in the script /home/marauroa/server/stendhal |
|||
*Wait for the person (you?) who is doing the client release to tell you when to restart server. |
|||
== Releasing Phase 4: After Release == |
|||
Back to client release as fast as possible. |
|||
11) Update /home/project-web/arianne/htdocs/stendhal.version to be 0.XX |
|||
11b) NOT usually necessary as update takes care of it : Edit /home/project-web/arianne/htdocs/jws/stendhal.jnlp to |
|||
have a 0.XX at the line <jar |
|||
href="http://arianne.sourceforge.net/jws/stendhal-starter-0.YY.jar" ... |
|||
11c) Rename update.properties.xxx to update.properties |
|||
12) Finally you need to update the website. |
|||
13) Edit /home/project-web/arianne/htdocs/xml/game_stendhal.xml - update the top part for version and release date. |
|||
*Tell the server admin they are ok to restart the server |
|||
*Login to stendhal just to check all is ok |
|||
13b) Update the changelog on /home/project-web/arianne/htdocs/xml/game_stendhal.xml if you want to. |
|||
14) Finally write a news item at /home/project-web/arianne/htdocs/xml/website_news.xml |
|||
Just copy an old news item and edit it. Use the blurb and some nice screenshots. |
|||
If at the same time as doing you're stendhal release, you're also having to do a marauroa release (and all alone) then I sympathise. However the marauroa release is a lot easier. There are no updates |
|||
to fiddle with. Just a simple file release, and rememeber to edit |
|||
/home/project-web/arianne/htdocs/xml/server_marauroa.xml. |
|||
For stendhal server website you need to edit /var/www/stendhal/configuration.php to show the new version. You can also make a news items there perhaps linking to the main news item at |
|||
http://arianne.sf.net |
|||
To make new items, creatures and outfits show on the webpage you need to |
|||
run a cvs update (to the new branch as detailed at top of this guide) in |
|||
the folder /home/marauroa/branch_cvs/stendhal/. The folder for the |
|||
website /var/www/stendhal/data/ is sym linked to this so that's it |
|||
updated then. |
|||
</pre> |
|||
Calm down, the difficult and time critical tasks are done |
|||
=== After Release === |
|||
* Update the important references when you have time |
|||
{{TODO|Notify arianne-announce email list, Sourceforge Project News Feed, Twitter, [[Support:Pages_covering_Stendhal]]}} |
|||
* Sourceforge project news item |
|||
* arianne-announces Mailinglist |
|||
* [http://happypenguin.altervista.org/gameshow.php?t=Stendhal Happy Penguin] (both "Submit an update about this game" and post a comment) |
|||
* http://www.lgdb.org/game/stendhal |
|||
* https://libregamewiki.org/Stendhal |
|||
* http://gaming.wikia.com/wiki/Stendhal |
|||
* https://stendhalgame.itch.io/stendhal |
|||
* Mastodon |
|||
* Facebook |
|||
* [[Support:Pages_covering_Stendhal]] |
|||