From 3004a65491feb72525f9f12470212c0b9c7b1fd3 Mon Sep 17 00:00:00 2001 From: Derek Miller <1340081+derek-miller@users.noreply.github.com> Date: Sat, 17 Oct 2026 14:59:44 -0500 Subject: [PATCH] ci: bump action and tool pins, add Lua 5.5 to the test matrix action-gh-release v1 runs on the retired Node 16 runtime, which put the release job at risk; the other actions were one or more majors behind. --- .github/workflows/build.yml | 32 ++++++++++++++++---------------- .github/workflows/release.yml | 10 +++++----- CLAUDE.md | 12 ++++++------ README.md | 2 +- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 811a644..d557eb0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,30 +15,30 @@ jobs: runs-on: ubuntu-26.04 name: Check steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Lua - uses: leafo/gh-actions-lua@v11 + uses: leafo/gh-actions-lua@v13 with: luaVersion: '5.4' - name: Setup LuaRocks - uses: leafo/gh-actions-luarocks@v5 + uses: leafo/gh-actions-luarocks@v6 with: - luarocksVersion: "3.12.2" + luarocksVersion: "3.13.0" - name: Install luacheck run: luarocks install luacheck - name: Install stylua - uses: JohnnyMorganz/stylua-action@v4 + uses: JohnnyMorganz/stylua-action@v5 with: token: ${{ secrets.GITHUB_TOKEN }} - version: v2.1.0 + version: v2.6.0 args: false # Will be run as part of `make check` - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v7 with: python-version: '3.12' @@ -54,7 +54,7 @@ jobs: | tar -xz -C "$RUNNER_TEMP" echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH" env: - LUALS: 3.19.0 + LUALS: 3.19.2 - name: Check run: make check @@ -72,14 +72,14 @@ jobs: strategy: fail-fast: true matrix: - lua-version: ['5.1', '5.2', '5.3', '5.4', 'luajit-2.0', 'luajit-2.1'] + lua-version: ['5.1', '5.2', '5.3', '5.4', '5.5', 'luajit-2.0', 'luajit-2.1'] name: Lua ${{ matrix.lua-version }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Lua - uses: leafo/gh-actions-lua@v11 + uses: leafo/gh-actions-lua@v13 with: # The 'luajit-2.1' target tracks a rolling HEAD which has miscompiled # the signed arithmetic-shift edge cases in zigzag encoding (arshift of @@ -108,17 +108,17 @@ jobs: runs-on: ubuntu-26.04 name: Build Combined Module steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Lua - uses: leafo/gh-actions-lua@v11 + uses: leafo/gh-actions-lua@v13 with: luaVersion: '5.4' - name: Setup LuaRocks - uses: leafo/gh-actions-luarocks@v5 + uses: leafo/gh-actions-luarocks@v6 with: - luarocksVersion: "3.12.2" + luarocksVersion: "3.13.0" - name: Install amalg run: luarocks install amalg @@ -151,7 +151,7 @@ jobs: fi - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: protobuf.lua path: build/protobuf.lua diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4283d1b..7912a38 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,19 +13,19 @@ jobs: runs-on: ubuntu-26.04 steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 - name: Setup Lua - uses: leafo/gh-actions-lua@v11 + uses: leafo/gh-actions-lua@v13 with: luaVersion: '5.4' - name: Setup LuaRocks - uses: leafo/gh-actions-luarocks@v5 + uses: leafo/gh-actions-luarocks@v6 with: - luarocksVersion: "3.12.2" + luarocksVersion: "3.13.0" - name: Install amalg run: luarocks install amalg @@ -36,7 +36,7 @@ jobs: make build - name: Create Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v3 with: draft: false prerelease: ${{ contains(github.ref_name, '-rc') || contains(github.ref_name, '-beta') || contains(github.ref_name, '-alpha') }} diff --git a/CLAUDE.md b/CLAUDE.md index f3444bd..63abb98 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -123,7 +123,7 @@ local `.luarc.json`. Re-run both enumerations when upgrading the server rather t assuming this list stayed complete. The server version is not pinned locally, though. `install-deps` takes whatever -Homebrew has while CI pins 3.19.0, so compare the version the target prints if a +Homebrew has while CI pins 3.19.2, so compare the version the target prints if a local result disagrees with CI. `vendor/` is both a `library` and an `ignoreDir`, which is load-bearing: with only @@ -137,7 +137,7 @@ deprecated, which fails the gate. So the pin keeps this repo's own cross-version shims from tripping it. Part of `check`, so CI enforces it. CI pins the server version so the count cannot -move under an upstream release; 3.18.2 and 3.19.0 agree here. +move under an upstream release; 3.18.2, 3.19.0 and 3.19.2 agree here. ## Architecture @@ -468,9 +468,9 @@ Version is automatically injected from git tags during release. - **build.yml**: Runs on push/PR to `main` or `master` - `check` job — `make check`: format-check, luacheck, check-types, check-schema, - and typecheck against lua-language-server 3.19.0, then `make check-wire-vectors` + and typecheck against lua-language-server 3.19.2, then `make check-wire-vectors` and `make check-float-vectors` - - `test` job — `make test-all` across Lua 5.1-5.4, LuaJIT 2.0/2.1 + - `test` job — `make test-all` across Lua 5.1-5.5, LuaJIT 2.0/2.1 - `build` job — single-file distributions - The `luajit-2.1` matrix entry is silently built as **`luajit-openresty`**: rolling LuaJIT HEAD miscompiled the signed arithmetic-shift edge cases in @@ -481,8 +481,8 @@ Version is automatically injected from git tags during release. and `build/protobuf-portable.lua`. `make test-matrix` locally pins `5.1.5 5.2.4 5.3.6 5.4.8 luajit-2.1-dev` and needs -`luaenv` plus the `luaenv-luarocks` plugin. It does **not** cover LuaJIT 2.0, -which CI does. +`luaenv` plus the `luaenv-luarocks` plugin. It does **not** cover Lua 5.5 or +LuaJIT 2.0, which CI does. ## Code Style diff --git a/README.md b/README.md index 7b5c1ed..7d1e2ab 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A pure Lua implementation of Protocol Buffers encoding and decoding with **zero external dependencies**. This library provides a lightweight, portable -implementation that runs on Lua 5.1, 5.2, 5.3, 5.4, and LuaJIT. +implementation that runs on Lua 5.1, 5.2, 5.3, 5.4, 5.5, and LuaJIT. ## Features