Skip to content

release: publish checksums, find more builds and export only PyInit_monero - #126

Merged
everoddandeven merged 3 commits into
libmonero:mainfrom
everoddandeven:ci/release-improvements
Nov 7, 2026
Merged

everoddandeven merged 3 commits into
libmonero:mainfrom
everoddandeven:ci/release-improvements

Conversation

@everoddandeven

Copy link
Copy Markdown
Member

Look at the latest 200 runs of main for the builds of the tagged commit instead of the latest 20, which missed it after a few docs commits, and publish a SHA256SUMS file with the assets of the release. The binaries are already stripped, but the linker exports every symbol of the static libraries (27330 in the deb of Ubuntu 24.04, 1100 in the Windows wheel), so only PyInit_monero is exported now. Checked on a small static library only, the effect on the module itself has to be seen in CI.

everoddandeven and others added 3 commits November 7, 2026 02:51
gh run list shows the 20 latest runs by default, and the release looks there
for the successful run of each workflow on the commit that is tagged. Main
gets a run of each workflow for every push, so a commit that is not among the
latest few, say after a series of docs commits, was reported as never built.
Look at the latest 200.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The draft release has 12 deb packages, the wheels of macOS and Windows and the
coverage report, and nothing to check a download against. Add a SHA256SUMS
file, which sha256sum -c reads.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The binaries are already stripped of debug information and local symbols,
on linux by dh_strip and by pybind11 on the other platforms, but the
linker still exports every symbol of the static libraries that go into the
module, those of monero-project and monero-cpp: 27330 dynamic symbols in the
deb of Ubuntu 24.04, from 6919 to 10911 in the macOS wheels and 1100 in the
Windows one, where a python module needs one. They are a part of the size of the
module and can clash with the symbols that another extension of the same
process brings, a boost or a protobuf for one.

Hide the ones of the archives with --exclude-libs ALL on linux and on
mingw, and export only PyInit_monero on macOS, where -dead_strip then also
drops what is no longer reachable. The effect is the one wanted on a
small library made of a static one, but it has not been measured on the
module, which a build of CI will tell.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@everoddandeven
everoddandeven merged commit b654878 into libmonero:main Nov 7, 2026
1 of 5 checks passed
@everoddandeven
everoddandeven deleted the ci/release-improvements branch November 7, 2026 01:58
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