git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10089 c06c8d41-db1a-0410-9941-cceddc491573
XXGNS573W62HRN362O2LP3YPENDQHLI2ND2HIPMW5XRS5QDLOS3AC Steps to a Successful Release-----------------------------The following is a step-by-step guide for how to preceed through the releasingprocess. For minor releases (0.X.y), steps 0 and 1 have already been done, sofor those the list begins with step 2.0. Delay branching as long as possibleTry to delay additions that forseeably won't make it into the next versionuntil the release is not too far off. Once trunk has been branched, youhave to commit all important changes twice, and it's easy to forget oneof them.At the same time if something big does get introduced it's better to branchbefore doing so seeing how otherwise you'll have to later turn it off inbranch before the release.Thus, you'll need to branch as early as necessary and as lte as possible.1. Branch trunk into the new versionsvn cp https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunkhttps://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.X2. Update version informationversion.h: Set VER_NUM = 0.X, VER_QUAL = empty.Undefine DISPLAY_BUILD_REVISION (not needed for official distributions).3. Modify branch as neededTurn off all features that are not balanced or finished enough to make itinto the release. This can be a bit of a hassle, so do try to avoid this inthe first place. (See 0.)4. Wait and fix some bugsWait at least a week for some last minute bug reports. When fixing bugsconcentrate on the important ones (crashes and gamebreakers), but youmight also want to handle the trivial ones for extra polishing.If you add any last minute feature or bug fixes doublecheck everything,so you don't accidentally introduce new bug, and wait at least anotherday for potential bug reports to roll in.Reread the entire documentation to make sure it's up to date.Also update the change log!5. Sanity testingBuild the binaries (preferably on all platforms) to see if the codecompiles correctly, then run some basic sanity tests including at leastthe following:* start a new game (both prechosen and random)* saving/loading* being killed* level creation for all branches/portal vaults (using &~, &L)* accessing all help screens (including the ? submenus)If you want to be thorough, play a tutorial for each of the three characterbuilds. This way, you get to test melee, spellcasting, and ranged combat,and at the same time you can check that the information handed out duringthe tutorial is up to date.6. Package the source tarball and zipOn Linux, run "make package-source" in the source tree to create the sourcetarball and zip. Extract the resulting packages into different folders,compile their source and run the basic sanity tests. Also check whetherthe doc, settings and dat subfolders contain all relevant files.7. Tag the releasesvn cp https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.Xhttps://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/tags/stone_soup-0.XThe tags are some sort of frozen state of the source for all releases, sothis is the last step you take before the actual release. All furtherchanges either make it into the next (minor) version, or, if they areimportant bug fixes and happen before the release took place, have to bemerged into trunk AND branch AND the corresponding tag.8. Create a new release on SourceforgeRequires SF permissions for file releases.The release is generally named by the version number, i.e. 0.X.Once it is created, edit the new release:* Paste change log and notes into the corresponding fields.* Set status to Hidden.Use an older release as a guideline (but don't actually modify it!)See https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20downloadfor some rough explanation of this and some of the following steps.9. Checkout the release tagsvn co https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/tags/stone_soup-0.XDo a clean checkout into a new folder, so you don't get any compilationstuff into the distribution. Package the source (as described in 6.) andbuild the binaries. If you want you can do some more sanity testing but itshouldn't be necessary anymore.10. Upload the files to SourceforgeFor this, you could use rsync (on Linux) or FTP.See https://sourceforge.net/apps/trac/sourceforge/wiki/File%20management%20servicefor reference. Compare the file sizes to make sure the upload wentcorrectly.11. Edit the release (again)On Sourceforge edit the release, select the files you just uploaded, thenchange their properties. Again, use an older release for reference.Change release status to Active.12. Update the homepagessh -t username,crawl-ref@shell.sourceforge.net createGo to /home/groups/c/cr/crawl-ref/htdocs.Paste the changelog into a newly created 0.X.txtModify index.html to update the version number (the link will always pointto the most recent release) and add a new news item. For the latter, use<a href="0.X.txt">text</a> as a link to the change log.13. Announce the releasePost a release announcement to rec.games.roguelike.misc andrec.games.roguelike.announce. Also send an email over crawl-ref-discuss.If you want you can also write a news item on Sourceforge.14. Lean back and enjoy the excitement-- until the first bug reports roll in. ;)