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. 12 to 13 added the row’s retirement, which appears only
where a row holds one, so a version 12 row reads as one nothing classified — which
is what it was, since that build had no classification to record. 13 to 14
added fields that appear only when they hold something, so a version 13 document
reads as one whose change requests were opened before the lifecycle drafted any,
whose checks never change on a lift, whose host declares its required checks by
the checks it was seeded with, and whose policy leaves approvals and drafts at
their defaults — which is what that build published under. 14 to 15 added the
session’s conflict, which appears only where a session holds one, so a version 14
document’s sessions read as sessions that opened clean — which is what they were,
since that build opened none over a merge. 15 to 16 changed no field and no
meaning, as 9 to 10 did not: every failure kind a version 15 document can hold is
spelled here as it was there, so it reads unchanged. 16 to 17 added the
retirement’s cause, which a version 16 retirement reads as null — which is what it
said, since that build named no read that failed. 17 to 18 added two fields that
appear only when they hold something, so a version 17 document’s checks read as
checks whose completion that build never recorded, and its merges as merges whose
time it never recorded — which is what they were. 19 to 20 added three fields
that appear only when they hold something, so a version 19 document reads as a
host whose change requests carry no review feedback and that has posted no reply —
which is what that build could hold. 20 to 21 added four more of that kind, so a
version 20 document reads as a host on which nobody closed or deleted anything, whose
checks are its change requests’ own, and which has answered no call — which is what
that build recorded. 21 to 22 added three host fields of that kind and one field
of a failed publication, so a version 21 document reads as a host that requires no
up-to-date branch, allows auto-merge and holds no armed merge, and as publications
none of which left a merge armed — which is what that build could do. 22 to 23
added three host fields of that kind, so a version 22 document reads as a host whose
checks hold still between readings and that reports nothing running on any head
beyond its checks — which is what that build could answer. 23 to 24 added a word a
ledger entry may name and no field, so a version 23 document reads as it was — a
build that could not be asked which head merged recorded no such call.
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.