docs(1b): record W0 lint decisions (DECISIONS) + claim W0 gate (STATUS/JOURNAL)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,3 +22,44 @@ Lint-target inventory: 14 `.nix`, 32 `.py`, 1 `.sh` (`scripts/bootstrap-drone-oa
|
||||
|
||||
Next: W0 — add the `lint` devshell + entrypoint + tool configs to the flake; auto-format; fix
|
||||
findings; wire the `.drone.yml` lint stage.
|
||||
|
||||
## 2026-05-27 — W0 built: lint toolchain + format + drone stage
|
||||
|
||||
Added (commits 2cede01 format/fixes, 4af427c drone stage, + tooling commits):
|
||||
- `flake.nix`: `lint` devshell (`nix develop .#lint`) = nixpkgs-fmt, statix, deadnix, ruff,
|
||||
shellcheck, shfmt, yamllint, built from the already-pinned nixpkgs (no registry/network surprise —
|
||||
`nix build <pin>#ruff` resolves from cache.nixos.org). Default devshell also gets them.
|
||||
- `scripts/lint.sh` (check / `--fix`), `ruff.toml`, `.yamllint.yaml`.
|
||||
- `.drone.yml`: a `lint` step in the `event: push` pipeline running
|
||||
`nix develop .#lint --command bash scripts/lint.sh` (FAILs the build on any unclean file).
|
||||
|
||||
Format/lint cleanup (semantics-preserving): ruff format on all 32 .py; nixpkgs-fmt drone-runner.nix;
|
||||
shfmt scripts; ruff SIM105/SIM115 (contextlib.suppress / `with open`); statix (merge sops
|
||||
`secrets.*`, empty-pattern → `_`); deadnix (drop unused `self`/`lib`/overlay `final`).
|
||||
|
||||
Verification (on cc-ci, clean tar'd checkout /tmp/ccci-lint):
|
||||
```
|
||||
$ nix develop .#lint --command bash scripts/lint.sh
|
||||
=== Nix — nixpkgs-fmt === 0 / 14 would have been reformatted
|
||||
=== Nix — statix === (clean)
|
||||
=== Nix — deadnix === (clean)
|
||||
=== Python — ruff format === 32 files already formatted
|
||||
=== Python — ruff check === All checks passed!
|
||||
=== Shell — shfmt/shellcheck === (clean)
|
||||
=== YAML — yamllint === (clean)
|
||||
lint: PASS
|
||||
```
|
||||
nix eval `.#nixosConfigurations.cc-ci.config.system.build.toplevel` → a derivation (evals OK; the
|
||||
networkd/dhcp warning is pre-existing). Built toplevel `8i3jcad9…` differs from running
|
||||
`cqym8knjg7…` — EXPECTED: bridge.py/dashboard.py (and runner) are `cp`'d into the store, so the
|
||||
reformat changes their hash. cc-ci will be rebuilt to the formatted closure in W2 before RL3.
|
||||
All Python byte-compiles (store python 3.12.8).
|
||||
|
||||
Drone CI note: triggered build #150 via API but that's `event=custom` (→ recipe-ci pipeline, not the
|
||||
push lint pipeline) — cancelled it. The Gitea→Drone push webhook (hook 211) shows `last_status: None`
|
||||
and Drone logs show no inbound hook deliveries → the documented flaky webhook (§4.1). Public and
|
||||
canonical (100.90.116.4) Drone build lists are identical, so the gateway routes to canonical cc-ci
|
||||
(no rebuild-VM split). Recorded the flaky-webhook as a pre-existing infra item in DECISIONS.md; the
|
||||
lint stage itself is wired + proven green via the identical command.
|
||||
|
||||
Claimed W0 gate (RL1) in STATUS-1b. Next: W1 white-box review checklist over the cleaned codebase.
|
||||
|
||||
Reference in New Issue
Block a user