1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
[]
= "onevcs"
# The one version source in this repository. release-plz maintains it; maturin
# reads it through `dynamic = ["version"]` and scripts/npm-build.mjs parses it out
# of this file. Never write a version anywhere else.
= "0.2.2"
= true
= true
= true
= true
= true
= true
= "Version control and remote-host abstraction for agent workflows: host-neutral change requests, sessions, and a rules system."
= "README.md"
= ["cli", "git", "github", "vcs", "agent"]
= ["command-line-utilities", "development-tools"]
# What a consumer receives: the sources, the manifest, and the crate's readme.
# release-plz decides this package changed by diffing its **packaged files**
# against the last release, so a change to the suite or the workspace docs
# deliberately does not cut a release on its own.
= ["src/**/*.rs", "Cargo.toml", "README.md"]
[]
= "onevcs"
= "src/lib.rs"
[[]]
= "onevcs"
= "src/main.rs"
[]
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
# The bound on a git command terminates its whole process group, so a wedged hook
# cannot outlive the push it was gating. There is no portable spelling for that.
[]
= { = true }
# A journey that supplies implementations runs in-process, because the binary
# deliberately has no way to select a backend — so there is no subprocess whose
# stderr could be captured, and asserting what a user is told means redirecting
# this process's own descriptor.
[]
= { = true }
[]
= { = true }
# The parser the honesty journey drives `run_with` with, which is the same one the
# binary uses.
= { = true }
# The occupancy journeys take a session's advisory lease the way a second process
# does — the same lock, from outside the binary, rather than a stand-in for one.
= { = true }
= { = true }
# The journeys read the binary's own NDJSON stream back, which is the surface a
# consumer meets rather than an internal the suite could reach around.
= { = true }
# The test implementations of this crate's own two interfaces, so one publication
# journey can run against them and against Git + GitHub and the two streams be held
# to each other. A dev-dependency cycle, which Cargo allows and `cargo publish`
# strips: nothing in the packaged crate depends on it.
= { = "../onevcs-testing" }
# The release workflow, parsed as the YAML Actions reads rather than grepped, so
# the paths a release archive names are the ones the suite checks exist.
= { = true }
= { = true }
# The end-to-end journeys: they spawn the compiled binary as a subprocess, so they
# are their own target (`just test-e2e` runs it alone) while `just check` still
# runs them with everything else.
[[]]
= "e2e"
= "tests/e2e/main.rs"
# The real-backend tier: real git against a real remote and the real GitHub API.
# Its own binary so `just test` and `just gate` can exclude it by name — an
# ordinary gate stays offline and credential-free — while `just smoke-real` runs
# it. Excluded by name rather than by `#[ignore]`, so no journey here is ever a
# skipped test.
[[]]
= "smoke"
= "tests/smoke/main.rs"