Release Procedure
Contents
Overview
In all steps, replace version with the new version you want to release.
Prepare the FreeM Repository
Set the Release Version
In the root of the freem
repository, run scripts/set-version version
Update the ChangeLog
Make sure the ChangeLog
file summarizes the changes present in this version
Commit and Tag
In the root of the freem
repository, run these commands:
$ cvs ci -m "Commit message"
Now, wait for the build farm to crunch through the build on all platforms. If there are issues during this phase, fix them and commit to CVS before proceeding to the next step.
Verify Tier 1 Ports
Verify the correct operation of FreeM for the Tier 1 ports, and update their Platform Notes in the wiki:
- Solaris (5.8/sparcv9, 5.7/sparc, 5.11/amd64, 5.11/sparcv9, 5.10/sparcv9)
- OpenIndiana (5.11/amd64)
- NetBSD
- FreeBSD
- GNU/Linux (one amd64 machine, one i386 machine, Raspberry Pi, and Pine Phone should be sufficient)
Once the build is clean, go to the parent directory of the freem repository and run the following commands to tag the release:
$ cvs tag vMaj-Min-Patch freem
Now, wait for the freem-current-source-tarball
Jenkins job to complete. Once it does, you may proceed.
Update Documentation
Let's update the FreeM documentation on the website. To do so, run the following command in the root of the freem
repository:
$ scripts/upload-docs jpw@freem.coherent-logic.com
Build Distribution Packages
Solaris/Illumos
- Connect to the following machines:
- yuna
- bh-openindiana-amd64-01
- bh-sol10-amd64-01
- On each of the above machines, do the following:
- Update the FreeM CVS repo
- Do a clean rebuild of the source (installation not necessary)
- Generate the package:
./mk-solaris-package architecture OS
- Upload the package:
scp CLDfreem-maj.min.patch-osMaj.Min-arch.pkg jpw@freem.coherent-logic.com://var/www/freem.coherent-logic.com/downloads/binaries/os/os-version/
NetBSD pkgsrc-wip
- Connect to
eucleia
- Navigate to
/usr/pkgsrc/wip
- Run
git pull -r
- Navigate to
/usr/pkgsrc/wip/freem
- Update
COMMIT_MSG
- Update the
DISTNAME=
field inMakefile
with the new version information - Run
make distinfo
- Run
pkglint -e
to check for errors - Once
pkglint
comes back clean, commit everything (git commit -a
) using the following commit message as a template:
freem: Update to major.minor.patch Packaging changes: * <changes-to-pkgsrc-packaging> Upstream changes: * <Contents-of-ChangeLog>
- Run
git push
Debian GNU/Linux
- Update debian/changelog in the freem-mk-debian-package repository with the correct versioning information and commit to CVS
- Connect to the following machines:
- bh-deb12-amd64-01
- bh-deb12-i386-01
- dryades
- hybris
- On each machine, go to
~/development/freem-mk-debian-package
and run the following commands:
$ cvs update -Pd $ ./mk-debian-package ''maj.min.patch pkg-version'' jpw@freem.coherent-logic.com
- Connect to
packages.clogic-int.com
- Run the following commands to get the new release packages signed and into the repository:
$ fradd ''maj.min.patch pkg-ver'' amd64 $ fradd ''maj.min.patch pkg-ver'' armhf $ fradd ''maj.min.patch pkg-ver'' i386 $ fradd ''maj.min.patch pkg-ver'' arm64
Update Wiki
- Generate a Release Notes page for this version on freem-wiki.coherent-logic.com
Announce Release
- Post to
freem-users
andfreem-dev
mailing lists - Post to Discord
- Post to Facebook
- Post to LinkedIn
- Post to
comp.lang.mumps
Spot Test Tier 2 Ports
This includes ports like OpenBSD and SCO OpenServer.
Prepare to Resume Development
Once the release cycle is done, run the following command in the root of the FreeM repository to set the version back to cvs-current
:
$ scripts/set-version cvs-current
And then commit back to CVS.