Skip to content
zit Erratum — draft-fossil-sync-protocol-01 §9
Login

Erratum — draft-fossil-sync-protocol-01 §9

Document draft-fossil-sync-protocol-01
Section 9 — Pragmas (the defined-name lists and the extension-pragma production)
Type Editorial (the extension documents' pragma names are nowhere listed where a reader of this draft looks for pragma names)
Status Applied in draft-fossil-sync-protocol-01 (2026-10-17)
Reported 2026-10-17
Submitter Dan Mestas
Found via Writing draft-fossil-horizon-00 §6, which defines six pragmas and relies on this section's ignore rule

1. Summary

§9 lists the pragma names the reference implementation defines in each direction and reserves the extension-pragma production for any other name. Two extension documents, draft-fossil-sparse-cone-00 and draft-fossil-horizon-00, define pragmas and rely on the ignore rule for their degradation story, but a reader of this draft has no way to learn that those names exist or where they are specified.

2. Location

§9, after the first paragraph ending "and link."

3. The reference behavior

Unchanged. Fossil ignores every name outside its own lists, which is exactly what the extension documents depend on. This erratum lists the names; it defines nothing.

4. Impact

Editorial. No behavior changes. A reader implementing only this draft is unaffected; a reader implementing an extension finds the pointer.

5. Correction

§9, new second paragraph:

    version, uv-push-ok, uv-pull-only, ci-lock-fail, avoid-delta-
    manifests, and link.
+
+   Extension documents define further names, which a receiver that does
+   not implement them takes down the ignore path above: cone and cone-
+   not (draft-fossil-sparse-cone, client-to-server); horizon, horizon-
+   structural, horizon-seed, and horizon-mergebase (draft-fossil-
+   horizon, client-to-server); horizon-below, horizon-seed, horizon-
+   mergebase, and horizon-served (draft-fossil-horizon, server-to-
+   client).  Each is an extension pragma in the sense of the production
+   below and is specified by the document that names it.

6. Rationale

The defined-name lists are where an implementer looks to learn which pragmas exist. Keeping the extension names out of the "defined" lists preserves the reference behavior exactly; naming them in a separate paragraph tells the reader where to go. horizon-seed and horizon-mergebase appear in both directions by design: the request names what the client holds or asks, the reply names what the origin sends or found.

7. Verification