Skip to content

ci: Speed up rpm debuginfo package generation#7529

Open
legleux wants to merge 1 commit into
developfrom
legleux/rpm-compression
Open

ci: Speed up rpm debuginfo package generation#7529
legleux wants to merge 1 commit into
developfrom
legleux/rpm-compression

Conversation

@legleux

@legleux legleux commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

The deb package already skips the dwz debug optimization step as it takes a long time.
This change adds the analogous switch to reduce RPM package build time to be on par with deb package generation.

@legleux legleux added the DraftRunCI Normally CI does not run on draft PRs. This opts in. label Jun 10, 2026
@legleux legleux force-pushed the legleux/rpm-compression branch from cfc80fb to 497fb2a Compare June 10, 2026 21:42
@github-actions

Copy link
Copy Markdown

This PR has conflicts, please resolve them in order for the PR to be reviewed.

@legleux legleux force-pushed the legleux/rpm-compression branch from 497fb2a to a61534e Compare June 11, 2026 17:30
@github-actions

Copy link
Copy Markdown

All conflicts have been resolved. Assigned reviewers can now start or resume their review.

@legleux legleux changed the title ci: speed up disposable package checks ci: speed up rpm debuginfo package generation Jun 11, 2026
@legleux legleux changed the title ci: speed up rpm debuginfo package generation ci: Speed up rpm debuginfo package generation Jun 11, 2026
@codecov

codecov Bot commented Jun 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.0%. Comparing base (df395d6) to head (7740ee6).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##           develop   #7529     +/-   ##
=========================================
- Coverage     82.0%   82.0%   -0.0%     
=========================================
  Files         1009    1009             
  Lines        76779   76779             
  Branches      8937    8937             
=========================================
- Hits         62976   62973      -3     
- Misses       13794   13797      +3     
  Partials         9       9             

see 4 files with indirect coverage changes

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@legleux legleux marked this pull request as ready for review June 11, 2026 19:47
@legleux legleux requested review from bthomee and mathbunnyru June 11, 2026 19:47

@xrplf-ai-reviewer xrplf-ai-reviewer Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues.

Review by Claude Sonnet 4.6 · Prompt: V15

@mathbunnyru mathbunnyru left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, if it will take less time in CI (please, check, when it's done)

@mathbunnyru mathbunnyru left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, doesn't work:
PR / package / xrpld-rhel-gcc-release-amd64 (pull_request)Successful in 12m

@legleux legleux force-pushed the legleux/rpm-compression branch from a61534e to d1fd10e Compare June 11, 2026 22:07
@legleux legleux removed the DraftRunCI Normally CI does not run on draft PRs. This opts in. label Jun 11, 2026
@legleux

legleux commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator Author

Unfortunately, doesn't work: PR / package / xrpld-rhel-gcc-release-amd64 (pull_request)Successful in 12m

I saw that. I removed the knobs but I removed the thing that made it work also. Re-running.

@xrplf-ai-reviewer xrplf-ai-reviewer Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

macOS/Windows CI coverage dropped — see inline.

Review by Claude Sonnet 4.6 · Prompt: V15

Comment thread .github/workflows/on-pr.yml Outdated
@legleux legleux force-pushed the legleux/rpm-compression branch from d1fd10e to 3961412 Compare June 11, 2026 22:33

@xrplf-ai-reviewer xrplf-ai-reviewer Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Took a pass through this

Unrelated scope creep flagged inline — macOS/Windows CI removal is bundled into an RPM debuginfo-only change.


Review by ReviewBot 🤖

Review by Claude Sonnet 4.6 · Prompt: V15

Comment thread .github/workflows/on-pr.yml Outdated
@legleux legleux force-pushed the legleux/rpm-compression branch from 3961412 to 7740ee6 Compare June 11, 2026 23:31

@xrplf-ai-reviewer xrplf-ai-reviewer Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had a read through

Uncompressed payload flag applied unconditionally — affects shipped package size. See inline.


Review by ReviewBot 🤖

Review by Claude Sonnet 4.6 · Prompt: V15

Comment thread package/rpm/xrpld.spec

%undefine _debugsource_packages
%debug_package
%global _binary_payload w.ufdio

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uncompressed payload is unconditional — shipped RPMs will be much larger. Gate on a CI flag or remove if not needed for all builds:

Suggested change
%global _binary_payload w.ufdio
%{?ci_build:%global _binary_payload w.ufdio}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@legleux legleux added the Trivial Simple change with minimal effect, or already tested. Only needs one approval. label Jun 12, 2026
@legleux

legleux commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator Author

This brings RPM package validation into the same rough size/time class as Debian.

For context:

  • old RPM: ~370 MB, ~12 min
  • Debian: ~566 MB, <3 min
  • new RPM: ~607 MB, <2 min

The old RPM artifact was smaller, but it got there by spending about 10 extra minutes optimizing/compressing debug-package payloads for a disposable CI artifact. Debian is already the practical comparison point here: DWZ optimization is not viable there for xrpld today (Too many DIEs, not optimizing), and the Debian debug package still builds quickly at ~566 MB.

Operationally, the debug-symbol packages are mostly useful when we need to analyze coredumps. The download data supports optimizing this path for CI latency rather than RPM debug artifact size.
For 3.1.3, the stats were:

package type release downloads debug-symbol downloads
deb 2,610 61
rpm 383 2

Some of the debian debug downloads were us also.

So for PR validation, I think it is reasonable to optimize for fast proof that the package builds rather than spending another ~10 minutes minimizing a short-lived RPM debug artifact that is rarely consumed.

@legleux

legleux commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator Author

Almost as fast as deb now

rpm 1m 54s
deb 1m 47s

@legleux legleux requested a review from mathbunnyru June 12, 2026 04:07
@bthomee bthomee removed their request for review June 12, 2026 11:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aligns RPM packaging behavior with the DEB packaging path by disabling the dwz debuginfo optimization step (which can be slow), aiming to reduce overall CI package build time.

Changes:

  • Update the RPM spec to disable dwz during debuginfo generation.
  • Adjust RPM payload settings to speed up RPM/debuginfo packaging.
  • Update packaging documentation and cspell dictionary to reflect the new RPM settings.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
package/rpm/xrpld.spec Disables dwz for debuginfo generation and adjusts RPM payload settings for faster packaging.
package/README.md Documents the RPM packaging invocation and notes the new debuginfo/payload behaviors.
cspell.config.yaml Adds ufdio to the project wordlist to avoid spellcheck noise from the new RPM macro.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread package/README.md
1. Creates the standard `rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}` tree inside the build directory.
2. Copies `xrpld.spec` and all source files (binary, configs, service files) into `SOURCES/`.
3. Runs `rpmbuild -bb --define "xrpld_version ..." --define "pkg_release ..."`. The spec uses manual `install` commands to place files.
3. Runs `rpmbuild -bb --define "xrpld_version ..." --define "xrpld_release ..."`. The spec uses manual `install` commands to place files, disables `dwz`, and writes uncompressed RPM payloads while generating debuginfo packages.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Trivial Simple change with minimal effect, or already tested. Only needs one approval.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants