Skip to main content

OLDEST_READABLE_VERSION

Constant OLDEST_READABLE_VERSION 

Source
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.

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.