Support:Releasing: Difference between revisions
imported>Hendrik Brummermann No edit summary |
imported>Hendrik Brummermann No edit summary |
||
| Line 26: | Line 26: | ||
on your existing HEAD checkout to change it to be for the XX release. |
on your existing HEAD checkout to change it to be for the XX release. |
||
=== Prepare the release announcement === |
|||
== Releasing == |
|||
* 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 == |
|||
=== CVS Checkout === |
=== CVS Checkout === |
||
| Line 41: | Line 47: | ||
* 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>ant dist</code> |
* run <code>ant dist</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 === |
||
| Line 50: | Line 56: | ||
* download the file <nowiki>http://arianne.sourceforge.net/stendhal/updates/update-0.95.properties</nowiki> and save it as update-0.95.properties.xxx |
* download the file <nowiki>http://arianne.sourceforge.net/stendhal/updates/update-0.95.properties</nowiki> and save it as update-0.95.properties.xxx |
||
* edit update-0.95.properties.xxx. The file has lots of comments. Important: for the |
* edit update-0.95.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-client, stendhal-sound-diff and/or stendhal-music-diff. |
|||
* Upload the files to the arianne webspace on Sourceforge. |
|||
* Upload the files to the arianne webspace on Sourceforge: <code>scp stendhal*.jar update-0.95.properties.xxx kymara,arianne@web.sf.net:/home/project-web/arianne/htdocs/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-0.95=http://arianne.sourceforge.net/stendhal/updates/update-0.95.properties</code>. |
* On your local computer find ~/.stendhal/jar/jar.properties and add this line <code>server.update-prop-0.95=<nowiki>http://arianne.sourceforge.net/stendhal/updates/update-0.95.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 63: | Line 70: | ||
== Releasing Phase 2: Sourceforge Project == |
|||
'''Important:''' This is the point of no return. |
|||
{{Likely Outdated}} |
|||
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 === |
=== Uploading the File Release === |
||
* Login to the Sourceforge Shell server: <code>ssh -t kymara,arianne@shell.sourceforge.net create</code> |
|||
* download + z_old |
|||
* Go to the stendhal folder: <code>cd /home/frs/project/a/ar/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-*1.xx.jar stendhal*-diff-*.jar kymara@frs.sourceforge.net:/home/frs/project/a/ar/arianne/z_old/stendhal-updates</code> |
|||
* Upload the distribution <code>scp stendhal-*1.xx.zip stendhal-1.xx-src.tar.gz kymara@frs.sourceforge.net:/home/frs/project/a/ar/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 acconut 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 release notes text file you uploaded. Tick that it's a release note and save |
|||
* Left click on each other file and select the release note for it using teh drop down menu |
|||
* Left click on the main download file (full zip) and select all platforms |
|||
(This section might be outdated) |
|||
<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) |
|||
=== Active the client updater === |
|||
From your directory of files, |
|||
Copy these using for example |
|||
scp stendhal-*0.72.zip kymara@frs.sourceforge.net:/home/frs/project/a/ar/arianne/stendhal/0.72 |
|||
Upload a text file to the same location with release notes. |
|||
* Update the single line /home/project-web/arianne/htdocs/stendhal.version to be 1.XX |
|||
Or, you can use the UI from sourceforge at Develop -> Project Admin -> File Manager to create the folder and upload the files. |
|||
* Rename update.properties.xxx to update.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 <nowiki>http://arianne.sourceforge.net/stendhal/updates/update-0.95.properties</nowiki> and <nowiki>http://arianne.sourceforge.net/stendhal.version</nowiki> are updated |
|||
Once files are uploaded, |
|||
* Announce in game: /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) |
|||
Next you need to make the diff files for the updater and sign them. |
|||
* Go into the cvs checkout folder: <code>/home/marauroa/branch_cvs/1.xx</code> |
|||
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. |
|||
* delete the keystore.ks: <code>rm keystore.ks</code> |
|||
* rebuild: <code> ant clean dist</code> |
|||
=== Update the server process === |
|||
Now run: |
|||
ant -f release.xml -Dkeystore.alias=miguelangelblanchlardin@hotmail.com -Dkeystore.password=qwerty |
|||
* Go into the server directory: <code>cd /home/marauroa/server</code> |
|||
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. |
|||
* Delete the old version: <code> rm *1.xx*</code> |
|||
Use for example scp /home/katie/72stendhal/build/lib/stendhal-diff-0.71-0.72.jar kymara@web.sourceforge.net:htdocs/stendhal/updates/ |
|||
* 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) |
|||
* Stop the server <code>./stendhal stop</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 |
|||
=== Watch the game === |
|||
The updater needs a correctly configured file at http://arianne.sourceforge.net/stendhal/updates/update.properties. We usually create one in that |
|||
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 |
|||
* Login with an admin char, become visible and wait in townhall. |
|||
There is now an example of update.properties in src/games/stendhal/client/update. File sizes are gotten with ls -l. |
|||
* Rent a sign pointing to the release announcement on <nowiki>http://arianne.sf.net</nowiki> |
|||
To login and change these files, do e.g. ssh -t kymara,arianne@shell.sourceforge.net create |
|||
or use scp as above. |
|||
=== Update the website === |
|||
* change to the parent folder of the cvs checkout: <code>cd /home/marauroa/branch_cvs</code> |
|||
Sourceforge side things |
|||
* delete the old version: <code>rm -rf stendhal </code> |
|||
1) Enter in Sourceforge |
|||
* activate the new version: <code>mv 1.xx stendhal</code> (/var/www/stendhal/data is a symlink pointing to this place) |
|||
2) Click in Develop -> Project Admin -> File Manager |
|||
* update the version number in /var/www/stendhal/configuration.php |
|||
3) Find stendhal and the newly added folder |
|||
* update the version number in /var/www/stendhal/stendhal.version (I think this is not used anymore since 0.99) |
|||
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 |
|||
=== Pointer to announcement === |
|||
8) Finally email users (arianne-announce@..) |
|||
If not already done: |
|||
9) Copy diff files for updates and the properties file to /home/project-web/arianne/htdocs/stendhal/updates/ |
|||
-9b) Copy stendhal-starter-0.XX.jar to /home/project-web/arianne/htdocs/jws/ - if needed |
|||
10) Test that updates work with update.properties.xxx. See above |
|||
* 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 |
|||
<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> |
|||
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. |
|||
*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. |
|||
<p>PS: Join us in <a href="/chat/">#arianne</a> to discuss the release and learn how you can contribute.</p> |
|||
Back to client release as fast as possible. |
|||
</pre> |
|||
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 |
|||
== Releasing Phase 4: After Release == |
|||
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.org/show?Stendhal Happy Penguin] (both "Submit an update about this game" and post a comment) |
|||
* [http://freecode.com/projects/stendhal Freecode] (Freshmeat) |
|||
* Twitter: <code>cd /home/marauroa; bin/twitter-stendhalgame "MESSAGE HERE, include link to arianne.sf.net"</code> |
|||
* Google Plus (Facebook is automatically updated from Twitter) |
|||
* [[Support:Pages_covering_Stendhal]] |
|||
Revision as of 20:35, 5 March 2012
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 = 0.95 version = 0.96
Branching procedure
We develop code on HEAD and branch from HEAD for each release.
Eclipse is a good way to branch: from a HEAD checkout, right click and select Team -> Branch, Click details... to see the names of existing branches, like VERSION_00_RELEASE_XX, so that you are sure you're choosing a name for the new branch which sticks with conventions. Ensure your cvs timeout is sufficiently large that the branching prcoess can complete.
Once branch is successfully created, one can can update their IDE to use that branch (follow your IDE instructions for this) or for command line cvs, run cvs update -rVERSION_00_RELEASE_XX -Pd on your existing HEAD checkout to change it to be for the XX release.
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
CVS Checkout
- In a shell go to directory /home/marauroa/branch_cvs
- Create subfolder with the version number (e. g. 1.00)
- cd into subfolder
- run with the correct branch name:
cvs -d :pserver:arianne.cvs.sf.net:/cvsroot/arianne checkout -r VERSION_01_RELEASE_00 stendhal
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:
mv stendhal/* stendhal/.hotspotrc stendhal/.cvsignore . - 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
ant dist - 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: 0.95 is the version of the update-base. (The last time the updater was broken).
- download the file http://arianne.sourceforge.net/stendhal/updates/update-0.95.properties and save it as update-0.95.properties.xxx
- edit update-0.95.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 -lto 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.
- Upload the files to the arianne webspace on Sourceforge:
scp stendhal*.jar update-0.95.properties.xxx kymara,arianne@web.sf.net:/home/project-web/arianne/htdocs/stendhal/updates/
Testing the updater
- On your local computer find ~/.stendhal/jar/jar.properties and add this line
server.update-prop-0.95=http://arianne.sourceforge.net/stendhal/updates/update-0.95.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 kymara,arianne@shell.sourceforge.net create - Go to the stendhal folder:
cd /home/frs/project/a/ar/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-*1.xx.jar stendhal*-diff-*.jar kymara@frs.sourceforge.net:/home/frs/project/a/ar/arianne/z_old/stendhal-updates - Upload the distribution
scp stendhal-*1.xx.zip stendhal-1.xx-src.tar.gz kymara@frs.sourceforge.net:/home/frs/project/a/ar/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 acconut 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 release notes text file you uploaded. Tick that it's a release note and save
- Left click on each other file and select the release note for it using teh drop down menu
- Left click on the main download file (full zip) and select all platforms
(This section might be outdated)
Active the client updater
- Update the single line /home/project-web/arianne/htdocs/stendhal.version to be 1.XX
- Rename update.properties.xxx to update.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-0.95.properties and http://arianne.sourceforge.net/stendhal.version are updated
- Announce in game: /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)
- Stop the server
./stendhal stop - Check the log that the shutdown completed:
less log/server.log, hit shift+g to go to the end of the file, q to exit - Start the server:
./stendhal start - Keep an eye on
less log/server.logfor 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
- Update the important references when you have time
- Sourceforge project news item
- arianne-announces Mailinglist
- Happy Penguin (both "Submit an update about this game" and post a comment)
- Freecode (Freshmeat)
- Twitter:
cd /home/marauroa; bin/twitter-stendhalgame "MESSAGE HERE, include link to arianne.sf.net" - Google Plus (Facebook is automatically updated from Twitter)
- Support:Pages_covering_Stendhal