Skip to content

Document the make() reproducibility contract (#197)#198

Open
dimitri-yatsenko wants to merge 1 commit into
mainfrom
docs/197-make-contract
Open

Document the make() reproducibility contract (#197)#198
dimitri-yatsenko wants to merge 1 commit into
mainfrom
docs/197-make-contract

Conversation

@dimitri-yatsenko

Copy link
Copy Markdown
Member

Closes #197.

Documents the make() reproducibility contract — the five rules that make a computed row's derivation self-contained and reproducible — in the relational workflow model's own vocabulary (computed results, reproducibility, the FK DAG, table tiers, the read/write boundary).

Changes

  • reference/specs/autopopulate.md — new §4.3 "The make() reproducibility contract" stating all five rules (populate-only; one entity per call in isolation; read only the key-restricted upstream cone; write to self/Parts with fan-out writes carrying their source; no result-affecting make_kwargs), plus the one-line read from self.upstream, write to self frame and an honest enforcement note (2.3 provides the self.upstream / Diagram.trace read surface that makes the contract easy to follow and inspect; the framework does not enforce it at runtime). Reconciles the existing "Upstream-only convention" and make_kwargs anti-pattern notes to cross-reference the contract, fixes the stale "a future release may programmatically enforce…" wording, and renumbers §4.4–4.6.
  • explanation/computation-model.md — a "Why the contract matters" note under "The make() Contract": the read/write boundary as the organizing idea, tied to the Computed (reproducible from within the pipeline) vs. Imported (reads untracked sources, records source identity) tier distinction.

Notes

  • Deliberately avoids the term "provenance" — this documents the contract in the model's native language. (The separate retirement of the strict_provenance framing is handled in its own PR, matching datajoint-python's strict_provenance removal.)
  • Cross-links and anchor slugs verified; strict_provenance is not referenced.

Add the make() reproducibility contract (the five rules) to the docs,
framed in the relational workflow model's own vocabulary — computed
results, reproducibility, the FK DAG, table tiers, and the read/write
boundary.

- reference/specs/autopopulate.md: new §4.3 "The make() reproducibility
  contract" listing the five rules with the "read from self.upstream,
  write to self" frame and an honest enforcement note (2.3 provides the
  self.upstream / Diagram.trace read surface; the framework does not
  enforce the contract at runtime). Reconcile the existing upstream-only
  and make_kwargs notes to cross-reference the contract; fix the stale
  "a future release may enforce" wording. Renumber §4.4–4.6.
- explanation/computation-model.md: conceptual note on why the read/write
  boundary yields self-contained, reproducible results, tied to the
  Computed vs. Imported tier distinction.

Closes #197.
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.

Document the make() reproducibility contract (the five rules)

1 participant