pub const OLDEST_READABLE_VERSION: u32 = 2;Expand description
The oldest document version this build reads.
Every version from here to STATE_VERSION is read and carried forward on the
way in, which is how onevcs’s own registry document treats its older
versions: what separates a readable older version from a refused one is whether
its every field still means here what it meant there. 2 to 3 added a field
and changed none, so a version 2 document reads as one whose change requests
were opened with no body — which is what they were; 3 to 4 added two the same
way, so a version 3 document reads as one whose preserved rows say nothing about a
hold or a line count, which is what they said. 4 to 5 added one that every row
answers rather than one that appears when it holds something, so a version 4
document’s rows are carried forward as the answer that list was: preserved work
nobody published, which is work that did not land. 5 to 6 added two that
appear only when they hold something, so a version 5 document’s checks read as
checks whose commit and address that build never recorded — which is what they
were, and the one thing that must not be filled in from the change request’s own
head. 6 to 7 added two more of that kind, so a version 6 document reads as one
whose change requests were opened before this crate could draft one — which is what
they were: no draft reason recorded for any of them, and no lift ever asked for.
7 to 8 removed two from each identity, and a version 7 document reads past
them: an identity is its origin and its gate here as it is in onevcs, and the two
keys beside them are ones this build has no opinion on. 8 to 9 gave every
draft reason a kind, and a reason written without one is read as the one kind
there was — awaiting-release, whose four fields it carries unchanged — which is
drafts_of_any_version’s whole job; the descriptions beside it are absent from a
document written before them, which is the answer, since that build could describe
nothing. 9 to 10 changed no field and no meaning: every failure kind a version 9
document can hold is spelled here as it was there and means what it meant, so it
reads unchanged and needs no carrying forward beyond its version. 10 to 11 added
one that appears only when it holds something, so a version 10 document’s preserved
rows read as rows saying nothing about an origin — which is what they said, since
that build had no verb that could put a branch on one. 11 to 12 added the
labels, which appear only where a session was opened with some, and the two row
fields that carry them, which a version 11 row reads as absent: a session nobody
labelled, and a row that names no session — which is what that build’s rows said,
since it recorded neither.
1 is refused rather than read for the opposite reason: it describes a provider
that could not publish, and every session in it would read back as open — a
wrong answer where a journey asserting on a session it had closed needs a
refusal.