Skip to content

ci: repair stale CI (MSRV pins, retired runners, regenerated C# bindings) - #184

Draft
Synesso wants to merge 6 commits into
lightningdevkit:mainfrom
Synesso:fix-stale-ci
Draft

ci: repair stale CI (MSRV pins, retired runners, regenerated C# bindings)#184
Synesso wants to merge 6 commits into
lightningdevkit:mainfrom
Synesso:fix-stale-ci

Conversation

@Synesso

@Synesso Synesso commented Aug 3, 2026

Copy link
Copy Markdown

CI on main (and PRs such as #183) is currently red for reasons unrelated to the changes under test. This PR fixes the failures that are fixable from outside the project:

1. MSRV breakage building c-bindings-gen (java_bindings, java_determinism, wasm_bindings, c_sharp_bindings, macos_determinism)

unicode-ident 1.0.23+ requires rustc 1.71, but the jobs intentionally build with Debian Bookworm's rustc 1.63. The existing proc-macro2/quote pin blocks now also pin unicode-ident 1.0.22 (MSRV 1.31), and the pin block is added to the jobs that had none (wasm_bindings, c_sharp_bindings, macos_determinism, android), which failed on floating proc-macro2 1.0.107/unicode-ident 1.0.24.

2. Retired macos-13 runner image (osx_java, osx_c_sharp)

GitHub retired the macos-13 image; those matrix jobs queue until the run is cancelled. Dropped from both matrices, leaving macos-14.

3. c_sharp_determinism: checked-in generated C# sources have drifted

The tip of the ldk-c-bindings 0.1 branch now generates slightly different output (doc-comment updates and enum conversion helpers moving between bindings.c and bindings.c.body) than what is checked in, failing the "Check latest auto-generated code is in git" step. The second commit is byte-for-byte the diff CI printed when regenerating — no hand-written changes.

Known remaining failures that only maintainers can fix

osx_java, osx_c_sharp, android, and the late steps of the determinism jobs fetch deterministic binaries from git.bitcoin.ninja for $(git describe --tag HEAD) (currently v0.1.3.0-6-g125b0977), which 404s because bins for the current HEAD have not been published. Those jobs will stay red on every non-released commit until new bins are uploaded.

Splitting this out of #183 so that PR can be judged on its own diff.

Synesso and others added 2 commits August 3, 2026 16:07
The c-bindings-gen build breaks on Debian Bookworm's rustc 1.63 because
unicode-ident 1.0.23+ requires rustc 1.71. The existing proc-macro2/quote
pins are extended with unicode-ident 1.0.22 (MSRV 1.31), and the same pin
block is added to the jobs that were missing it entirely (wasm_bindings,
c_sharp_bindings, macos_determinism, android).

GitHub retired the macos-13 runner image, so those matrix entries hang
until the run is cancelled; drop them.

Amp-Thread-ID: https://ampcode.com/threads/T-019fac05-3d6f-75ca-9581-2c17d12954db
Co-authored-by: Amp <amp@ampcode.com>
…s 0.1

The checked-in generated C# sources have drifted from what genbindings.sh
now produces against the tip of the ldk-c-bindings 0.1 branch, causing the
c_sharp_determinism 'auto-generated code is in git' check to fail. This
commit is exactly the diff CI printed when regenerating (doc-comment
updates and enum conversion helpers moving between bindings.c and
bindings.c.body); no hand-written changes.

Amp-Thread-ID: https://ampcode.com/threads/T-019fac05-3d6f-75ca-9581-2c17d12954db
Co-authored-by: Amp <amp@ampcode.com>
Synesso and others added 4 commits August 3, 2026 22:16
With c-bindings-gen building again, the next failure is libc 0.2.184+
requiring rustc 1.65 while lightning-c-bindings builds with Debian
Bookworm's rustc 1.63. Pre-seed the lightning-c-bindings lock with
libc 0.2.183, the last release with MSRV 1.63.

Amp-Thread-ID: https://ampcode.com/threads/T-019fac05-3d6f-75ca-9581-2c17d12954db
Co-authored-by: Amp <amp@ampcode.com>
The libc pin in lightning-c-bindings didn't help because the actual
failure is in the cloned rust-lightning workspace: genbindings.sh's
add_crate runs 'cargo rustc -Zunpretty=expanded' inside it, resolving
that workspace's own lock where libc 0.2.189 (MSRV 1.65) and
proc-macro2 1.0.107 (MSRV 1.68) land.

Mirror PIN_RELEASE_DEPS from rust-lightning's ci/ci-tests.sh for
rustc 1.63 in that workspace before building.

Amp-Thread-ID: https://ampcode.com/threads/T-019fac05-3d6f-75ca-9581-2c17d12954db
Co-authored-by: Amp <amp@ampcode.com>
…s 0.1

Same treatment as the earlier c_sharp regeneration: the checked-in generated
Java and TypeScript sources drifted from what genbindings.sh now produces
against the tip of the ldk-c-bindings 0.1 branch (Network Testnet ->
Testnet3/Testnet4 split and doc-comment updates), failing the
'latest auto-generated code is in git' checks. This commit is exactly the
diff CI printed; no hand-written changes.

Amp-Thread-ID: https://ampcode.com/threads/T-019fac05-3d6f-75ca-9581-2c17d12954db
Co-authored-by: Amp <amp@ampcode.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant