<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="AsciiDoc 8.6.8">
<title>ReleaseChecklist</title>
<link rel="stylesheet" href="./asciidoc.css" type="text/css">
<link rel="stylesheet" href="./pygments.css" type="text/css">


<script type="text/javascript" src="./asciidoc.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
asciidoc.install();
/*]]>*/
</script>
<link rel="stylesheet" href="./mlton.css" type="text/css"/>
</head>
<body class="article">
<div id="banner">
<div id="banner-home">
<a href="./Home">MLton 20130715</a>
</div>
</div>
<div id="header">
<h1>ReleaseChecklist</h1>
</div>
<div id="content">
<div class="sect1">
<h2 id="_advance_preparation_for_release">Advance preparation for release</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Update <span class="monospaced">doc/changelog</span>.
</p>
<div class="ulist"><ul>
<li>
<p>
Write entries for missing notable commits.
</p>
</li>
<li>
<p>
Write summary of changes from previous release.
</p>
</li>
<li>
<p>
Update with estimated release date.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <span class="monospaced">doc/README</span>.
</p>
<div class="ulist"><ul>
<li>
<p>
Check features and description.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <span class="monospaced">man/{mlton,mlprof}.1</span>.
</p>
<div class="ulist"><ul>
<li>
<p>
Check compile-time and run-time options in <span class="monospaced">man/mlton.1</span>.
</p>
</li>
<li>
<p>
Check options in <span class="monospaced">man/mlprof.1</span>.
</p>
</li>
<li>
<p>
Update with estimated release date.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <span class="monospaced">doc/guide</span>.
</p>
<div class="ulist"><ul>
<li>
<p>
Synchronize <a href="Features">Features</a> page with <span class="monospaced">doc/README</span>.
</p>
</li>
<li>
<p>
Update <a href="Credits">Credits</a> page with acknowledgements.
</p>
</li>
<li>
<p>
Create <strong>ReleaseYYYYMM??</strong> page (i.e., forthcoming release) based on <strong>ReleaseXXXXLLCC</strong> (i.e., previous release).
</p>
<div class="ulist"><ul>
<li>
<p>
Update summary from <span class="monospaced">doc/changelog</span>.
</p>
</li>
<li>
<p>
Update links to estimated release date.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Create <strong>BugsYYYYMM??</strong> page based on <strong>BugsXXXXLLCC</strong>.
</p>
<div class="ulist"><ul>
<li>
<p>
Update links to estimated release date.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Spell check pages.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Ensure that all updates are pushed to <span class="monospaced">master</span> branch of <a href="https://github.com/MLton/mlton"><span class="monospaced">mlton</span></a>.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_prepare_sources_for_tagging">Prepare sources for tagging</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Update <span class="monospaced">doc/changelog</span>.
</p>
<div class="ulist"><ul>
<li>
<p>
Update with proper release date.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <span class="monospaced">man/{mlton,mlprof}.1</span>.
</p>
<div class="ulist"><ul>
<li>
<p>
Update with proper release date.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <span class="monospaced">doc/guide</span>.
</p>
<div class="ulist"><ul>
<li>
<p>
Rename <strong>ReleaseYYYYMM??</strong> to <strong>ReleaseYYYYMMDD</strong> with proper release date.
</p>
<div class="ulist"><ul>
<li>
<p>
Update links with proper release date.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Rename <strong>BugsYYYYMM??</strong> to <strong>BugsYYYYMMDD</strong> with proper release date.
</p>
<div class="ulist"><ul>
<li>
<p>
Update links with proper release date.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <strong>ReleaseXXXXLLCC</strong>.
</p>
<div class="ulist"><ul>
<li>
<p>
Change intro to "<span class="monospaced">This is an archived public release of MLton, version XXXXLLCC.</span>"
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <a href="Home">Home</a> with note of new release.
</p>
<div class="ulist"><ul>
<li>
<p>
Change <span class="monospaced">What's new?</span> text to <span class="monospaced">Please try out our new release, &lt;:ReleaseYYYYMMDD:MLton YYYYMMDD&gt;</span>.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <a href="Releases">Releases</a> with new release.
</p>
</li>
<li>
<p>
Clear <a href="Experimental">Experimental</a>.
</p>
</li>
</ul></div>
</li>
<li>
<p>
Ensure that all updates are pushed to <span class="monospaced">master</span> branch of <a href="https://github.com/MLton/mlton"><span class="monospaced">mlton</span></a>.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_tag_sources">Tag sources</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Shell commands:
</p>
<div class="listingblock">
<div class="content monospaced">
<pre>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</pre>
</div></div>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_packaging">Packaging</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_sourceforge_frs">SourceForge FRS</h3>
<div class="ulist"><ul>
<li>
<p>
Create <strong>YYYYMMDD</strong> directory:
</p>
<div class="listingblock">
<div class="content monospaced">
<pre>sftp user@frs.sourceforge.net:/home/frs/project/mlton/mlton
sftp&gt; mkdir YYYYMMDD
sftp&gt; quit</pre>
</div></div>
</li>
</ul></div>
</div>
<div class="sect2">
<h3 id="_source_release">Source release</h3>
<div class="ulist"><ul>
<li>
<p>
Create <span class="monospaced">mlton-YYYYMMDD.src.tgz</span>:
</p>
<div class="listingblock">
<div class="content monospaced">
<pre>git clone http://github.com/MLton/mlton mlton
cd mlton
git checkout on-YYYYMMDD-release
make version VERSION=YYYYMMDD
( cd mllex ; latexmk -pdf lexgen ; latexmk -c lexgen ; make mllex.pdf )
( cd mlyacc ; ( cd doc; latexmk -pdf mlyaccc ; latexmk -c mlyacc ); make mlyacc.pdf )
make -C doc/guide
make release VERSION=YYYYMMDD
cd ..</pre>
</div></div>
<div class="paragraph"><p>or</p></div>
<div class="listingblock">
<div class="content monospaced">
<pre>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 version VERSION=YYYYMMDD
( cd mllex ; latexmk -pdf lexgen ; latexmk -c lexgen ; make mllex.pdf )
( cd mlyacc ; ( cd doc; latexmk -pdf mlyaccc ; latexmk -c mlyacc ); make mlyacc.pdf )
make -C doc/guide
make release VERSION=YYYYMMDD
cd ..</pre>
</div></div>
</li>
<li>
<p>
Upload <span class="monospaced">mlton-YYYYMMDD.src.tgz</span>:
</p>
<div class="listingblock">
<div class="content monospaced">
<pre>scp mlton-YYYYMMDD.src.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/YYYYMMDD/</pre>
</div></div>
</li>
<li>
<p>
Update <strong>ReleaseYYYYMMDD</strong> with <span class="monospaced">mlton-YYYYMMDD.src.tgz</span> link.
</p>
</li>
</ul></div>
</div>
<div class="sect2">
<h3 id="_binary_releases">Binary releases</h3>
<div class="ulist"><ul>
<li>
<p>
Build and create <span class="monospaced">mlton-YYYYMMDD-1.ARCH-OS.tgz</span>:
</p>
<div class="listingblock">
<div class="content monospaced">
<pre>wget http://sourceforge.net/projects/mlton/files/mlton/YYYYMMDD/mlton-YYYYMMDD.src.tgz
tar xzvf mlton-YYYYMMDD.src.tgz
cd mlton-YYYYMMDD
make all
make install
cd install
tar czvf ../mlton-YYYYMMDD-1.ARCH-OS.tgz *
cd ../..</pre>
</div></div>
</li>
<li>
<p>
Upload <span class="monospaced">mlton-YYYYMMDD-1.ARCH-OS.tgz</span>:
</p>
<div class="listingblock">
<div class="content monospaced">
<pre>scp mlton-YYYYMMDD-1.ARCH-OS.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/YYYYMMDD/</pre>
</div></div>
</li>
<li>
<p>
Update <strong>ReleaseYYYYMMDD</strong> with <span class="monospaced">mlton-YYYYMMDD-1.ARCH-OS.tgz</span> link.
</p>
</li>
</ul></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_website">Website</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
<span class="monospaced">guide/YYYYMMDD</span> gets a copy of <span class="monospaced">doc/guide/localhost</span>.
</p>
</li>
<li>
<p>
Shell commands:
</p>
<div class="listingblock">
<div class="content monospaced">
<pre>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/</pre>
</div></div>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_announce_release">Announce release</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Mail announcement to:
</p>
<div class="ulist"><ul>
<li>
<p>
<a href="mailto:MLton-devel@mlton.org"><span class="monospaced">MLton-devel@mlton.org</span></a>
</p>
</li>
<li>
<p>
<a href="mailto:MLton-user@mlton.org"><span class="monospaced">MLton-user@mlton.org</span></a>
</p>
</li>
</ul></div>
</li>
<li>
<p>
Update <a href="OtherSites">OtherSites</a> that have MLton pages.
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_misc">Misc.</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
<span class="monospaced">dupload</span> Debian package.
</p>
</li>
<li>
<p>
Generate new <a href="Performance">Performance</a> numbers.
</p>
</li>
</ul></div>
</div>
</div>
</div>
<div id="footnotes"><hr></div>
<div id="footer">
<div id="footer-text">
</div>
<div id="footer-badges">
</div>
</div>
</body>
</html>
