From 44bae495a5f164b012cb911d85fd0d4745518c54 Mon Sep 17 00:00:00 2001 From: Gaspard Kirira Date: Mon, 6 Apr 2026 08:56:00 +0300 Subject: [PATCH] chore(release): prepare v2.1.16 --- .github/workflows/release.yml | 19 ++++++++++++++++--- .github/workflows/sdk-release.yml | 18 ++++++++++++++++-- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ modules/utils | 2 +- 4 files changed, 63 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 26b30ad..a96b408 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,11 +25,11 @@ jobs: fail-fast: false matrix: include: - - os: ubuntu-22.04 + - os: ubuntu-24.04 vixos: linux arch: x86_64 - - os: ubuntu-22.04-arm + - os: ubuntu-24.04-arm vixos: linux arch: aarch64 @@ -380,6 +380,19 @@ jobs: tar -C dist -czf "dist/$ASSET" vix rm -f dist/vix + - name: Validate packaged binary (Linux) + if: runner.os == 'Linux' + shell: bash + run: | + set -euxo pipefail + + mkdir -p smoke + tar -xzf "dist/vix-${{ matrix.vixos }}-${{ matrix.arch }}.tar.gz" -C smoke + + file smoke/vix + ldd smoke/vix || true + smoke/vix --version + - name: Package (Windows) if: runner.os == 'Windows' shell: pwsh @@ -419,7 +432,7 @@ jobs: publish: name: publish (github release) needs: build-release - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Download all artifacts uses: actions/download-artifact@v4 diff --git a/.github/workflows/sdk-release.yml b/.github/workflows/sdk-release.yml index 9bb96bc..78cdd11 100644 --- a/.github/workflows/sdk-release.yml +++ b/.github/workflows/sdk-release.yml @@ -25,7 +25,7 @@ jobs: fail-fast: false matrix: include: - - os: ubuntu-22.04 + - os: ubuntu-24.04 sdkos: linux arch: x86_64 @@ -185,6 +185,20 @@ jobs: ASSET="vix-sdk-${{ matrix.sdkos }}-${{ matrix.arch }}.tar.gz" tar -C install -czf "dist/$ASSET" . + - name: Validate packaged SDK (Linux) + if: runner.os == 'Linux' + shell: bash + run: | + set -euxo pipefail + + mkdir -p smoke + tar -xzf "dist/vix-sdk-${{ matrix.sdkos }}-${{ matrix.arch }}.tar.gz" -C smoke + + test -f smoke/bin/vix + file smoke/bin/vix + ldd smoke/bin/vix || true + smoke/bin/vix --version + - name: Package SDK (Windows) if: runner.os == 'Windows' shell: pwsh @@ -209,7 +223,7 @@ jobs: publish-sdk: name: publish-sdk needs: build-sdk - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Download all artifacts diff --git a/CHANGELOG.md b/CHANGELOG.md index 40b88a3..8cbb391 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- ## [Unreleased] +## [v2.1.16] + +### Fixes + +- fix(release): resolve Linux runtime failures due to shared library ABI mismatch + Linux artifacts were previously built on Ubuntu 22.04, producing binaries linked against `libfmt.so.8` and incompatible with newer distributions (e.g. Ubuntu 24.04). + Updated release workflows to build on Ubuntu 24.04 to align with modern Linux environments. + +- fix(sdk): ensure SDK binaries run correctly on modern Linux systems + SDK artifacts now use the same updated Linux build environment to avoid runtime failures after installation. + +### Improvements + +- improve(utils): prefer header-only fmt and spdlog targets + Updated `vix_utils` to prioritize `fmt::fmt-header-only` and `spdlog::spdlog_header_only`, reducing reliance on system shared libraries and improving portability. + +- improve(utils): avoid implicit shared library dependencies in Linux releases + Added `SPDLOG_FMT_EXTERNAL=1` to ensure consistent integration with fmt and prevent unexpected linkage behavior. + +- improve(ci): add runtime validation step for packaged Linux artifacts + Added a post-build validation step to execute `vix --version` and inspect dependencies via `ldd`, preventing broken binaries from being published. + +- improve(ci): unify Linux build environment across release and SDK workflows + Standardized on Ubuntu 24.04 for consistency and improved compatibility. + +### Notes + +- Existing installations on older Linux systems may still require compatible runtime libraries. +- Future releases aim to provide fully self-contained Linux binaries. + ## [v2.1.15] ### Fixes diff --git a/modules/utils b/modules/utils index e9ba108..9ea64be 160000 --- a/modules/utils +++ b/modules/utils @@ -1 +1 @@ -Subproject commit e9ba1081ebbca68a67fbe525bc2ce1f1a743288b +Subproject commit 9ea64be553511aaafd27b49f99a636d8d32ba21c