Skip to content

Document Ubuntu vs macOS reproducibility diagnosis (#1209)#1730

Open
vahid-ahmadi wants to merge 1 commit into
mainfrom
vahid-ahmadi/issue-1209-ubuntu-macos-diagnosis
Open

Document Ubuntu vs macOS reproducibility diagnosis (#1209)#1730
vahid-ahmadi wants to merge 1 commit into
mainfrom
vahid-ahmadi/issue-1209-ubuntu-macos-diagnosis

Conversation

@vahid-ahmadi
Copy link
Copy Markdown
Collaborator

Summary

  • Ubuntu is returning different results from macos #1209 reported PolicyEngine UK producing slightly different aggregates on ubuntu-latest vs macos-latest CI for the same dataset and version. The triage narrowed it to dict-iteration-order differences in apply_uprating's tree walk — only a limited subset of parameters were affected, but reproducibility-breaking.
  • A series of follow-on PRs have since rebuilt the affected uprating code path:
  • CI only runs on ubuntu-latest now, so we don't have a live cross-OS regression test. Persist the diagnosis at docs/book/validation/ubuntu-vs-macos.md so that, if cross-OS reproducibility regression resurfaces, the next person doesn't have to re-derive the root-cause shape.
  • Includes a sketched minimal regression test for the iteration-order class of bug, to be added once a cross-OS CI matrix is restored.
  • Pure documentation; no code changes.

Test plan

  • Markdown lints cleanly (cross-refs to PRs, MyST admonition).
  • Docs build job picks up the new page under validation/.

🤖 Generated with Claude Code

#1209 reported PolicyEngine UK producing slightly different aggregates
on ubuntu-latest vs macos-latest CI. The triage narrowed it to
dict-iteration-order differences in apply_uprating's tree walk
(closed fix attempt PR #1223).

A series of follow-on PRs since rebuilt the affected uprating code
path:

- #1254 added multi-year datasets and separated uprating into a
  discrete pipeline step;
- PRs #1543 / #1544 / commit 13a4ac7 rebuilt uprate_rent which was
  the primary visible site of divergence;
- #1523 skipped a redundant dataset copy in apply_uprating.

CI runs on ubuntu-latest only, so there's no live cross-OS test to
prove the issue is fully resolved. Persist the diagnosis as a known-
issue page so that, if reproducibility regression resurfaces, the
next person doesn't have to re-derive the root-cause shape.

Includes a sketched minimal regression test for reintroducing
deterministic ordering once a cross-OS CI matrix is restored.
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