summaryrefslogtreecommitdiffstats
path: root/crawl-ref/docs/develop/release.txt
diff options
context:
space:
mode:
authorDavid Ploog <dploog@users.sourceforge.net>2009-10-06 06:45:22 +0200
committerDavid Ploog <dploog@users.sourceforge.net>2009-10-06 06:45:22 +0200
commitfcb71db1fcffedef3196865d271fc897e562448d (patch)
tree4cf1e5457397d9f3b6dadcfbce840e4c2dca14e0 /crawl-ref/docs/develop/release.txt
parent5eb01527a7ee911e6a7f2022e9bdfdc236095b99 (diff)
downloadcrawl-ref-fcb71db1fcffedef3196865d271fc897e562448d.tar.gz
crawl-ref-fcb71db1fcffedef3196865d271fc897e562448d.zip
Add develop/ and license/ folders in docs/.
Diffstat (limited to 'crawl-ref/docs/develop/release.txt')
-rw-r--r--crawl-ref/docs/develop/release.txt122
1 files changed, 122 insertions, 0 deletions
diff --git a/crawl-ref/docs/develop/release.txt b/crawl-ref/docs/develop/release.txt
new file mode 100644
index 0000000000..e370a797af
--- /dev/null
+++ b/crawl-ref/docs/develop/release.txt
@@ -0,0 +1,122 @@
+Steps to a Successful Release
+-----------------------------
+The following is a step-by-step guide for how to preceed through the releasing
+process. For minor releases (0.X.y), steps 0 and 1 have already been done, so
+for those the list begins with step 2.
+
+0. Delay branching as long as possible
+ Try to delay additions that forseeably won't make it into the next version
+ until the release is not too far off. Once trunk has been branched, you
+ have to commit all important changes twice, and it's easy to forget one
+ of them.
+
+ At the same time if something big does get introduced it's better to branch
+ before doing so seeing how otherwise you'll have to later turn it off in
+ branch before the release.
+ Thus, you'll need to branch as early as necessary and as late as possible.
+
+1. Branch trunk into the new version
+ svn cp https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk
+ https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.X
+
+2. Update version information
+ version.h: Set VER_NUM = 0.X, VER_QUAL = empty.
+ Undefine DISPLAY_BUILD_REVISION (not needed for official distributions).
+
+3. Modify branch as needed
+ Turn off all features that are not balanced or finished enough to make it
+ into the release. This can be a bit of a hassle, so do try to avoid this in
+ the first place. (See 0.)
+
+4. Wait and fix some bugs
+ Wait at least a week for some last minute bug reports. When fixing bugs
+ concentrate on the important ones (crashes and gamebreakers), but you
+ might 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 bugs, and wait at least another
+ day 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 testing
+ Build the binaries (preferably on all platforms) to see if the code
+ compiles correctly, then run some basic sanity tests including at least
+ the 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 character
+ builds. This way, you get to test melee, spellcasting, and ranged combat,
+ and at the same time you can check that the information handed out during
+ the tutorial is up to date.
+
+6. Package the source tarball and zip
+ On Linux, run "make package-source" in the source tree to create the source
+ tarball and zip. Extract the resulting packages into different folders,
+ compile their source and run the basic sanity tests. Also check whether
+ the doc, settings and dat subfolders contain all relevant files.
+
+7. Tag the release
+ svn cp https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.X
+ https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/tags/stone_soup-0.X
+
+ The tags are some sort of frozen state of the source for all releases, so
+ this is the last step you take before the actual release. All further
+ changes either make it into the next (minor) version, or, if they are
+ important bug fixes and happen before the release took place, have to be
+ merged into trunk AND branch AND the corresponding tag.
+
+8. Checkout the release tag
+ svn co https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/tags/stone_soup-0.X
+
+ Do a clean checkout into a new folder, so you don't get any compilation
+ stuff into the distribution. Package the source (as described in 6.) and
+ build the binaries. If you want you can do some more sanity testing but it
+ shouldn't be necessary anymore.
+
+9. Upload the files to Sourceforge
+ Probably requires SF permissions for file releases.
+
+ You could use for example rsync (on Linux) or FTP.
+ See https://sourceforge.net/apps/trac/sourceforge/wiki/File%20management%20service
+ for reference. Compare the file sizes to make sure the upload went
+ correctly.
+
+ If using rsync, the correct command is:
+ rsync -avP -e ssh FILENAME USERNAME,crawl-ref@frs.sourceforge.net:/home/frs/project/c/cr/crawl-ref/
+
+10. Create a new release in Sourceforge's file release system
+ Requires SF permissions for file releases.
+
+ * Click on Project Admin -> File Manager
+ * Create a new folder under "Stone Soup" named by version number -> 0.X.y
+ * Right-click on the uploaded files to Cut and later Paste them into the
+ newly created folder.
+ * Click on a file to change its settings.
+ * Mark a file as default for a given platform, so the "Download Now" link
+ can refer the user to the most fitting file for their system.
+
+ You can use an older release as a guideline (but don't actually modify it!)
+ See https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download
+ for some more detailed explanations.
+
+11. Update the homepage
+ ssh -t username,crawl-ref@shell.sourceforge.net create
+
+ Go to /home/groups/c/cr/crawl-ref/htdocs.
+ Paste the changelog into a newly created 0.X.txt
+ Modify index.html to update the version number (the link will always point
+ to 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.
+
+12. Announce the release
+ Post a release announcement to rec.games.roguelike.misc and
+ rec.games.roguelike.announce. Also send an email over crawl-ref-discuss.
+ If you want you can also write a news item on Sourceforge.
+
+13. Lean back and enjoy the excitement
+ -- until the first bug reports roll in. ;)