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
|
All mandatory and selected optional release checks use the selected module's
|
||||||
scope. Independently released nested modules are excluded from their parent's
|
scope. Independently released nested modules are excluded from their parent's
|
||||||
validation inputs. Checks may read referenced material elsewhere in the
|
automatic validation inputs. Shared file selections follow the
|
||||||
captured repository without adding that material's surrounding files to 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.
|
input set. The checkout remains the boundary for outside-checkout link checks.
|
||||||
|
|
||||||
Repository cleanliness, branch, candidate commit, remote endpoint, and publication
|
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.
|
Update module-distribution inspection to examine the selected release's inputs.
|
||||||
For example, an unrelated sibling's filesystem replacement should not fail the
|
For example, an unrelated sibling's filesystem replacement should not fail the
|
||||||
selected module's check. Determine relevant shared release materials through
|
selected module's check. Add shared files through the
|
||||||
existing conventions; shared files should not pull in an entire parent tree.
|
[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,
|
Keep the optional checks optional and retain their existing individual rules,
|
||||||
error identities, cancellation, and cause propagation apart from the intended
|
error identities, cancellation, and cause propagation apart from the intended
|
||||||
scope change. Apply the boundary and path conventions recorded below.
|
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
|
or unknown publication with the correct recovery identity. Exercise optional
|
||||||
checks with violations inside and outside the selected scope, parent selection
|
checks with violations inside and outside the selected scope, parent selection
|
||||||
excluding independent nested modules, and cross-module Markdown references.
|
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
|
Verify that repository guards still observe changes outside the selected module
|
||||||
and that module selection does not repeat the standard suite. Reuse existing
|
and that module selection does not repeat the standard suite. Reuse existing
|
||||||
failure tests where they already protect unchanged behavior. Add representative
|
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
|
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
|
directories. This follows Go's module structure and avoids a second registry of
|
||||||
independently versioned products. Vendored material remains part of the selected
|
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
|
parent file checks and can be exercised through the parent's tests or product
|
||||||
checks. Document this distinction and verify representative cases.
|
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
|
Shared release materials and referenced destinations receive the targeted
|
||||||
inspection described above.
|
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
|
### Relative paths and product commands
|
||||||
|
|
||||||
Anchor module selection and profile lookup at the repository. Anchor
|
Anchor module selection and profile lookup at the repository. Anchor
|
||||||
|
|||||||
Reference in New Issue
Block a user