Commit graph

142 commits

Author SHA1 Message Date
Boris Nagaev
69176c5d18
scripts/keys: add pub key for boris 2026-08-10 15:57:48 -05:00
Olaoluwa Osuntokun
05c625275e ci: split PR severity workflow into classify and apply jobs
In this commit, we separate the two concerns in the PR severity workflow:
working out the severity, and applying it. The classify job inspects the
PR and records its verdict (the severity level, whether to comment, and
the comment body) to a few files. A second apply job reads those files
and does the mechanical work of setting the label and posting the comment.

Pulling the classification apart from the application keeps each job doing
one thing and makes the flow easier to follow. The apply job takes the
severity the classifier picked and checks it against the known set before
touching a label, and posts the comment from a file via --body-file so the
body is handled as plain data. We also turn off checkout credential
persistence, since neither job needs a git credential on disk.
2026-07-07 21:24:55 -07:00
Gijs van Dam
74102ae633
scripts/keys: add pub key for gijswijs 2026-06-29 21:40:17 +02:00
Olaoluwa Osuntokun
c2941a96ca scripts: match upstream remote case-insensitively in tag-release.sh
In this commit, we fix the upstream remote detection in tag-release.sh so
it recognizes remotes whose URL uses a different case than the canonical
`lightningnetwork/lnd`. GitHub treats the org/repo path as
case-insensitive, but the awk match was case-sensitive, so a remote
pointing at `LightningNetwork/lnd` (a common spelling for `origin`) would
go undetected and the script would bail out with "no git remote points at
lightningnetwork/lnd" even though one clearly did.

We lower-case the URL with awk's `tolower()` before matching, which keeps
the pattern itself lower-case and stays portable across the BSD awk on
macOS and gawk in CI (unlike the gawk-only `IGNORECASE`).
2026-06-04 13:46:55 -07:00
ziggie
5320aa0e36
scripts: add tag-release.sh to safely cut release tags
Adds a script that creates a signed annotated release tag only after
verifying:

  1. The requested tag name matches the version constants committed in
     HEAD:build/version.go. Catches the failure mode where a release
     branch is tagged before the version bump has been committed, which
     would otherwise leave the tagged commit reporting an old version
     string at runtime.

  2. The local HEAD is identical to the upstream lightningnetwork/lnd
     view of the release branch. A release tag must never point at a
     commit that has not been merged upstream yet.

The upstream remote is discovered by URL rather than by name, since
"origin" is conventionally the fork in a "gh repo fork" workflow. The
branch defaults to whichever one is currently checked out (typically a
release branch such as v0.21.x-branch) and can be overridden with
--branch.

The script deliberately does not push the tag or auto-bump version.go;
both remain explicit human steps.
2026-05-26 10:52:53 -03:00
ziggie
154e507675
testing: allow patch versions of bitcoin core 2026-04-23 11:27:41 -03:00
ziggie
2b4dc4eace
scripts/bw-compat: use docker logs for log collection
Switch collect_logs from docker cp to docker logs to reliably capture
container output. The previous approach used docker cp to copy lnd log
files from inside named volumes, which silently fails in CI — the
directory gets created and the success echo prints, but no files are
ever copied, causing upload-artifact to report "No files were found".

docker logs reads directly from Docker's captured stdout/stderr buffer,
bypassing the volume entirely, and works as long as the container exists.
2026-03-05 15:51:59 +01:00
ziggie
f6f6064938
scripts: fix backwards compatibility test timing issues
The backwards compatibility test was failing intermittently due to two
related timing issues in the test setup.

The issue was that Dave's `wait_graph_sync dave 3` was hanging
for up to 60 minutes. Dave's initial gossip sync with Charlie could
complete before Charlie had forwarded the alice-bob channel
announcement, leaving Dave stuck at 2 channels until lnd's historical
syncer fired at its default interval of 1 hour. After this 1-hour idle,
some routing state had become stale, causing the subsequent payment from
alice to dave to fail with FAILURE_REASON_NO_ROUTE.

This issues is now addressed by setting `--historicalsyncinterval=10s` on
all nodes. This causes nodes to periodically re-sync the full gossip
state from their peers every 10 seconds instead of every hour. Dave
therefore picks up any missed channel announcements and routing policies
within seconds, and alice's routing graph stays up-to-date throughout
the test.

Additionally, lnd debug logs from all containers are now collected
before teardown on failure and uploaded as a CI artifact, making future
failures easier to diagnose.
2026-03-04 13:04:26 +01:00
George Tsagkarelis
05d1df6de1
scripts: add gpg key for georgetsagk 2026-02-23 14:40:07 +01:00
Olaoluwa Osuntokun
ba4778321d
Merge pull request #10576 from bhandras/bh/ephemeral-gocache-check-each-commit
scripts: use ephemeral gocache in check-each-commit
2026-02-17 17:28:06 -08:00
ziggie
99eceba7a5
scripts: switch verify-install.sh from curl to wget
Replace curl with wget for downloading release manifests and
signatures in verify-install.sh. wget handles redirects, retries, and
error reporting more robustly by default, which avoids silent download
failures that caused misleading "Invalid signature!" errors.

Also add error checking to all download calls so failures are reported
immediately with the URL that failed, and log which signature file and
user failed gpg verification.
2026-02-13 10:35:11 +01:00
ziggie
b7c4755934
scripts: log failing signature details in verify-install
When gpg --verify fails, include the signature filename, username,
and full GPG output in the error message. Previously only a generic
"Invalid signature!" was printed, making it hard to identify which
signer's signature was invalid.
2026-02-13 10:35:11 +01:00
Andras Banki-Horvath
75de3e3b68
scripts: use ephemeral gocache in check-each-commit 2026-02-13 09:42:24 +01:00
Elle Mouton
7baead7183
multi: add issue dedupe command and workflow
- add /dedupe command definition for Claude Code
- add workflow to run dedupe on issue opened
- add comment helper script for posting duplicates
2026-02-11 13:06:42 +02:00
Elle Mouton
df0bd94b91
scripts: update bw-compat test LND base version
Update the backwards compat test to use lnd v0.20.0-beta as the base
version.
2026-02-03 17:06:24 +02:00
ziggie
4f051d97ea
lncfg+scripts: use configurable global lock for postgres backends
Replace hardcoded WithGlobalLock assignment with configurable
options wallet postgres backends. Also add the WithGlobalLock
option to the channeldb table for postgres backends.

Defaults:
- channeldb: false (allow concurrent access)
- wallet: true (maintain safe single-writer behavior)

Users can now override these defaults via:
- db.postgres.channeldb-with-global-lock
- db.postgres.walletdb-with-global-lock

This gives operators flexibility while maintaining safe defaults
until full native SQL migration is complete.

Moreover exclude db.postgres.walletdb-with-global-lock check
in the sample config file script. We cannot easily check the
correct default because we set it later in the LND startup
sequence so we exclude it.
2025-11-28 09:22:19 +01:00
Yong
096ab65b1d
Merge pull request #10350 from saubyk/update-pgp-key-suheb
Updated expired PGP key for Suheb
2025-11-06 20:56:04 +08:00
saubyk
49e75a6e8b
keys:updated the expired key for Suheb 2025-11-05 18:35:31 -08:00
Norbert
b669494a23 keys: increase expiry of signing key
The key did not change just the meta data.
2025-11-06 01:29:34 +01:00
Olaoluwa Osuntokun
9a7b526c0c
Merge pull request #10268 from starius/release-gnu-gzip
release.sh: make sure GNU gzip is used
2025-10-27 10:34:30 -07:00
Olaoluwa Osuntokun
81ff01c9cc scripts/keys: update roasbeef keys with new expiry
My key recently expired, in this commit, we update the keys to the new
refreshed version. These are the same keys, but with an expiry further
out.

Here's a clear sign of the latest Bitcoin block hash:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

000000000000000000013215ef7c32bc0427f388fc83623affe712f388
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQQpYhJoGq3wVlaize6QUl997uCthgUCaPi6xwAKCRCQUl997uCt
hpqNAQC5VnnbO6h/PjywGhU4LLRvH8SdgdDEMSc7xrtWd1vgPgD+IDrHqiAb+h38
ORBnUVJCVuZrPebtdnYXVQhII91eaw4=
=WRbl
-----END PGP SIGNATURE-----
2025-10-22 12:07:38 +01:00
Olaoluwa Osuntokun
dfee57023c build: clear Go cache between platform builds in release script
In this commit, we add a call to "go clean -cache" after each platform
build in the release script to prevent the Go build cache from accumulating
unbounded disk space during the sequential 15-platform build process.

When building for multiple platforms in sequence with "go build -v", Go
creates intermediate build artifacts and caches compiled packages for each
target platform. While this caching improves build performance within a
single platform build, it causes the cache to grow substantially when
building for many platforms sequentially. With 15 different platform/
architecture combinations, each with their own cached artifacts, this
accumulation was contributing to the disk space exhaustion.

By clearing the build cache after each platform completes, we prevent this
unbounded growth while still allowing each individual platform build to
benefit from caching during its own compilation. The module cache is
preserved (we only clear the build cache), so dependencies don't need to be
re-downloaded between platforms.
2025-10-20 22:39:47 +01:00
Boris Nagaev
b88b25e781
release.sh: make sure GNU gzip is used
On MacOS, the default BSD gzip produces a different output than the GNU gzip
on Linux. To ensure reproducible builds, we need to use GNU gzip.

This is similar to what we do to enforce GNU tar.
2025-10-03 22:28:03 -03:00
Viktor Torstensson
80c2484e9e
scripts: add gpg key for ViktorT-11 2025-09-26 12:16:22 +02:00
Oliver Gugger
365f1788e5
Merge pull request #10157 from ziggie1984/remove-pgp-key
remove expired key
2025-08-15 01:10:05 -06:00
Gustavo Stingelin Cardoso Filho
29bfeb2084
scripts: add pgp keys expire check 2025-08-14 15:35:55 -03:00
ziggie
dccb669ad1
scripts: remove expired key 2025-08-14 09:37:53 +02:00
Slyghtning
1ce64eb45f
scripts: update hieblmi pgp key 2025-08-11 11:47:40 +02:00
sputn1ck
960a3517ad
scripts: update sputn1ck pgp key
This comit updates the pgp key for sputn1ck with
a new expiration date.

[skip ci]
2025-08-07 12:30:42 +02:00
Oliver Gugger
02d48d1d81
Merge pull request #10132 from ffranr/update-ffranr-signing-key
scripts: update ffranr release signing key
2025-08-06 07:14:48 -06:00
ffranr
0676c5669e
scripts: update ffranr release signing key
Updated the release signing key. New key fingerprint:

C97A AA14 70F9 7987 8F7A  6DED C344 0ACF 100A 33B4

The old key is no longer in use.
2025-08-06 10:34:31 +01:00
ziggie
3afac74413
scripts: remove expired pgp key 2025-08-06 11:24:54 +02:00
András Bánki-Horváth
9ffbb977e8
Merge pull request #10034 from bhandras/fuzzy-matching-script
scripts: add cherry-pick verification tool with fuzzy matching
2025-07-31 14:40:14 +02:00
Andras Banki-Horvath
cabb3a0a24
scripts: add cherry-pick verification tool with fuzzy matching
This script compares a release branch against a source branch
(e.g. master) to verify that all cherry-picked commits are
unmodified. It first attempts fast matching using normalized
patch hashes.

If no exact match is found, it falls back to a fuzzy matching
mechanism:

- Filters source commits by matching author and commit subject
- Compares normalized diffs using diff -u
- Selects the closest match based on line difference count

Useful for verifying cherry-picks or rebased commits during
release processes. Supports scan and compare limits for
performance.
2025-07-29 08:51:51 +02:00
Elle
90e2116842
Merge pull request #10081 from ellemouton/graphSQLSlices
graph/db: use `/*SLICE:<field_name>*/` to optimise various graph queries
2025-07-22 18:27:10 +02:00
Elle Mouton
5afd9a5678
scripts: add sql slices workaround to sqlc gen script
This copies the workaround introduced in the taproot-assets code base
and will allow us to use `WHERE x in <list>` type queries.
2025-07-22 17:14:55 +02:00
Oliver Gugger
270fad23f1
scripts/keys: remove old expired or revoked keys
Fixes #10093.
This commit removes some old signing keys that haven't been used to sign
in a while and have either expired or been revoked.

=== scripts/keys/arshbot.asc ===
KeyID: 90E00CCB1C74C611 Created: 2018-08-08 Expires: 2022-08-08 Revoked: NO

=== scripts/keys/Crypt-iQ.asc ===
KeyID: 118759E83439A9B1 Created: 2019-05-31 Expires: 2022-10-13 Revoked: NO

https://github.com/lightningdevkit/rust-lightning/pull/2029
2025-07-21 09:43:19 +02:00
ziggie
5baaa3e7c5
sqlc: update sqlc compiler to 1.29.0 2025-05-25 18:23:35 +02:00
Elle Mouton
c70e1194a0
scripts/bw-compat: use status server to determine if node is ready
This commit adjusts the backwards compatability test in 2 ways:

1) we first set up the bitcoin backend before waiting for our network
   nodes to start. This is so that the nodes can sync to chain and
become fully active during the `wait_for_nodes` call.
2) Then, in the `wait_for_node` helper, we use the status server
   response to determine if a node is ready instead of just waiting for
`GetInfo` to return a response. This is because waiting for
SERVER_ACTIVE is a more accurate signal that the node is ready to
receive RPC calls.
2025-04-15 11:49:07 +02:00
Andras Banki-Horvath
a427a872a0
scripts+bw-compatibility-test: run and update Dave with sqlite 2025-03-31 16:02:55 +02:00
Oliver Gugger
576da75a07
multi: remove unneeded env variables
With Go 1.23 we don't need to set any of these variables anymore, as
they're the default values now.
2025-02-28 14:55:34 +01:00
Elle Mouton
f0d4ea10a2
scripts/bw-compatibility-test: add backwards compat test
In this commit, a new backwards compatibility test is added. See the
added README.md file in this commit for all the info.
2025-02-27 11:33:15 +02:00
yyforyongyu
fa8527af09
Makefile+scripts: add unit test flake hunter
This commit adds a script to hunt flakes for a specific unit test with
trace logs. Also rename the make commands to make them more clear on
whether it's a unit test, itest, or paralleled itest.
2025-02-25 21:10:40 +08:00
Oliver Gugger
6cabc74c20
Merge pull request #8831 from bhandras/sql-invoice-migration
invoices: migrate KV invoices to native SQL for users of KV SQL backends
2025-01-23 05:48:25 -06:00
Andras Banki-Horvath
84598b6dc1
sqldb: ensure schema definitions are fully SQLite compatible
Previously, we applied replacements to our schema definitions
to make them compatible with both SQLite and Postgres backends,
as the files were not fully compatible with either.

With this change, the only replacement required for SQLite has
been moved to the generator script. This adjustment ensures
compatibility by enabling auto-incrementing primary keys that
are treated as 64-bit integers by sqlc.
2025-01-23 09:11:02 +01:00
Elle Mouton
b986f57206
scripts/keys: update pub key for ellemouton 2024-12-21 08:11:38 +02:00
yyforyongyu
88bd0cb806
itest: shuffle test cases to even out blocks mined in tranches
This commit adds a new flag to shuffle all the test cases before running
them so tests which require lots of blocks to be mined are less likely
to be run in the same tranch.

The other benefit is this approach provides a more efficient way to
figure which tests are broken since all the differnet backends are
running different tranches in their builds, we can identify more failed
tests in one push.
2024-12-20 19:38:05 +08:00
Oliver Gugger
4ee36e3762
scripts: update Roasbeef's key ID in verify-install.sh
This was overlooked in #9206.
We're updating to the parent key ID
A5B61896952D9FDA83BC054CDC42612E89237182.

cat scripts/keys/roasbeef.asc| gpg --with-colons --import-options show-only --import                                                                   ─╯
pub:-:255:22:DC42612E89237182:1729552568:::-:::scESCA:::::ed25519:::0:
fpr:::::::::A5B61896952D9FDA83BC054CDC42612E89237182:
uid:-::::1729552794::8D805FB762825ECBDA00EB0AF5FEDF76DE288546::Olaoluwa Osuntokun <laolu32@gmail.com>::::::::::0:
sub:-:255:18:19E88A946BEF6D65:1729552568:1761088568:::::e:::::cv25519::
fpr:::::::::70206BBE2C0A81EC381A212C19E88A946BEF6D65:
sub:-:255:22:966072F65DF1D016:1729552672:1761088672::::🅰️::::ed25519::
fpr:::::::::98E3632DC026406855001E22966072F65DF1D016:
sub:-:255:22:90525F7DEEE0AD86:1729552758:1761088758:::::s:::::ed25519::
fpr:::::::::296212681AADF05656A2CDEE90525F7DEEE0AD86:
2024-12-12 09:50:25 +01:00
ziggie
643e415448
scripts: dont check new config value.
Because we need to remain backwards compatible with the old
`dust-threshold` value we set the default value for
`channel-max-fee-exposure` later in the program flow. Given
the restrictions of the sample config check we need to exclude
this value from the check.
2024-11-06 18:52:07 +01:00
ffranr
7919b3f204
makefile+scripts: add Go version check to release command
This commit updates `scripts/release.sh` to include a check for the
correct Go version before executing the release build. This ensures that
the release binaries are built with the specified Go version,
maintaining consistency and integrity for developer signatures.
2024-10-23 13:34:35 +02:00