Record dead code audit findings
This commit is contained in:
59
docs/roadmap/audit/11-deadcode.md
Normal file
59
docs/roadmap/audit/11-deadcode.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Dead code and obsolete functionality audit
|
||||
|
||||
Reviewed baseline: `083bc83` on `main`. The review considered supported public
|
||||
facades and CLI commands, internal package callers, tests and benchmarks,
|
||||
maintained examples, documented decisions, and build-specific uses. Public
|
||||
symbols were not classified as unused merely because this repository does not
|
||||
call them. No production code or tests were changed.
|
||||
|
||||
The local code graph and a source reference scan identified candidates, which
|
||||
were checked against current source and documentation. The graph contained a
|
||||
stale build-function entry and excluded `internal/build` during indexing, so
|
||||
its reachability results were not treated as conclusive. The scan is a
|
||||
candidate-finding aid rather than a proof of whole-program reachability.
|
||||
`go vet ./...` and the compiled public API/dependency-boundary check passed
|
||||
offline. No dedicated dead-code analyzer was installed.
|
||||
|
||||
## 1. Committed-selection identity wrapper has no callers
|
||||
|
||||
**Relevant code:** [FromCommittedSelection](../../../internal/releaseidentity/identity.go).
|
||||
The repository contains no call or function-value reference to this exported
|
||||
internal wrapper, including in tests and maintained examples. It creates a
|
||||
committed-path resolver and delegates to the private `fromCommittedSelection`.
|
||||
The live `FromCommitted` path calls that private function directly with the
|
||||
resolver it already used to select the directory. The independently used
|
||||
`ResolveCommittedSelection` serves the CLI's asset-directory selection and
|
||||
must not be confused with the unused wrapper.
|
||||
|
||||
Because Go's `internal` import restriction prevents ordinary external consumers
|
||||
from importing this package, this is not a root-facade compatibility removal.
|
||||
No documented retention or future use was found. Consider removing only the
|
||||
unused wrapper after confirming that no maintained in-tree integration needs
|
||||
it. Preserve the private implementation and the live selection APIs; the
|
||||
wrapper's absence does not imply that committed identity derivation is dead.
|
||||
|
||||
## 2. Local tag inspection helper is used only by its own test
|
||||
|
||||
**Relevant code:** [InspectLocalTag](../../../internal/git/tag.go), its only
|
||||
call in [TestTagOperationsAcceptFullSlashContainingRefs](../../../internal/git/source_test.go),
|
||||
and the live local guard in [candidate.Recheck](../../../internal/candidate/check.go).
|
||||
|
||||
The helper checks that a local ref identifies the captured annotated tag
|
||||
object, but no production caller invokes it. `candidate.Recheck` independently
|
||||
performs the corresponding object-ID and type checks before publication. The
|
||||
test calls the helper directly and then separately inspects the tagged source;
|
||||
the public publication guard is exercised through the candidate and
|
||||
publication tests. The helper is in an internal package, not the supported Go
|
||||
facade. No documented reason to retain this separate test-only path was found.
|
||||
|
||||
Consider removing the unused helper and its direct test call while retaining
|
||||
the test's full-tag and source assertions and the live publication-guard
|
||||
coverage. Alternatively, evaluate using the existing helper in the live guard
|
||||
as part of the [shared Git inspection work](10-equivalence.md#1-source-state-observations-are-independently-implemented),
|
||||
provided error behavior, guard timing, and the exact captured-object check are
|
||||
preserved. Do not remove the live guard merely because the duplicate is unused.
|
||||
|
||||
The `CandidateTree` accessors and root-scope constructor are also used by tests
|
||||
or benchmarks, but those uses exercise meaningful tree behavior; this review
|
||||
does not recommend removing them solely because production uses a different
|
||||
entry point.
|
||||
Reference in New Issue
Block a user