From 909e68194ebd65687c161737555b76f48221a727 Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Sat, 10 Oct 2026 12:13:59 +0900 Subject: [PATCH] 2026.10.10.2: the linux-x86_64 archive bundles the pinned xlings The release installed xlings only where none was present. A restored ~/.xlings held 2026.10.8.1, and the 2026.10.10.1 linux-x86_64 archive bundled it. The Linux and macOS jobs now install the pinned version when a different one is present, and every job refuses to bundle another. --- .github/workflows/release.yml | 17 +++++++++++++++-- CHANGELOG.md | 10 ++++++++++ mcpp.toml | 2 +- modules/versioning/src/version.cppm | 2 +- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f471abc6..89cfb181 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -106,7 +106,12 @@ jobs: # download + self-install manually to avoid broken releases. XLINGS_VERSION: '2026.10.10.2' run: | - if [ ! -x "$HOME/.xlings/subos/default/bin/xlings" ]; then + # BY VERSION, NOT BY PRESENCE. A restored ~/.xlings holds the + # xlings of an earlier release, and this binary is the one the + # tarball bundles: 2026.10.10.1 shipped xlings 2026.10.8.1 on + # linux-x86_64 because one was present. + have=$("$HOME/.xlings/subos/default/bin/xlings" --version 2>/dev/null | awk '{print $2}') + if [ "$have" != "$XLINGS_VERSION" ]; then tarball="xlings-${XLINGS_VERSION}-linux-x86_64.tar.gz" bash "$GITHUB_WORKSPACE/.github/tools/fetch_release.sh" \ "https://github.com/openxlings/xlings/releases/download/v${XLINGS_VERSION}/${tarball}" \ @@ -116,6 +121,8 @@ jobs: fi export PATH="$HOME/.xlings/subos/default/bin:$PATH" xlings --version + test "$(xlings --version | awk '{print $2}')" = "$XLINGS_VERSION" || { + echo "::error::the xlings this release bundles is $(xlings --version), not $XLINGS_VERSION"; exit 1; } # Pinned to .xlings.json — a bare `xlings install mcpp` resolves # "newest in this runner's index copy" and put 0.0.105 (below the # index floor) into this job. See .github/tools/install_pinned_mcpp.sh. @@ -484,7 +491,9 @@ jobs: XLINGS_NON_INTERACTIVE: '1' XLINGS_VERSION: '2026.10.10.2' run: | - if [ ! -x "$HOME/.xlings/subos/default/bin/xlings" ]; then + # By version, not by presence (see the Linux job). + have=$("$HOME/.xlings/subos/default/bin/xlings" --version 2>/dev/null | awk '{print $2}') + if [ "$have" != "$XLINGS_VERSION" ]; then WORK=$(mktemp -d) tarball="xlings-${XLINGS_VERSION}-macosx-arm64.tar.gz" bash "$GITHUB_WORKSPACE/.github/tools/fetch_release.sh" \ @@ -495,6 +504,8 @@ jobs: fi export PATH="$HOME/.xlings/subos/default/bin:$PATH" xlings --version + test "$(xlings --version | awk '{print $2}')" = "$XLINGS_VERSION" || { + echo "::error::the xlings this release bundles is $(xlings --version), not $XLINGS_VERSION"; exit 1; } # Pinned to .xlings.json — a bare `xlings install mcpp` resolves # "newest in this runner's index copy" and put 0.0.105 (below the # index floor) into this job. See .github/tools/install_pinned_mcpp.sh. @@ -682,6 +693,8 @@ jobs: export PATH="$USERPROFILE/.xlings/subos/default/bin:$PATH" echo "$USERPROFILE/.xlings/subos/default/bin" >> "$GITHUB_PATH" xlings.exe --version + test "$(xlings.exe --version | awk '{print $2}' | tr -d '\r')" = "$XLINGS_VERSION" || { + echo "::error::the xlings this release bundles is not $XLINGS_VERSION"; exit 1; } # Pinned + version-scoped lookup. The old `find | head -1` returned # whichever version the directory walk reached first. MCPP=$(bash "$REPO_DIR/.github/tools/install_pinned_mcpp.sh" "$REPO_DIR") diff --git a/CHANGELOG.md b/CHANGELOG.md index 8531adc8..7c67a736 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ > Each `## []` section is that release's notes. Entries are written in English > from 2026.9.28.3 on; earlier entries remain as written. +## [2026.10.10.2] - 2026-10-10 + +### Fixed + +- Bundle xlings 2026.10.10.2 in the linux-x86_64 archive. The 2026.10.10.1 + archive carried xlings 2026.10.8.1, which a restored release cache provided: + its install failures had no class and its extractions no progress. The + release installs the pinned xlings by version and refuses a different one; + the other archives were correct. + ## [2026.10.10.1] - 2026-10-10 ### Changed diff --git a/mcpp.toml b/mcpp.toml index ae46ea44..3b925192 100644 --- a/mcpp.toml +++ b/mcpp.toml @@ -1,6 +1,6 @@ [package] name = "mcpp" -version = "2026.10.10.1" +version = "2026.10.10.2" description = "Modern C++ build & package management tool" license = "Apache-2.0" authors = ["mcpp-community"] diff --git a/modules/versioning/src/version.cppm b/modules/versioning/src/version.cppm index dc7eef9b..0736d4ac 100644 --- a/modules/versioning/src/version.cppm +++ b/modules/versioning/src/version.cppm @@ -31,6 +31,6 @@ import std; export namespace mcpp { -inline constexpr std::string_view MCPP_VERSION = "2026.10.10.1"; +inline constexpr std::string_view MCPP_VERSION = "2026.10.10.2"; } // namespace mcpp