Support:Releasing: Difference between revisions

From Arianne
Jump to navigation Jump to search
Content deleted Content added
imported>Hendrik Brummermann
Created page with "{{Likely Outdated}} From /home/marauroa/doc/releasing.txt <pre> Preparing for release Announce a code freeze (allow bug fixes only) Ask testers to test everything new and every..."
imported>Hendrik Brummermann
started to convert into wiki formating
Line 3: Line 3:
From /home/marauroa/doc/releasing.txt
From /home/marauroa/doc/releasing.txt


== Preparing for release ==
<pre>
Preparing for release
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


=== Announcements ===
Version numbers

The correct way to change version numbers is to edit build.ant.properties then run ant dist.
* 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

=== 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
You edit the lines
# current version of stendhal
version.old = 0.95
version.old = 0.67
version = 0.96
version = 0.68


I am sure I don't need to explain the numbers or names to you, it is self evident.
I am sure I don't need to explain the numbers or names to you, it is self evident.


Branching procedure
=== Branching procedure ===
We develop code on HEAD and branch from HEAD for each release.
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
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.
cvs update -rVERSION_00_RELEASE_XX -Pd

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.
on your existing HEAD checkout to change it to be for the XX release.


== Releasing ==
Building the release

=== Building the release ===

Normally when you build the client or server, ant clean && build is enough. For release we need to build many things - not just the server and client but also the server source code, zipped up, the .jnlp file for webstart, and signed jars so that updates work correctly. A signed jar needs a 'key'. This is inside a file called keystore.ks which you can only get from people trusted by the Sun corporation. If you are a Stendhal project admin please ask Miguel for this file. It is placed in the same directory as build.xml etc - i.e. your root stendhal source directory. A keystore alias and password is expected. You can put these as parameters everytime you run ant dist (see below) or in a file called build.ant-private.properties (ask hendrik about this).
Normally when you build the client or server, ant clean && build is enough. For release we need to build many things - not just the server and client but also the server source code, zipped up, the .jnlp file for webstart, and signed jars so that updates work correctly. A signed jar needs a 'key'. This is inside a file called keystore.ks which you can only get from people trusted by the Sun corporation. If you are a Stendhal project admin please ask Miguel for this file. It is placed in the same directory as build.xml etc - i.e. your root stendhal source directory. A keystore alias and password is expected. You can put these as parameters everytime you run ant dist (see below) or in a file called build.ant-private.properties (ask hendrik about this).


<pre>
Now you are ready to run:
Now you are ready to run:


ant dist -Dkeystore.alias=miguelangelblanchlardin@hotmail.com -Dkeystore.password=qwerty
ant dist -Dkeystore.alias=miguelangelblanchlardin@hotmail.com -Dkeystore.password=qwerty


You should now have the 4 files for the file release:
You should now have the 4 files for the file release:
Line 37: Line 44:
the 2 client zips, build/stendhal-FULL-0.XX.zip and build/stendhal-0.XX.zip
the 2 client zips, build/stendhal-FULL-0.XX.zip and build/stendhal-0.XX.zip
the source gzip, at build/stendhal-0.XX-src.tar.gz
the source gzip, at build/stendhal-0.XX-src.tar.gz

</pre>

=== Uploading the File Release ===


You need to get the folder ready for the files to go in. You can:
You need to get the folder ready for the files to go in. You can:


<pre>
Make a shell session using
Make a shell session using
ssh -t kymara,arianne@shell.sourceforge.net create
ssh -t kymara,arianne@shell.sourceforge.net create
Line 127: Line 139:


</pre>
</pre>

=== After Release ===

{{TODO|Notify arianne-announce email list, Sourceforge Project News Feed, Twitter, [[Support:Pages_covering_Stendhal]]}}

Revision as of 20:50, 22 August 2011

Note: The content on this page is very old and is likely outdated. You may want to check on the irc channel #arianne.

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

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

I am sure I don't need to explain the numbers or names to you, it is self evident.

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.

Releasing

Building the release

Normally when you build the client or server, ant clean && build is enough. For release we need to build many things - not just the server and client but also the server source code, zipped up, the .jnlp file for webstart, and signed jars so that updates work correctly. A signed jar needs a 'key'. This is inside a file called keystore.ks which you can only get from people trusted by the Sun corporation. If you are a Stendhal project admin please ask Miguel for this file. It is placed in the same directory as build.xml etc - i.e. your root stendhal source directory. A keystore alias and password is expected. You can put these as parameters everytime you run ant dist (see below) or in a file called build.ant-private.properties (ask hendrik about this).

Now you are ready to run:

    ant dist -Dkeystore.alias=miguelangelblanchlardin@hotmail.com -Dkeystore.password=qwerty

You should now have the 4 files for the file release:
the server zip, at build/stendhal-server-0.XX.zip 
the 2 client zips, build/stendhal-FULL-0.XX.zip and build/stendhal-0.XX.zip
the source gzip, at build/stendhal-0.XX-src.tar.gz

Uploading the File Release

You need to get the folder ready for the files to go in. You can:

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)

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. 

Or, you can use the UI from sourceforge at Develop -> Project Admin -> File Manager to create the folder and upload the files.


Once files are uploaded,

Copy the server zip to the server machine

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.

Now run:
ant -f release.xml  -Dkeystore.alias=miguelangelblanchlardin@hotmail.com -Dkeystore.password=qwerty

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/

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

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.


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

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


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.

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.

After Release

TODO: Notify arianne-announce email list, Sourceforge Project News Feed, Twitter, Support:Pages_covering_Stendhal