instead of `kanidm.passthru.tests` by leveraging `runTest { }.extend`
and `_module.args.<name> = lib.mkDefault <thing>`.
Kanidm release guide
Kanidm supports one release at any given time, with a 30-day overlap to allow for upgrades from old to new version. Version upgrades are only supported on adjacent releases, with no support for jumping versions.
To ensure we provide sufficient coverage for upgrading, we will aim to have two or three releases in tree at any given time. Unsupported versions will be marked as vulnerable (lacking an "unsupported" mechanism), but built by hydra to avoid pushing the very large rebuild on users.
The default version will be updated with each new version, but the default will not be backported. It is expected that stable users will have to manually specify the version, and update that version, throughout the lifecycle of a NixOS release.
New release
For example, when upgrading from 1.4 -> 1.5
Init new version
cp pkgs/by-name/ka/kanidm/1_4.nix pkgs/by-name/ka/kanidm/1_5.nixcp -r pkgs/by-name/ka/kanidm/patches/1_4 pkgs/by-name/ka/kanidm/patches/1_5- Update
1_5.nixhashes/paths, and as needed for upstream changes,generic.nix - Update
all-packages.nixto addkanidm_1_5andkanidmWithSecretProvisioning_1_5, leave default - Update the previous release, e.g.
1_4.nixand seteolDate = "YYYY-MM-DD"where the date is 30 days from release of 1.5. - Create commit,
kanidm_1_5: init at 1.5.0- this is the only commit that will be backported
Update default
sed -i 's/1_4/1_5/' pkgs/by-name/ka/kanidm/package.nix- Update
all-packages.nixand setkanidmWithSecretProvisioning = kanidmWithSecretProvisioning_1_5; - Create commit
kanidm: update default to 1.5.0
Backport to stable
- Manually create a backport using only the init commit
Remove release
Kanidm versions are supported for 30 days after the release of new versions. Following the example above, 1.5.x superseding 1.4.x in 30 days, do the following near the end of the 30 day window
-
Update
pkgs/by-name/ka/kanidm/1_4.nixby addingunsupported = true; -
Update
pkgs/top-level/release.nixand addkanidm_1_4-1.4.6andkanidmWithSecretProvisioning_1_4-1.4.6topermittedInsecurePackages -
Create commit
kanidm_1_4: mark EOL, this commit alone should be backported -
Remove the third oldest release from
all-packages.nix, e.g. 1.3.x continuing the example. Removekanidm_1_3andkanidmWithSecretProvisioning_1_3 -
Update
pkgs/top-level/release.nixand removekanidm_1_3*frompermittedInsecurePackages -
Update
pkgs/top-level/aliases.nixand addkanidm_1_4andkanidmWithSecretProvisioning_1_4-1.4.6 -
Remove
pkgs/by-name/ka/kanidm/1_3.nix