This file contains a checklist of the steps that must be taken when releasing a new version of Mercury.
  1. Items for the next version (1.0) only:
    1. Make sure that the runtime headers contain no symbols (function names, variable names, type names, struct/enum tags or macros) that do not begin with MR_.
  2. Make sure configure.in is updated to check for new features.
  3. Update the RELEASE_NOTES, NEWS, WORK_IN_PROGRESS, HISTORY, LIMITATIONS and BUGS files, and the compiler/notes/todo.html file. Don't forget to update the version number in RELEASE_NOTES for major releases. The HISTORY file should include the NEWS files from previous releases.
  4. Update the WWW documentation in the `w3' directory. Note that the sources for these HTML documents are in the files named include/*.inc files.
  5. Use `cvs tag' to tag all the files with a `version-x_y_z' tag.
  6. Edit the tools/test_mercury script in /home/mercury/public/test_mercury/scripts/mercury: set the RELEASE_VERSION and CHECKOUT_OPTS variables as explained in the comments there.
  7. Run tools/run_all_tests_from_cron on murlibobo. (Or just wait 24 hours or so.)

    This should have the effect of checking out a fresh copy, and doing

    	touch Mmake.params &&
    	autoconf &&
    	mercury_cv_low_tag_bits=2 \
    	mercury_cv_bits_per_word=32 \
    	mercury_cv_unboxed_floats=no \
    	sh configure --prefix=$INSTALL_DIR &&
    	mmake MMAKEFLAGS='EXTRA_MCFLAGS="-O5 --opt-space" -j6' tar
    	

    If it passes all the tests, it should put the resulting tar file in /home/mercury/public/test_mercury/test_dirs/mercury-latest-stable and ftp://ftp.mercury.cs.mu.oz.au/pub/mercury/beta-releases.

  8. Test it on lots of architectures.

    Make sure you test all the programs in the `samples' and `extras' directories.

  9. Build binary distributions for those architectures. This step is now automated as part of tools/test_mercury, with the resulting binaries going in /home/mercury/public/test_mercury/test_dirs/$HOST/mercury-latest-{un,}stable.
  10. Move the gzipped tar files from the /pub/mercury/beta-releases directory to the main /pub/mercury directory on the Mercury ftp site ftp://ftp.mercury.cs.mu.oz.au/pub/mercury. Copy the binary distributions to the same place.

    The mirror at ftp://ftp.ntua.gr/pub/lang/mercury is automated; it should automatically mirror the Mercury ftp site at ftp.mercury.cs.mu.oz.au on a nightly basis (or thereabouts). But in case anything should need changing, the person to contact there is Yiorgos Adamopoulos (adamo@dblab.ece.ntua.gr) and/or ftpam@ntua.gr.

    For the Stonybrook mirror, email Konstantinos Sagonas (Kostis.Sagonas@cs.kuleuven.ac.be) to tell him to copy them to ftp://ftp.cs.sunysb.edu/pub/XSB/mercury.

    Unfortunately this mirror is not automated, so don't worry about it except for major releases or important bug fixes.

    The mirror at ftp://ftp.csd.uu.se/pub/Mercury is also supposedly automated; however, it seems to be often quite out-of-date (due to the connection dropping and/or timing out over the rather slow link to Sweden?). The person to contact regarding this one is Thomas Lindgren (thomasl@csd.uu.se).

  11. Prepare a new "mercury-VERSION.lsm" file for this Mercury release (use the one already uploaded to ftp://sunsite.unc/edu/pub/Linux/Incoming as a template). The version number, date, file sizes, and file names need to be updated for a new release.
  12. Create new binary packages for Linux packaging systems. The .spec file can be used to create .rpm packages. The command dpkg-buildpackage -rfakeroot on hydra can be used to create .deb packages, although you should probably let (or make) the official maintainer do this so it can be PGP signed and uploaded.
  13. Upload "mercury-VERSION-compiler.tar.gz" and "mercury-VERSION.lsm" to ftp://sunsite.unc.edu/incoming/Linux. They will be moved to /pub/Linux/Incoming fairly quickly, and eventually should be moved to /pub/linux/devel/lang/mercury.
  14. Send "mercury-VERSION.lsm" to the lsm robot at lsm@execpc.com.
  15. Append "mercury-VERSION.lsm" to a release notice and send it to linux-announce@news.ornl.gov. This will post to comp.os.linux.announce.
  16. Email mercury-announce@cs.mu.oz.au and cross-post announcement to comp.lang.misc, comp.lang.prolog, comp.lang.functional, comp.object.logic, and for major releases also to comp.compilers and gnu.announce.
  17. Update the Mercury WWW home page (/local/dept/w3/unsupported/docs/mercury/*) by commiting the changes you made earlier.

Last update was $Date: 1999/12/13 15:44:23 $ by $Author: fjh $@cs.mu.oz.au.