Select module files with ancestor boundary lookups
This commit is contained in:
@@ -32,7 +32,11 @@ contents; the Go-only path does not enumerate the tree.
|
||||
`CandidateTree` keeps the full committed repository lookup separate from the
|
||||
ordered file input set. The selected module's committed regular-file inputs
|
||||
exclude independently released nested modules, while vendored contents stay
|
||||
in scope. Explicit shared-file selections are normalized from repository-root
|
||||
in scope. Selection indexes boundary directories once and checks each entry's
|
||||
ancestors, so unrelated boundaries are not scanned for each file. The
|
||||
[scope benchmark](../../internal/validation/scope_performance_test.go) varies
|
||||
boundary count while retaining 20,000 input files.
|
||||
Explicit shared-file selections are normalized from repository-root
|
||||
paths, added as individual files, and deduplicated with module inputs by path.
|
||||
File-size exclusions are normalized from the selected module directory. Link
|
||||
resolution can still inspect a committed destination outside the selected input
|
||||
|
||||
@@ -336,7 +336,15 @@ test-owned caches. This adds no live module-service completion gate.
|
||||
|
||||
## Issue 10: Remove the repeated boundary scan from file selection (P2)
|
||||
|
||||
Status: open. Category: code quality and avoidable computational cost.
|
||||
Status: complete. Category: code quality and avoidable computational cost.
|
||||
|
||||
**Completion:** File selection indexes boundary directories and looks up each
|
||||
entry's ancestors. Existing ordering, vendor/shared selection, full reference
|
||||
lookup, and reader/cache behavior pass the complete offline validation suite.
|
||||
A component benchmark retains 20,000 inputs with 0, 1,000, and 4,000 boundaries.
|
||||
On this host, the 4,000-boundary case decreased from about 2.73 seconds to 38
|
||||
milliseconds per selection; the new cases ranged from 29 to 38 milliseconds.
|
||||
These are illustrative measurements without timing gates or input limits.
|
||||
|
||||
**Evidence:** [`selectInputEntries`](../../internal/validation/tree.go) loops
|
||||
over all nested-module boundaries for every candidate entry. This costs
|
||||
|
||||
Reference in New Issue
Block a user