Repository navigation
Building a Release
This page documents the steps required to build a release of the development version of the SML/NJ system. The parts related to uploading the release for distribution assume access to the University of Chicago Computer Science Department’s systems.
For the legacy repository, see the Instructions for Building a Legacy Release in the Wiki.
In the discussion below, we use $VERSION to represent the release version in
question (e.g., 2024.2), $VERSION to represent the release date
(e.g., July 7, 2024), $ARCH to represent the host architecture
(e.g., amd64), and $OS to represent the host operating system
(e.g., unix).
We also use $ROOTDIR to refer to the root of a clone of the
development repository.
The main steps in building a release are as follows:
-
Prepare the release
-
Clone a fresh copy of the repository
-
Download the bin files for the previous version and then build the system.
-
Download the bin files for the previous version
-
Create the directory on the University of Chicago servers to contain the release; i.e.,
/stage/web_static/htdocs/dist/working/$VERSION. -
Write the
$VERSION-README.adocfile and commit it. Also update theHISTORY.txtfile.
To prepare the release, one needs to first update the version and releasedate
files in the repository.
echo $VERSION > config/version
echo $DATE > config/releasedate
git push -a -m "preparing release $VERSION"The bug-report template should also be updated to include the new release.
You can find this file at $ROOTDIR/.github/ISSUE_TEMPLATE/00_bug_report.yaml
Then one can tag the release both locally and remotely.
git tag -a v$VERSION -m "release $VERSION"
git push origin tag v$VERSIONNote, if there is a problem that requires changes to the repository after the release has been tagged, one can delete the tag (remotely and locally) as follows:
git push --delete origin v$VERSION
git tag -d v$VERSIONand then retag the release.
cd smlnj
curl -O https://smlnj.org/dist/working/2024.1/boot.amd64-unix.tgz