Release Procedure

From FreeM Wiki
Jump to navigation Jump to search
This article documents a procedure intended for internal use by members of the FreeM team. It probably lacks utility for most users and developers.

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 in Makefile 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 and freem-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.