Skip to content

Make Dart native builds reproducible - #1815

Open
ethicnology wants to merge 1 commit into
payjoin:masterfrom
SatoshiPortal:verify-dart-native-reproducibility
Open

Make Dart native builds reproducible#1815
ethicnology wants to merge 1 commit into
payjoin:masterfrom
SatoshiPortal:verify-dart-native-reproducibility

Conversation

@ethicnology

@ethicnology ethicnology commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Dart consumers currently resolve the native wrapper's Cargo graph and inherit build paths from each machine. That makes published-package builds sensitive to local dependency resolution and prevents byte-for-byte reproducibility.

This PR:

  • tracks the production native/Cargo.lock and builds it with --locked;
  • keeps the workspace path overlay local-only and explicitly opts test helpers into development tests;
  • remaps package, output, Cargo, and Rustup paths in the Dart native build hook;
  • adds focused flag and artifact-check tests;
  • documents reproducibility and isolated consumer smoke-test procedures.

Deliberate non-goals:

  • no changes to the Dart public API or generated bindings;
  • no changes to the production feature set beyond making its dependency graph explicit and locked;
  • no full reproducible Android build in this repository.

Dart consumers need the published native wrapper to build from a stable dependency graph without leaking local paths into artifacts. Keep the production lockfile, pass locked builds through the hook, and normalize package, output, Cargo, and Rustup paths across isolated builds. Add focused checks and contributor guidance for reproducibility and consumer validation.
@coveralls

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 32084577387

Coverage remained the same at 86.718%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 16458
Covered Lines: 14272
Line Coverage: 86.72%
Coverage Strength: 343.5 hits per line

💛 - Coveralls

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.

2 participants