Artifact 8ebfcfad8a9216a07c0c2db18b44e31b4c8aca937b26f34cd292103faa5c0dc3:
- File projects/fossil/suite-brief.md — part of check-in [3ba2975e8e] at 2026-07-07 14:05:17 on branch trunk — Split RFC workflow into neutral core and Fossil project pack (user: dmestas, size: 3348) [annotate] [blame] [check-ins using]
Fossil RFC Suite Brief
Objective
Produce a three-document RFC suite that specifies the Fossil distributed version control system as implemented in the current Fossil source tree:
- The Fossil Distributed Version Control System: Artifact Format
- The Fossil Delta Format
- The Fossil Distributed Version Control System: Sync Protocol
The governing standard is implementability: a competent programmer who has never seen the Fossil source must be able to build a conformant, interoperable implementation from the suite alone.
Required clean-room capabilities
Each document must let a reader carry out every operation it governs.
Artifact Format
A clean-room implementer must be able to:
- parse every structural artifact type the document covers,
- verify artifact naming and checksum rules,
- apply card ordering and multiplicity rules correctly,
- distinguish content artifacts from structural artifacts,
- rebuild the full file set of a delta manifest.
Delta Format
A clean-room implementer must be able to:
- parse the delta byte format,
- apply a delta to a source artifact,
- produce a valid delta from source and target content,
- validate trailer and bounds behavior.
Sync Protocol
A clean-room implementer must be able to:
- open a sync session,
- authenticate,
- exchange content,
- resolve phantoms,
- complete a clone,
- converge on a common artifact set,
- terminate the session correctly.
Cross-document structure
- Artifact is foundational and owns the core artifact vocabulary.
- Delta defines the delta encoding referenced by Artifact and Sync.
- Sync depends on the artifact and delta rules rather than redefining them.
- Cross-references should be narrow and explicit; do not duplicate foundational rules just to avoid a citation.
Suite-wide Fossil constraints
- Preserve every construct needed to read existing repositories, including old SHA-1 artifacts.
- Preserve documented historical relaxations that a reader must tolerate, such as the technote card-order exception when confirmed by source.
- Treat the Sync document as the current wire protocol specification.
- Keep the current clone path (
cfileplusclone_seqno); omit the older version-2 uncompressedsend_fileclone path. - Omit login handling older than Fossil 2.27, but record the version/date boundary in the sync text after checking the implementation path.
- The version pragmas (
client-version,server-version) matter because they expose the protocol generation a peer is speaking.
Deliverable boundaries
- Public suite outputs are the Kramdown source draft and the rendered IETF text draft.
- XML is a build intermediate, not part of the public suite output.
- The suite should read as enduring protocol and format documentation, not as a process diary.
- The only permitted transformation/ratification provenance sentence is the mandated opening sentence in the Artifact abstract.
Editorial bias
- Self-contained beats terse if the tradeoff affects interoperability.
- Artifact and Delta must stay readable for long-term repository access.
- Sync must specify the exchange algorithmically, not merely narrate what pull/push usually do.
- After drafting the suite, perform a cross-document pass for repetition, mismatched terminology, and missing capability coverage.