From 83247b1c38899a48a7ef683a1d1c14b21cb917d2 Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Wed, 7 Aug 2024 20:31:02 -0700 Subject: [PATCH] releng: clarify/update docs, add instructions after tag This is not a proper fix for the confusion that can happen about how the tags are supposed to be used. For a proper fix, we need to do https://git.lix.systems/lix-project/lix/issues/439 and implement worktrees such that the user never sees the git state anymore. Change-Id: I7b543967f522cede486e42684b48cad47da95429 --- releng/README.md | 36 +++++++++++++++++++++++------------- releng/cli.py | 10 ++++++++-- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/releng/README.md b/releng/README.md index 2aa3b959f..75bd4ab35 100644 --- a/releng/README.md +++ b/releng/README.md @@ -57,12 +57,10 @@ Next, we do the publication with `python -m releng upload`: `nix upgrade-nix`. * s3://releases/lix/lix-VERSION/ gets the following contents * Binary tarballs - * Docs: `manual/` (FIXME: should we actually do this? what about putting it - on docs.lix.systems? I think doing both is correct, since the Web site - should not be an archive of random old manuals) + * Docs: `manual/`, primarily as an archive of old manuals * Docs as tarball in addition to web. * Source tarball - * Docker image (FIXME: upload to forgejo registry and github registry [in the future][upload-docker]) + * Docker image * s3://docs/manual/lix/MAJOR * s3://docs/manual/lix/stable @@ -80,6 +78,7 @@ Next, we do the publication with `python -m releng upload`: FIXME: automate branch-off to `release-*` branch. * **Manually** (FIXME?) switch back to the release branch, which now has the correct revision. +* Deal with the external systems (see sections below). * Post!! * Merge release blog post to [lix-website]. * Toot about it! https://chaos.social/@lix_project @@ -87,22 +86,33 @@ Next, we do the publication with `python -m releng upload`: [lix-website]: https://git.lix.systems/lix-project/lix-website -[upload-docker]: https://git.lix.systems/lix-project/lix/issues/252 - ### Installer -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?) . +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][installer-substitute]) -from some URL; this is the `hydraJobs.binaryTarball`. The default URLs differ -by architecture and are [configured here][tarball-urls]. +It installs a binary tarball (FIXME: [it should be taught to substitute from cache instead][installer-substitute]) from some URL; this is the `hydraJobs.binaryTarball`. +The default URLs differ by architecture and are [configured here][tarball-urls]. + +To automatically do the file changes for a new version, run `python3 set_version.py NEW_VERSION`, and submit the result for review. [installer-substitute]: https://git.lix.systems/lix-project/lix-installer/issues/13 [tarball-urls]: https://git.lix.systems/lix-project/lix-installer/src/commit/693592ed10d421a885bec0a9dd45e87ab87eb90a/src/settings.rs#L14-L28 +### Web site + +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. + +### NixOS module + +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 + ## Infrastructure summary * releases.lix.systems (`s3://releases`): diff --git a/releng/cli.py b/releng/cli.py index f78d4b12d..f2d193444 100644 --- a/releng/cli.py +++ b/releng/cli.py @@ -1,10 +1,13 @@ +import logging +import argparse +import sys + from . import create_release from . import docker from .environment import RelengEnvironment from . import environment -import argparse -import sys +log = logging.getLogger(__name__) def do_build(args): if args.target == 'all': @@ -21,6 +24,9 @@ def do_tag(args): create_release.do_tag_merge(force_tag=args.force_tag, no_check_git=args.no_check_git) + log.info('Merged the release commit into your last branch, and switched to a detached HEAD of the artifact to be released.') + log.info('After you are done with releasing, switch to your previous branch and push that branch for review.') + def do_upload(env: RelengEnvironment, args): create_release.setup_creds(env)