Release 2.1.267 (2026-10-25)¶
Features¶
-
accept [[package]] entries for several packages per repo (#3636) vergil.toml now accepts [[package]] (an array of tables) alongside a single [package] table. VergilConfig.packages holds every entry; VergilConfig.package is a property that returns None or the sole entry and raises ConfigError when there are several. With more than one entry every entry needs a unique explicit name and a shared vendor, and the shared packaging/nfpm.overlay.yaml is refused. The presence readers (ci_evidence, github_config) read packages, and release tracking resolves the packages repo through single_vendor. Plan row T1 of epic vergil-project/.github#472; ref #3629.
-
add vrg-upstream-refresh: run a repo's refresh hook and open one PR (#3637)
-
compute every package version through one helper, with upstream-version (#3638) Add a per-entry [package] upstream-version key, mutually exclusive with version, and naming.package_version, which returns
. , the version override, or the repo version. The build, published.planned/check_release (now taking the config and covering every [[package]] entry) and the release's index wait all use it. The served-runtime parser accepts the release suffix and orders by (patch, pbs, release). The check-unpublished advice and the package docs are updated. New tests verify the version order under real dpkg and rpm, failing (never skipping) when either tool is missing. Ref vergil-project/vergil-tooling#3631 -
read runtime pins from the packages list (#3639) Add runtime.python_packages and runtime.pinned_python_package; served_runtime_for, the Python version extension and _declared_runtime read the [[package]] list, and more than one pinned python-builder entry is refused (epic vergil-project/.github#472, T5).
-
thread the package name through matrix, build, install-test and runtime checks (#3640) Plan row T3 of epic vergil-project/.github#472 (spec section 5.2). Build and test cells carry their package name; with several [[package]] entries every cell id is qualified as
-- , while a single package keeps its ids and manifest artifact list unchanged. The manifest records a per-package runtimes map, staged builds get VRG_PACKAGE_NAME and VRG_PACKAGE_VERSION, install-test selects artifacts by exact package name, and check-runtime checks each python package against its own runtime. -
match index artifacts and wait on every package by name (#3642)
CI Evidence: All gates passed — full audit bundle available. Download →