Releases and distribution
Pyahu Toolchain uses Semantic Versioning for the behavior of this repository as a product. Upstream tool versions have their own version schemes; a pin change is classified by its effect on this toolchain’s users.
Versioning policy
Section titled “Versioning policy”- Patch releases contain compatible exact-pin updates, fixes, documentation, and security remediations that do not require a user migration.
- Minor releases add profiles, tools, optional installer capabilities, or supported platforms without removing an existing supported workflow.
- Major releases may remove or rename a profile/tool, move a tool so an existing
MISE_ENVno longer supplies it, change installer destinations or flags incompatibly, drop a certified platform, move a stable profile to rolling, or adopt an upstream breaking release that requires user action. - Prereleases use SemVer identifiers such as
-rc.1. They pass the same automated gates, but exist to gather installation feedback before the final release and may still change incompatibly.
Only the latest release receives routine fixes. A security issue can justify an exceptional backport when upgrading immediately would create greater risk.
Install an immutable version
Section titled “Install an immutable version”The recommended distribution is a Git checkout at a release tag. Keep the directory: the installer creates symlinks to files inside it.
PYAHU_TOOLCHAIN_VERSION=v1.0.1git clone --branch "$PYAHU_TOOLCHAIN_VERSION" --depth 1 \ https://github.com/pyahu/toolchain.git ~/.config/pyahu-toolchaincd ~/.config/pyahu-toolchain./install.sh workstation node cloudRelease pages also provide a project-owned tar archive and SHA-256 file. Verify and extract it, then run the same installer from the extracted directory:
shasum -a 256 -c pyahu-toolchain-1.0.1.tar.gz.sha256tar -xzf pyahu-toolchain-1.0.1.tar.gzFor a project that only needs the base, download both files from the same immutable tag:
PYAHU_TOOLCHAIN_VERSION=v1.0.1PYAHU_TOOLCHAIN_RAW="https://raw.githubusercontent.com/pyahu/toolchain/$PYAHU_TOOLCHAIN_VERSION"curl -fsSL -o mise.toml "$PYAHU_TOOLCHAIN_RAW/mise.toml"curl -fsSL -o mise.lock "$PYAHU_TOOLCHAIN_RAW/mise.lock"mise install --lockedURLs under main are intentionally not recommended for stable consumption because their contents
change without the consumer selecting a new version.
Upgrade or roll back
Section titled “Upgrade or roll back”Inspect the changelog and select a release. In a versioned checkout:
git fetch --tagsgit switch --detach vX.Y.Zmise installThe existing configuration symlinks follow the files in that checkout. Re-run install.sh only to
enable a newly selected profile. Rollback uses the same command with the previous tag. Review the
troubleshooting guide before uninstalling or removing cached tool versions.
Maintainer release process
Section titled “Maintainer release process”- Ensure the milestone is complete and
mainis clean, synchronized, and green. - Choose the SemVer version, update
VERSION, move changelog entries out ofUnreleased, and update versioned examples. - Run
./scripts/release-check.sh, commit, push, and wait for the exact commit’s CI run. - Create and push an annotated
v<version>tag at that commit. - Run
./scripts/package-release.sh <empty-output-directory>and verify its checksum locally. - Create the GitHub release from the tag, attach the tar archive and checksum, and mark SemVer prereleases appropriately.
- Download the published assets, verify the checksum and archive contents again, then test the documented install command.
- Publish release notes and close the milestone only after verification succeeds.
Never move or replace a published tag or asset. Correct a bad release with a new patch or prerelease identifier and explain the superseded version in the changelog.