Programming · free software · the open webSubscribe via RSS

Why Should Documentation Link to a Specification Version?

From the earlier reference collection. Read the current software blog.

Pin the reference revision behind a data-format explanation so readers can check the exact field definitions and changes.

Avoid a moving target

A specification can change after a project documents its behavior. If a page links only to a general landing page, a reader may see a newer field definition than the one the software implements. Link to a dated revision, release, or commit when the specification offers one, and identify that version in the prose. This gives reviewers a stable basis for checking a claim.

Versioning matters even when the format appears simple. A field may become optional, acquire a new permitted value, or gain a clarified meaning. If documentation says a field is required, readers should be able to determine which revision supports that statement rather than relying on a current page that may have changed.

Tie claims to specific definitions

When explaining a field, name the file or object that contains it, the field name, and the rule that matters to your implementation. For a transit feed, for example, a project might explain how it reads stop_times.txt and link the exact GTFS schedule reference revision it used. The GTFS reference defines dataset files and field definitions and is revised over time, so a revision label helps readers verify the intended schema.

Do not use the link as a substitute for describing your own behavior. The project may support only part of a specification or apply additional validation. State which portions it consumes, which it ignores, and whether it accepts extensions. A pinned reference explains the upstream rule; the project documentation explains its implementation.

Preserve provenance in code and data

Record the specification version near the parser, validation rules, or generated dataset metadata. That makes it easier for a maintainer to connect code changes to the documented reference. If a data source declares its own format version, distinguish that from the revision of the specification document. They may not advance together.

A useful example is a changelog entry that says a parser now accepts a field introduced in a named format release while continuing to consult a particular reference revision. This tells a reader whether a failure comes from an unsupported feature, an outdated dataset, or a project defect. Avoid inventing a version relationship when the source does not provide one.

Plan for upgrades

When adopting a newer specification revision, compare the relevant definitions and list changes that affect the project. Update examples, validation, and compatibility notes together. If the project has not evaluated a newer revision, say which revision its behavior is based on and invite readers to treat newer features as unverified rather than silently assuming compatibility.

A precise link has a practical payoff: users can reproduce a schema decision, maintainers can review a change against the same text, and downstream developers can tell whether their data falls within the documented scope. Keep the link stable and the revision visible beside each substantial claim.

References

  1. GTFS Schedule Reference

Suggest a correction · All posts