Define shared file selection for module releases
This commit is contained in:
@@ -50,8 +50,10 @@ means the repository-root module. For example:
|
||||
|
||||
All mandatory and selected optional release checks use the selected module's
|
||||
scope. Independently released nested modules are excluded from their parent's
|
||||
validation inputs. Checks may read referenced material elsewhere in the
|
||||
captured repository without adding that material's surrounding files to the
|
||||
automatic validation inputs. Shared file selections follow the
|
||||
[resolved shared-file rules](#shared-file-validation-inputs). Checks may read
|
||||
referenced material elsewhere in the captured repository without adding that
|
||||
material's surrounding files to the
|
||||
input set. The checkout remains the boundary for outside-checkout link checks.
|
||||
|
||||
Repository cleanliness, branch, candidate commit, remote endpoint, and publication
|
||||
@@ -106,8 +108,9 @@ or its target heading without scanning that module's unrelated documents.
|
||||
|
||||
Update module-distribution inspection to examine the selected release's inputs.
|
||||
For example, an unrelated sibling's filesystem replacement should not fail the
|
||||
selected module's check. Determine relevant shared release materials through
|
||||
existing conventions; shared files should not pull in an entire parent tree.
|
||||
selected module's check. Add shared files through the
|
||||
[resolved selection rules](#shared-file-validation-inputs), carrying the selection
|
||||
through the public request and profile and applying it to the shared file inputs.
|
||||
Keep the optional checks optional and retain their existing individual rules,
|
||||
error identities, cancellation, and cause propagation apart from the intended
|
||||
scope change. Apply the boundary and path conventions recorded below.
|
||||
@@ -205,6 +208,10 @@ versions across modules; major-version directories; full-tag reuse; and failed
|
||||
or unknown publication with the correct recovery identity. Exercise optional
|
||||
checks with violations inside and outside the selected scope, parent selection
|
||||
excluding independent nested modules, and cross-module Markdown references.
|
||||
Cover omitted, replacement, and empty shared-file lists; optional default files;
|
||||
missing explicit files; committed-tree lookup; duplicate inputs; and explicit
|
||||
files in another module. Verify selection errors when optional file checks are
|
||||
disabled, and that shared-file selection preserves enabled checks and Go scope.
|
||||
Verify that repository guards still observe changes outside the selected module
|
||||
and that module selection does not repeat the standard suite. Reuse existing
|
||||
failure tests where they already protect unchanged behavior. Add representative
|
||||
@@ -229,7 +236,7 @@ examples. Synthetic dependency fixtures use isolated module caches.
|
||||
Use committed nested `go.mod` locations as module boundaries for ordinary source
|
||||
directories. This follows Go's module structure and avoids a second registry of
|
||||
independently versioned products. Vendored material remains part of the selected
|
||||
module's file-check inputs. Nested fixture modules are excluded from generic
|
||||
module's file-check inputs. Nested fixture modules are excluded from automatic
|
||||
parent file checks and can be exercised through the parent's tests or product
|
||||
checks. Document this distinction and verify representative cases.
|
||||
|
||||
@@ -238,6 +245,36 @@ does not fail that module's workspace-file check merely because it exists.
|
||||
Shared release materials and referenced destinations receive the targeted
|
||||
inspection described above.
|
||||
|
||||
### Shared file-validation inputs
|
||||
|
||||
Provide an optional shared-file list in the public request and profile. Its
|
||||
selection applies only to shared file-validation inputs. Existing validation
|
||||
selections control which checks are enabled. Enabled checks retain their rules,
|
||||
and Go tests, vet, and package compilation retain the selected module's scope.
|
||||
|
||||
| Selection | Shared files added automatically |
|
||||
| --- | --- |
|
||||
| Omitted list | Repository-root `COPYRIGHT`, `LICENSE`, and `docs/oss/attribution.md`, when present. |
|
||||
| Explicit list | The listed files replace the defaults. |
|
||||
| Explicit empty list | No shared files. |
|
||||
|
||||
In Go, a nil slice selects the defaults; a non-nil empty slice selects none.
|
||||
In JSON, omission or `null` selects the defaults; `[]` selects none. Preserve
|
||||
this distinction through profile mapping and facade conversions. Exact field
|
||||
names belong in API design.
|
||||
|
||||
Paths are repository-relative literal file paths. This initial selection
|
||||
supports individual files. Resolve presence and file identity from the captured
|
||||
committed tree. Missing explicitly selected files produce a configuration or
|
||||
validation error identifying the selected path, including when optional file
|
||||
checks are disabled. Defaults are optional when absent.
|
||||
|
||||
Deduplicate the combined module and shared-file inputs by committed path, so a
|
||||
file already in module scope or repeated in the list is checked once. Explicit
|
||||
selection may name a file in another module; include that file alone. Reference
|
||||
resolution continues to inspect destinations using existing rules and leaves
|
||||
those destinations outside the input set unless independently selected.
|
||||
|
||||
### Relative paths and product commands
|
||||
|
||||
Anchor module selection and profile lookup at the repository. Anchor
|
||||
|
||||
Reference in New Issue
Block a user