Repository navigation
Conversation
|
Reviewed and verified locally. Green at d1c1abc, 5/5. This is the one in the batch that removes an actual divergence rather than a duplicate, and it is worth more than its line count suggests. Before it, I checked the obvious risk, that making
Separate from this change, something worth knowing about one of the files it touches. Good to merge. |
|
Heads up: the other five in this batch are on main now, and #2772 went in just ahead of this one. Both PRs rewrite the same two authority lines in The conflict is confined to the ledger metadata. Everything that makes this PR worth having, the Only
The correct values are neither, so please do not hand-resolve that hunk. Rebase onto main, take main's side of those lines, then let the tool recompute: python3 Tools/parity_ledger.py --refresh-derivedPer Nothing here reflects on the change itself. It is the strongest one in the batch and the review above stands; it is purely the cost of two PRs touching the same generated file. Ping me once it is rebased and I will take it straight in. |
Regenerate parity authority from the merged declarations while retaining the production ZIP writer and archive regression coverage. Refs #2708
What this PR does
BackupSettingsCodecTestexercised a duplicate ZIP writer that no production export called. Route AndroidexportTothrough the context-free stream writer and test the same archive construction used at runtime.The copy stays inside the existing Room write transaction and output-stream scope. The writer returns the copied database byte count used for restore-ceiling warnings, preserves database/settings/manifest entry order, and finishes the ZIP before verification. Tests cover exact UTF-8 manifest/settings payloads, a readable central directory, database-only byte accounting, legacy and manifest-only shapes, restore round-trips, and propagated output failures with cleanup.
Android-only JVM/SAF extraction: the container entries, settings whitelist, provenance payload and database schema are unchanged; no Swift storage or analytics change is needed. Required derived parity metadata accompanies the production call-graph change.
Type of change
How it was tested
BackupSettingsCodecTestmethods and the changedBackupSyncFileIoTestarchive round-trip pass against extracted production writer/staging/codec code, real ZIP/file I/O and JSON, with verbatim production entry-name and hosted-card constants. This does not compile Android Context/Room/SAF or exercise a live database transaction.d1c1abc9ff7644bf63dc418761359ae01f81c17d, Android CI compiled the complete app and built the debug APK (4m 35s), then passed the fulltestFullDebugUnitTestsuite (1m 53s). No warnings name the changed production or test files. Individual JVM test counts are not emitted by this workflow.Checklist
docs/CONTRIBUTING.mdRelated issues
Refs #2708