Skip to content

Release 2.1.262 (2026-10-23)

Bug fixes

  • resolve the python runtime once per release, not per build cell (#3496) vrg-package matrix now resolves the vergil-python runtime once (the pin or the derived series) and records it as runtime on every build cell and in packages-manifest.json. vrg-package build --runtime builds against that recorded value instead of re-reading the version window, so parallel cells can no longer pick different runtimes per architecture (vergil-tooling 2.1.258 shipped vergil-python3.15 on amd64 and 3.14 on arm64). Without --runtime, a local build resolves the runtime itself as before; every build prints the runtime it chose. The new vrg-package check-runtime fails a release whose packages do not all depend on exactly the recorded runtime.

  • accept the resolver's container tag for every language in vrg-release-validate-inputs (#3497) cd-release always passes the resolver's primary-container-tag to validate-inputs (vergil-actions#1017). The CLI refused any --container-tag for cpp and typescript because _CONTAINER_LANGUAGES was a frozen copy of the languages supported when the shell check was ported, and it was never extended when C++ and TypeScript were added. Replace it with a shape check that applies to every language: the tag must be a dotted-numeric version (20 for clang-20, 24 for node-24, 3.14 for python). This still rejects 'latest', a family-prefixed version token such as clang-20, and malformed values. Ref #3494

Refactoring

  • stop passing container-tag to cd-release (#3495) cd-release.yml@v2.1 derives the release image tag from the resolver's primary (vergil-project/vergil-actions#1017) and ignores a caller-supplied container-tag. Stop emitting it in the generated cd.yml release block, remove the now-unused _container_tag helper, drop it from this repo's own cd.yml and the package-config docs example. Ref #3484

CI Evidence: All gates passed — full audit bundle available. Download →