diff --git a/.gitea/workflows/fuzz.yml b/.gitea/workflows/fuzz.yml index 5042b81..ef4334b 100644 --- a/.gitea/workflows/fuzz.yml +++ b/.gitea/workflows/fuzz.yml @@ -1,20 +1,16 @@ -# Fuzz smoke, Go. A nightly time-boxed run of the fuzz targets, and a hand -# dispatch when a change asks for it. +# Fuzz smoke, Go. Dispatched by hand when a change asks for it. # # Fuzzing is exploration, so it never belongs to the push pipeline; a 30 second -# smoke per target, run nightly, is the compromise that catches a new crash -# within a day without holding the shared box. The targets run the seeds and -# whatever the corpus has gathered; a failure leaves its crashing input in -# testdata/fuzz, which the ordinary suite then reproduces on every push. +# smoke per target on a hand dispatch checks a change without holding the +# shared box. The targets run the seeds and whatever the corpus has gathered; a +# failure leaves its crashing input in testdata/fuzz, which the ordinary suite +# then reproduces on every push. # # Every step is one command, so the step that fails is the gate that failed. name: Fuzz on: workflow_dispatch: - schedule: - # Nightly at 03:30 UTC, after the race sweep has had the box first. - - cron: "30 3 * * *" env: # One core: parallelism buys no speed here and costs memory the box does not have. diff --git a/.gitea/workflows/race.yml b/.gitea/workflows/race.yml index c9c6829..9635f71 100644 --- a/.gitea/workflows/race.yml +++ b/.gitea/workflows/race.yml @@ -1,20 +1,16 @@ -# Race, Go. Dispatched by hand and swept nightly on a schedule. +# Race, Go. Dispatched by hand. # # The race detector roughly doubles both time and memory, which the shared runner box # cannot afford on every push. Locally it belongs to `just gates`, which runs it once -# per task; here it is an explicit decision rather than a routine. The nightly -# schedule runs on the repository's default branch, so it sweeps the released -# line; development carries its race gate on every push through `just gates` -# and the hand dispatch when a change asks for one. +# per task; here it is an explicit decision rather than a routine, a hand dispatch +# when a change asks for one. Development carries its race gate on every push through +# that local gate. # # Every step is one command, so the step that fails is the gate that failed. name: Race on: workflow_dispatch: - schedule: - # Nightly at 03:00 UTC, the quietest hours of the shared box. - - cron: "0 3 * * *" env: # One core: parallelism buys no speed here and costs memory the box does not have. diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index b52a703..a407cc9 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -2,8 +2,8 @@ # # The gates are the ones the justfile's `gates` recipe runs, minus race: the shared # runner box cannot afford the race detector on every push. Race has its own -# pipeline, dispatched by hand and swept nightly, and the local `just gates` -# runs it once per task. The box is one core and 2 GB beside Gitea, so +# pipeline, dispatched by hand, and the local `just gates` runs it once per +# task. The box is one core and 2 GB beside Gitea, so # parallelism is bounded on purpose and everything runs in one job. Extra jobs would # duplicate the checkout, the Go setup and the dependency download three times without # buying any parallelism. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ed01415..da7f355 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -115,8 +115,8 @@ Workflows live in `.gitea/workflows/` and run on the project's own runners: | Workflow | Trigger | What it does | |---|---|---| | Test | push or pull request to `development` | format check, vet, modernisation, build, the test suite with the coverage floor, the toml-test compliance suite | -| Race | `workflow_dispatch`, plus a nightly schedule | the suite under the race detector, the same race gate the local `just gates` runs | -| Fuzz | `workflow_dispatch`, plus a nightly schedule | a 30 second fuzz smoke per target over the seeds and the gathered corpus | +| Race | `workflow_dispatch`, by hand | the suite under the race detector, the same race gate the local `just gates` runs | +| Fuzz | `workflow_dispatch`, by hand | a 30 second fuzz smoke per target over the seeds and the gathered corpus | | Release | a `v*` tag | tag validation, format, vet, modernisation, build and the test suite with the coverage floor, then the Gitea release created from the `CHANGELOG.md` section; no race detector | The local equivalent is `just gates`, which is the same set plus the race diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index a8d0132..1a90036 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -46,7 +46,7 @@ prints the same list. | `just install` | builds, then copies the binary into `~/.local/bin` (`BINDIR` overrides) | | `just uninstall` | removes the installed binary | | `just clean` | removes `bin/` and `coverage.out` | -| `just cross` | cross-compile smoke of the library and the command for arm64, loong64, riscv64 and the browser and edge runtimes; nightly convenience, not a gate | +| `just cross` | cross-compile smoke of the library and the command for arm64, loong64, riscv64 and the browser and edge runtimes; a hand-run convenience, not a gate | | `just release-check X.Y.Z` | the release pre-flight: the branch, a clean tree, a sync with origin, the gates, and a CHANGELOG section ready to release | | `just docs-drift` | compares the toml-test counts the documentation quotes with a live suite run | @@ -101,8 +101,8 @@ pipeline. | Workflow | Trigger | What it does | |---|---|---| | `test.yml` | push or pull request to `development` | format check, vet, modernisation, build, the test suite with the 80 percent coverage floor, then the toml-test compliance suite | -| `race.yml` | `workflow_dispatch`, plus a nightly schedule at 03:00 UTC | the suite under the race detector, the same race gate `just gates` runs locally; the nightly schedule runs on the default branch, the released line | -| `fuzz.yml` | `workflow_dispatch`, plus a nightly schedule at 03:30 UTC | a 30 second fuzz smoke per target over the seeds and the gathered corpus | +| `race.yml` | `workflow_dispatch`, by hand | the suite under the race detector; the same race gate `just gates` runs locally | +| `fuzz.yml` | `workflow_dispatch`, by hand | a 30 second fuzz smoke per target over the seeds and the gathered corpus | | `release.yml` | a `v*` tag | tag validation, then format, vet, modernisation, build and the test suite with the coverage floor, then the Gitea release from the CHANGELOG section. No race detector: race never runs on a push path, and the local `just gates` raced the tree before the tag was cut | ## Releases diff --git a/justfile b/justfile index bbd8b9b..b06583f 100644 --- a/justfile +++ b/justfile @@ -100,7 +100,7 @@ toml-test: build coverage-html: test go tool cover -html=coverage.out -o coverage.html -# Cross-compile smoke: the library and the command build for the foreign architectures and the browser and edge runtimes; not a gate, it is a nightly convenience and runs std-lib only. +# Cross-compile smoke: the library and the command build for the foreign architectures and the browser and edge runtimes; not a gate, it is a hand-run convenience and runs std-lib only. cross: GOARCH=arm64 go build ./... GOARCH=loong64 go build ./...