Fix the concurrency group, bump tooling, unpin CodeQL and gradle actions - #151
Merged
Merged
Conversation
The concurrency block landed in the previous sweep with a comment claiming that a
push to main or a v* tag "always runs to completion even if another push lands
behind them", on the strength of cancel-in-progress being scoped to pull_request.
That is not what GitHub does.
GitHub cancels a *pending* run whenever a newer run joins the same group behind
an in-progress one, and that rule is independent of cancel-in-progress. With a
plain ${{ github.workflow }}-${{ github.ref }} group, a queued release run on
main could therefore be dropped silently by a later push to main -- both sit in
Publish-refs/heads/main.
Appending the unique github.run_id for every non-PR run puts each release run in
a group of its own, so it is never queued behind a sibling and can never be
cancelled. PR runs keep sharing a group per ref and still supersede each other,
which is the whole point of the block.
Ported verbatim from java-llama.cpp, where the corrected expression is confirmed
empirically: the next push cancelled all 62 jobs of the previous PR run. The
comment now also records the one-time overlap to expect on the commit that
changes the expression, since GitHub reads concurrency from each run own ref.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH
spotless-maven-plugin 3.10.0 -> 3.10.1, palantir-java-format 2.96.0 -> 2.97.0, pitest-maven 1.25.9 -> 1.30.0. nullaway is untouched -- this repo is already on 0.14.0 via Dependabot PR #149, and that is the version the other three siblings were just aligned to. github/codeql-action was hard-pinned at v4.37.8 in codeql.yml and scorecard.yml (init, analyze and upload-sarif); it now floats on @v4 like the other siblings, so patch releases arrive without a manual bump -- 4.37.9 is already out. gradle/actions/setup-gradle drops its @v6.3.0 pin to @v6 for the same reason. Both pins were accidental, not deliberate. Deliberately NOT taken: jqwik 1.9.3 -> 1.10.1, forbidden by workspace/policies/jqwik-prompt-injection.md; and the maven-compiler/jar/source 4.0.0-beta and surefire 3.6.0-M1 offers, which are pre-releases the versions plugin does not filter by qualifier. Verified with real exit codes: spotless:check and clean compile both pass. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH
bernardladenthin
had a problem deploying
to
maven-central
August 29, 2026 15:45 — with
GitHub Actions
Failure
bernardladenthin
had a problem deploying
to
maven-central
August 29, 2026 15:45 — with
GitHub Actions
Failure
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
concurrency:block did not do what its comment claimed. It said a push tomainor av*tag "always runs to completion even if another push lands behind them", on the strength ofcancel-in-progressbeing scoped topull_request. That is not what GitHub does: it cancels a pending run whenever a newer run joins the same group behind an in-progress one, and that rule is independent ofcancel-in-progress. With a plain${{ github.workflow }}-${{ github.ref }}group, a queued release run onmaincould therefore be dropped silently by a later push tomain— both sit inPublish-refs/heads/main. Appending the uniquegithub.run_idfor every non-PR run puts each release run in a group of its own; PR runs keep sharing a group per ref and still supersede each other, which is the point of the block.github/codeql-actionwas pinned at@v4.37.8acrosscodeql.ymlandscorecard.yml(init,analyze,upload-sarif) and now floats on@v4like the sibling repos — 4.37.9 is already out.gradle/actions/setup-gradledrops@v6.3.0to@v6for the same reason.3.10.0 → 3.10.1, palantir-java-format2.96.0 → 2.97.0, pitest-maven1.25.9 → 1.30.0.nullaway is untouched here on purpose — this repo is already on
0.14.0via Dependabot PR #149, and that is precisely the version the other three siblings were just aligned to. That single-repo bump is also what silently broke the "identical across all 4" claim incrossrepostatus.md, which is corrected in the workspace PR of this sweep.Expect one overlapping run, exactly once
GitHub reads
concurrencyfrom the workflow file at each run's own ref, so a run started before this change sits in the old group and one started after it sits in the new one. They are different groups, so the new push does not supersede the in-flight old run — once, on the commit that lands this. It self-heals from the next push on. This is documented in the block's own comment; it is not a sign the expression is wrong.Deliberately not taken
versions:display-dependency-updatesalso offers, and each is refused on purpose:1.9.3 → 1.10.1— forbidden byworkspace/policies/jqwik-prompt-injection.md: 1.10.0 added a deliberate prompt-injection string to test stdout, and upstream states the library "is not meant to be used by any 'AI' coding agents at all."maven-compiler/jar/source4.0.0-beta-*,surefire 3.6.0-M1— pre-releases the plugin offers because it does not filter by qualifier.Test plan
spotless:checkOK andclean compileOK, verified with real exit codes (a first attempt putrc=$?after a pipe, measuringtail, and reported success unconditionally; redone). Those are the two checks that matter: palantir 2.97.0 would failspotless:checkif the formatter's output had changed, and the compile runs under-Werror.mutationThresholdof 100; a localmutationCoveragerun was still in flight when this PR was opened, so CI is the authority there. If it goes red, the pitest bump alone is what to revert — nothing else here depends on it.workspace/crossrepostatus.md.Related issues / PRs
Refs #149 (the nullaway 0.14.0 bump this sweep aligns the other repos to). Part of a cross-repo sweep also landing in
java-llama.cpp,BitcoinAddressFinder,srcmorph,BroomCabinetandworkspace.Checklist
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdGenerated by Claude Code