Advance preparation for release

  • Update ./CHANGELOG.adoc.

    • Write entries for missing notable commits.

    • Write summary of changes from previous release.

    • Update with estimated release date.

  • Update ./README.adoc.

    • Check features and description.

  • Update man/{mlton,mlprof}.1.

    • Check compile-time and run-time options in man/mlton.1.

    • Check options in man/mlprof.1.

    • Update with estimated release date.

  • Update doc/guide.

    • Synchronize Features page with ./README.adoc.

    • Update Credits page with acknowledgements.

    • Create ReleaseYYYYMM?? page (i.e., forthcoming release) based on ReleaseXXXXLLCC (i.e., previous release).

      • Update summary from ./CHANGELOG.adoc.

      • Update links to estimated release date.

    • Create BugsYYYYMM?? page based on BugsXXXXLLCC.

      • Update links to estimated release date.

    • Spell check pages.

  • Ensure that all updates are pushed to master branch of mlton.

Prepare sources for tagging

  • Update ./CHANGELOG.adoc.

    • Update with proper release date.

  • Update man/{mlton,mlprof}.1.

    • Update with proper release date.

  • Update doc/guide.

    • Rename ReleaseYYYYMM?? to ReleaseYYYYMMDD with proper release date.

      • Update links with proper release date.

    • Rename BugsYYYYMM?? to BugsYYYYMMDD with proper release date.

      • Update links with proper release date.

    • Update ReleaseXXXXLLCC.

      • Change intro to "This is an archived public release of MLton, version XXXXLLCC."

    • Update Home with note of new release.

      • Change What's new? text to Please try out our new release, <:ReleaseYYYYMMDD:MLton YYYYMMDD>.

      • Update Download link with proper release date.

    • Update Releases with new release.

  • Ensure that all updates are pushed to master branch of mlton.

Tag sources

  • Shell commands:

    git clone http://github.com/MLton/mlton mlton.git
    cd mlton.git
    git checkout master
    git tag -a -m "Tagging YYYYMMDD release" on-YYYYMMDD-release master
    git push origin on-YYYYMMDD-release

Packaging

SourceForge FRS

  • Create YYYYMMDD directory:

    sftp user@frs.sourceforge.net:/home/frs/project/mlton/mlton
    sftp> mkdir YYYYMMDD
    sftp> quit

Source release

  • Create mlton-YYYYMMDD.src.tgz:

    git clone http://github.com/MLton/mlton mlton
    cd mlton
    git checkout on-YYYYMMDD-release
    make MLTON_VERSION=YYYYMMDD source-release
    cd ..

    or

    wget https://github.com/MLton/mlton/archive/on-YYYYMMDD-release.tar.gz
    tar xzvf on-YYYYMMDD-release.tar.gz
    cd mlton-on-YYYYMMDD-release
    make MLTON_VERSION=YYYYMMDD source-release
    cd ..
  • Upload mlton-YYYYMMDD.src.tgz:

    scp mlton-YYYYMMDD.src.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/YYYYMMDD/
  • Update ReleaseYYYYMMDD with mlton-YYYYMMDD.src.tgz link.

Binary releases

  • Build and create mlton-YYYYMMDD-1.ARCH-OS.tgz:

    wget http://sourceforge.net/projects/mlton/files/mlton/YYYYMMDD/mlton-YYYYMMDD.src.tgz
    tar xzvf mlton-YYYYMMDD.src.tgz
    cd mlton-YYYYMMDD
    make binary-release
    cd ..
  • Upload mlton-YYYYMMDD-1.ARCH-OS.tgz:

    scp mlton-YYYYMMDD-1.ARCH-OS.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/YYYYMMDD/
  • Update ReleaseYYYYMMDD with mlton-YYYYMMDD-1.ARCH-OS.tgz link.

Website

  • guide/YYYYMMDD gets a copy of doc/guide/localhost.

  • Shell commands:

    wget http://sourceforge.net/projects/mlton/files/mlton/YYYYMMDD/mlton-YYYYMMDD.src.tgz
    tar xzvf mlton-YYYYMMDD.src.tgz
    cd mlton-YYYYMMDD
    cd doc/guide
    cp -prf localhost YYYYMMDD
    tar czvf guide-YYYYMMDD.tgz YYYYMMDD
    rsync -avzP --delete -e ssh YYYYMMDD user@web.sourceforge.net:/home/project-web/mlton/htdocs/guide/
    rsync -avzP --delete -e ssh guide-YYYYMMDD.tgz user@web.sourceforge.net:/home/project-web/mlton/htdocs/guide/

Announce release

Misc.