gonix/releng

This directory contains the release engineering scripts for Lix.

The following process can be done either against the staging environment or the live environment.

For staging, the buckets are staging-releases, staging-cache, etc.

FIXME: obtainment of signing key for signing cache paths?

After the release is created, we do some post-release validation for the Lix packaging in Nixpkgs. Most of these should probably be pre-release validation checks!

The installer is cross-built to several systems from a Mac using build-all.xsh and upload-to-lix.xsh in the installer repo (FIXME: currently at least; maybe this should be moved here?).

It installs a binary tarball (FIXME: it should be taught to substitute from cache instead) from some URL; this is the hydraJobs.binaryTarball. The default URLs differ by architecture and are configured here.

To automatically do the file changes for a new version, run python3 set_version.py NEW_VERSION, and submit the result for review.

The website has various release-version dependent pieces. You can update them with python3 update_version.py NEW_VERSION, which will regenerate the affected page sources.

These need the release to have been done first as they need hashes for tarballs and such.

The NixOS module has underdeveloped releng in it. Currently you have to do the whole branch-off dance manually to a release-VERSION branch and update the tarball URLs to point to the release versions manually.

FIXME: this should be unified with the set_version.py work in lix-installer and probably all the releng kept in here, or kept elsewhere. Related: https://git.lix.systems/lix-project/lix/issues/439