Skip to content

ci(release): fail the CloudKit schema check only on what Production lacks - #3800

Merged
datlechin merged 1 commit into
mainfrom
fix/release-cloudkit-schema-subset-check
Oct 22, 2026
Merged

datlechin merged 1 commit into
mainfrom
fix/release-cloudkit-schema-subset-check

Conversation

@datlechin

Copy link
Copy Markdown
Member

Summary

  • export-cloudkit-schema.sh --check-deployed exports Production and runs scripts/release/schema.py covers, which fails only when the snapshot has a record type, field, field type, index, role or grant that Production lacks or types differently. What only Production has passes: a build never reads a field a newer line deployed.
  • release.yml app runs --check-deployed. v0.82.1 failed there because Production has Connection.sshRouteJson (feat(sync): carry the Mac's SSH route to iPhone and iPad #3769) and release/0.82's snapshot does not.
  • --check stays an exact diff for refreshing the snapshot. ProductionSchemaParityTests reads the snapshot file, not the script, and is unchanged.
  • data-sync-storage.md names the release mode.

Test plan

  • test_schema.py, 18 tests on the checked-in snapshot: a type, field, index, grant or role only Production has passes; one only the snapshot has, or a changed field type, fails with its name. Parser cases cover comments, quoted names, ENCRYPTED, LIST<>, NUMBER PREFERRED AS and multi-permission grants.
  • With a stubbed xcrun: release/0.82's snapshot against main's (Production) passes --check-deployed and fails --check; a Production without sshRouteJson fails --check-deployed with Connection.sshRouteJson: not in production.
  • shellcheck and actionlint pass.

@datlechin
datlechin enabled auto-merge (squash) October 22, 2026 19:28
@datlechin
datlechin merged commit f1dfc85 into main Oct 22, 2026
8 checks passed
@datlechin
datlechin deleted the fix/release-cloudkit-schema-subset-check branch October 23, 2026 00:49
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