Commit graph

6 commits

Author SHA1 Message Date
Ben Westgate
3ab2520190 contrib: Fixup verify-binaries OS platform parsing
Parse platform strings with "-" or '.' correctly such as "linux-gnu" or
"x86_64-linux-gnu.tar.gz" to download the matching files or file. String
partition() is used to tolerate more dashes. Update `VERSION_EXAMPLE`
with a new string parsed correctly now. Fix "-aarch64" interpreted as a
release candidate due to sub-string "rc", causing all downloads to fail.
Now "rc" must immediately follow first "-" to indicate an [-rc] string.
Local variables `version_rc`, `version_os` renamed to `rc`, `platform`.
If "-rcN" is specified, `platform` is reassigned to remove the '-rcN'.

Changes are useful to only download one bitcoin core binary on slow
connections. Making `verify.py pub` more intuitive, robust, and
versatile. Closes #30145

When user types a platform string not found in any filename lets help
and say the platform closest to what they typed in a `f"No files
matched the platform specified. Did you mean: {closest_match}"` log.
Improves UX when unaware how we name our files.
Uses the difflib Python built-in which was already imported elsewhere.

Update test.py to test single file verification
verify-binaries/verify.py can accept an entire filename filter for its
"-platform" parameter now so let us test that it succeeds and downloads
and verifies only one file. `verify.py pub 22.0-x86_64-linux-gnu.tar.gz`
should get and verify only the requested binary. It is placed before the
existing <version> wide verification as it is a faster test and possibly
easier to break.

Update doc with examples now possible after bugfix
Add example to show release candidates now work with "-platform" strings
containing "-" and string provided can be from the middle of filename:
`./contrib/verify-binaries/verify.py --json pub 23.0-rc5-linux-gnu`
Change example 5 to not match example 3.
New examples to show platform can now be provided specifically enough to
download only a single binary down to its file extension:
`./contrib/verify-binaries/verify.py pub 25.2-x86_64-linux`
`./contrib/verify-binaries/verify.py pub 24.1-rc1-darwin`
`./contrib/verify-binaries/verify.py pub 27.0-win64-setup.exe`
This is the most common use if not verifying all files so users see it
as the first example for "only download the binaries for a certain
architecture and/or platform". Downloading one file is intuitively what
most will think this meant and this change delivers on that expectation.

Co-authored-by: stickies-v
2024-06-25 11:32:56 -05:00
Sebastian Falbesoner
4b9afb18e6 scripted-diff: use PEP 585 built-in collection types for verify-binary script
-BEGIN VERIFY SCRIPT-
sed -i 's|t\.Dict|dict|g'   ./contrib/verify-binaries/verify.py
sed -i 's|t\.List|list|g'   ./contrib/verify-binaries/verify.py
sed -i 's|t\.Tuple|tuple|g' ./contrib/verify-binaries/verify.py
-END VERIFY SCRIPT-
2023-10-25 01:19:36 +02:00
Bufo
ceb0168935
contrib: docs fix --import-keys flag on verify.py 2023-06-08 22:26:09 +02:00
fanquake
ad841608d4
contrib: minor doc improvements in verify-binaries 2023-04-09 13:08:46 +02:00
fanquake
e2e5683afe
contrib: fixup verifybinaries example docs
Followup to #27358, fixing up the example command docs.
2023-04-09 13:08:38 +02:00
fanquake
663a89cfed
contrib: move verify scripts to verify-binaries 2023-04-09 12:43:59 +02:00