Repository navigation
lint(unused): class f — nine orphans deleted, two tag-blind suppressions - #311
Merged
Merged
Conversation
The deletions (~170 lines): extensionsConfig.wrapAsStarlark; goast's encodeScope and resolveGoSource; the makeHeading test helper; migrate's parseEncryptionSystem (detection assigns enum constants from artifacts and the string enum unmarshals natively); the function provider's goToStarlark/starlarkToGo, superseded by the starlarkbridge/op.Convert cascade — a duplicated-logic divergence risk retired; the pkg provider's testActivation; and Subgraph.addEdge (edges materialize through the promise/resource path). Per the ruling: these features had materialized and lost their call paths in the framework refactor; history keeps them. The suppressions: indexAgeOf and unknownIndexAge are the platform staleness gate's measurement and sentinel, called by the apt and pacman leaves in linux_managers_linux.go — code the darwin analysis never compiles. Not dead, just invisible; suppressed citing exactly that. unused 11 -> 0. The repository's full lint output is now exactly the 61 chartered complexity findings; every other linter is at zero. make vet and full make test pass; gofmt clean. Plan: docs/plans/lint-unused.md.
David-Noble-at-work
added a commit
that referenced
this pull request
Aug 12, 2026
Ruling 2026-08-12: bindgen will not work well enough; remove it whole. Git history keeps it — the rationale this repository recorded when PR #311 deleted dead code. The prototype generated Starlark bindings from cobra CLI source: an AST extractor enumerated commands and flags (144 commands and 272 flags from docker-cli v27.4.1 in its one recorded run, 2026-01-11), and a generator turned the schema into receiver scaffolding. Its own README documents the ceiling that ended it: AST extraction yields syntax without semantics — no positional arguments, no valid flag combinations, wrong invocation forms — so every generated command needed human refinement while fifteen hand-written ones were production ready. The successor is AI-driven authoring against vendor documentation: lore onboard today, the licensing draft's authoring-CAG strategically, which gets the semantics extraction structurally cannot. The tree was already dead by every mechanical measure, discovered when audit phase 1b-iii went to decompose extractFromFunction: the extractor, its test, and cmd/main.go all carry //go:build ignore; the extractor imports internal/bindgen, which does not exist; nothing imports any of it; and go mod tidy had already dropped golang.org/x/tools because its only consumer is ignore-tagged. The two bare nolint directives in the extractor suppressed nothing — golangci-lint never loads ignore-tagged files. Phase 1b-iii of issue #365 is thereby resolved by deletion rather than decomposition; bare nolint directives across the tree drop 5 -> 3, all of them 1b-iv/1b-v scope. Two audit-statement corrections ride in the plan: the claim that no target path was excluded from the linter was false in effect for these two functions (a build tag excludes as thoroughly as config, and the audit never checked tags), and the repo-wide gocognit live-finding count was 9, not 11. One more prediction fell to a guard during execution, and is recorded in the plan: the verification bar said go mod tidy would be diffless, but golang.org/x/text reclassifies from direct to indirect — a prototype file was its last direct importer. Nothing leaves the graph; go.sum is unchanged; the tidied go.mod rides here. The learnings are preserved on issue #215, which this closes: the extraction results, the README's comparison-table verdict, and this commit's SHA for retrieval of any of it. Verified before committing: no prototype package in go list, zero bindgen references in Go source, exactly 3 bare nolint directives, go mod tidy converged. The suite loses one green package (prototype/bindgen/internal) that nothing imports. Plan: docs/plans/remove-bindgen-prototype.md. Issues: #215 (closed by this), #365 (phase 1b-iii) Co-authored-by: David Noble <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Final rung of the 4b-3 ladder, per the delete-all ruling. Nine orphaned symbols removed (~170 lines) — including the duplicated Go↔Starlark conversion pair superseded by the op.Convert cascade, and two functions whose features materialized but lost their call paths in the framework refactor.
indexAgeOf/unknownIndexAgesuppressed citing their Linux-tagged callers (the darwin analysis never compiles them). unused 11 → 0: the repo's full lint output is now exactly the 61 chartered complexity findings. Vet + full suite green. Plan:docs/plans/lint-unused.md.