pub enum EventKind {
Show 36 variants
SessionOpened,
Fetch,
LockWait,
LockAcquired,
CommitPreserved,
BranchPreserved,
Push,
ChangeOpened,
ChangeDrafted,
DraftLifted,
DraftLiftedEarly,
DraftKeptForReview,
ChecksSettled,
ChangeDescribed,
ChangeCheck,
ChangeMerged,
BaseArrived,
MergeQueued,
MergeCompleted,
RecoveryAttested,
SyncConflict,
SessionClosed,
ReleaseProbed,
ReleaseAcknowledged,
ReleaseObserved,
BranchSuperseded,
BranchRetired,
GateRun,
ReviewCommentsRead,
ReviewReplyPosted,
StackBaseAssembled,
ChangeStandingsRead,
ChangeRetargeted,
ChangeReopened,
BaseMerge,
MergeArmed,
}Expand description
What an event says happened.
These are the kinds onevcs produces. A consumer merging several sources
reads each source’s own kinds; nothing here promises to name another
library’s.
A kind is retired by keeping it recognised and inert, never by deleting it.
A stream is a record, and this enum is what says whether a line of one can be
read at all: delete a variant and every line any earlier build wrote with it
stops parsing, in a build that has no way to know what it lost. That is not
hypothetical — gate-started and gate-verdict went with the host-run gate in
0.11.0, and 30% of the streams on the host that consumes this crate turned into
one refusal per line, most expensively in a status read that walks every stream
there is. So a kind nothing emits any more keeps its variant, documented as
retired and produced by nothing, and a reader goes on being able to say what
that line recorded.
The permissive read this crate’s stream readers go through is the other half of that rule rather than a substitute for it. It makes a kind this build has never had — one a later build wrote — cheap to pass over, which is the case no vocabulary here can cover. It cannot give back the meaning of a kind that was deleted, which is why the two retired above are a loss this crate carries rather than one it recovered.
Variants§
SessionOpened
A session was opened over a clone and worktree, on a pool slot or a run root.
Fetch
Objects were fetched, deliberately outside any exclusive section.
LockWait
Waiting on an identity’s lock; carries the identity, elapsed, and queue position.
LockAcquired
The identity’s lock was acquired.
CommitPreserved
Work was committed onto a preserved branch; carries the provenance kind.
BranchPreserved
A branch was put on its identity’s origin under its own name, without being
published; carries the branch, the identity, the origin URL, the commit, and
which of the three things onevcs preserve found to do.
Deliberately not Push, and that is the whole reason it
is its own kind. The one producer of push is a publication, so a reader
counting pushes to find publications must never meet a preservation — and a
preservation is the opposite of one: no change request is opened, no base is
touched, and the branch is exactly as recoverable afterwards as it was before.
Push
A branch was pushed.
ChangeOpened
A change request was opened; carries its URL and the host kind.
ChangeDrafted
A change request was opened as a draft, and this is why it is not ready;
carries its URL, the host’s identifier for it, its base, and the reason — its
kind, and every field of that kind: for awaiting-release the repository
whose release is awaited, which target of it, the reference the change is
pinned to, and the one line a person reads; for held that one line alone.
Beside ChangeOpened rather than instead of it: the
change request was opened, and the link from its URL back to the branch is
what that kind records. This one records the state it was opened in.
DraftLifted
The draft was lifted and the change request is open for review; carries its URL and the host’s identifier for it.
The reason is not repeated here: it is on the
ChangeDrafted this answers, and the publication
that lifts a draft is one carrying none — on green checks, early when they
never ran on the draft, or at once with the lifecycle off. onevcs change ready
emits the same kind, because it is the same lift asked for as a verb.
DraftLiftedEarly
A draft the publication opened while its required checks ran was lifted
before any of them had run on it, because the grace window elapsed and
the repository’s checks skip drafts; carries its URL, identifier and base,
the required checks that had not run, the grace window in seconds, and whether
the warning line was printed. Emitted beside the
DraftLifted every lift emits.
DraftKeptForReview
Green required checks left a change-open change whose approvals are required
a draft, for its own user’s review rather than the team’s; carries its URL,
identifier and base.
ChecksSettled
A publication’s watch saw every required check stop blocking; carries the
change request’s URL and identifier, the commit watched, the verdict —
passed, or passed-with-skipped where a required check concluded skipped —
and the skipped required checks by name.
ChangeDescribed
The change request’s description was replaced after it was opened; carries its URL, the host’s identifier for it, its base, the title where the description replaced it, and the artifact the body was stored as.
The body is not inlined: it is prose of unbounded size, and the stream bounds
payload text. The artifact is the record — onevcs artifact cat ID reads back
exactly what was written — and the event references it as every other large
piece of evidence is referenced.
ChangeCheck
A check moved; carries its name, whether it is required, the status transition, the conclusion, and its log as an artifact once complete.
ChangeMerged
The change request merged; carries its URL, the commit it landed at as sha
and as landing, and landed_at, when the base received it.
BaseArrived
One local invocation reached its actual base, carrying base, commit and ordered branches.
MergeQueued
The change request entered the host’s merge queue.
MergeCompleted
The merge the host had queued completed; carries the commit it landed at as
sha and as landing, and landed_at, when the base received it.
RecoveryAttested
Preserved work that carried an incomplete-step marker was verified and attested.
SyncConflict
The base moved under a publication and the bounded resolve-and-requeue did not converge.
SessionClosed
The session’s worktree and lease were released.
ReleaseProbed
An automated release target’s probe was run; carries the identity, the target, which form of probe it was, what it answered, the version where it answered one, and how long it took. A human-step target never produces one, and that absence is the observable proof that no probe ran for it.
ReleaseAcknowledged
Somebody recorded a release of a human-step target; carries the identity, the target, the version, the landing commit, the actor, and the version it superseded where it replaced one.
ReleaseObserved
A landing was released, the first time it was: its baseline passed for an automated target, its acknowledgement recorded for a human-step one.
BranchSuperseded
A branch was recorded as superseded by a retry whose landing reached the base; carries the identity, the branch, the branch that superseded it, that branch’s landing — a commit or a change request’s URL — and the labels its caller stamped.
A record and nothing else: the superseded branch is left exactly where it is.
What it changes is how the branch is classified — superseded-with-changes
where it still differs from the base, which only onevcs reclaim acts on.
BranchRetired
A finished branch was deleted everywhere this host holds it; carries the identity, the branch, the tip it was deleted at, the class and proof that permitted it, which verb or moment acted, and what was deleted and what was not — so a partial retirement names the holder a re-run still has to reach.
GateRun
One completed gate run of a publication attempt; carries which gate it was —
pre-push or required-checks — the attempt it belongs to, when it started
and ended, how long that was, its verdict, and for required checks every
required check with the times and conclusion the host reported.
Recorded from the run the publication makes anyway, never from a second one:
the push that executed the repository’s pre-push hook, and the watch of a
change request’s required checks. Its phase is the gate’s, so the producer
stamps it — integrate for pre-push, review for required-checks.
ReviewCommentsRead
A change request’s review feedback was read; carries its URL, how many
comments the read returned, whether nothing was new since the marker it was
read from, the digest of the marker to read from next (never the marker, which
grows with the change request), and what the host charged for it —
{graphql_points, rest_requests}, from the responses’ own figures.
ReviewReplyPosted
A reply to one review comment was posted, or found already posted under its key; carries the change request’s URL, the comment answered, the reply’s id and URL, whether it sits in the comment’s thread, the key, and whether it was already there so nothing was posted.
StackBaseAssembled
A stack base was assembled: a branch cut from a root and carrying a merge of
several parent branches, put on its origin with no change request; carries
the branch, its root, each parent with the head it was merged at or already
carried, the branch’s head, and whether it was created, advanced,
unchanged or conflicted.
Not Push, for the reason
BranchPreserved is not: the one producer of
push is a publication, and a stack base publishes nothing.
ChangeStandingsRead
Where a batch of one repository’s change requests stand was read; carries the
repository, how many were read, the change requests whose landing the read
recorded, and what the host charged, {graphql_points, rest_requests}.
ChangeRetargeted
A change request was moved onto another base, or found on it already; carries
its URL, the base it left and the one it targets, whether it moved
(retargeted or unchanged), and whether a description was written with it.
ChangeReopened
A closed change request was reopened over its restored base; carries its URL, the base branch restored on the origin, and the commit it was restored at.
BaseMerge
A publication decided whether to merge its moved base into the branch before
pushing it; carries the branch, the base, the decision (merged or
skipped) and because.
MergeArmed
A publication whose wait for the checks elapsed with none of them red left the host’s own merge armed on its change request, so it lands once the checks pass; carries the change request’s URL and the head commit armed.
Trait Implementations§
impl Copy for EventKind
Source§impl<'de> Deserialize<'de> for EventKind
impl<'de> Deserialize<'de> for EventKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for EventKind
Source§impl From<EventKind> for Kind
An envelope’s kind is open on the wire, and this crate’s closed vocabulary is
what it writes into it.
impl From<EventKind> for Kind
An envelope’s kind is open on the wire, and this crate’s closed vocabulary is
what it writes into it.
impl StructuralPartialEq for EventKind
Auto Trait Implementations§
impl Freeze for EventKind
impl RefUnwindSafe for EventKind
impl Send for EventKind
impl Sync for EventKind
impl Unpin for EventKind
impl UnsafeUnpin for EventKind
impl UnwindSafe for EventKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.