Plan a clean module release API and receipt cutover
This commit is contained in:
@@ -53,8 +53,7 @@ scope. Independently released nested modules are excluded from their parent's
|
|||||||
automatic validation inputs. Shared file selections follow the
|
automatic validation inputs. Shared file selections follow the
|
||||||
[resolved shared-file rules](#shared-file-validation-inputs). Checks may read
|
[resolved shared-file rules](#shared-file-validation-inputs). Checks may read
|
||||||
referenced material elsewhere in the captured repository without adding that
|
referenced material elsewhere in the captured repository without adding that
|
||||||
material's surrounding files to the
|
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
|
||||||
guards remain repository-wide. The complete selected tag governs uniqueness,
|
guards remain repository-wide. The complete selected tag governs uniqueness,
|
||||||
@@ -85,6 +84,9 @@ request and profile, with root defaults. Resolve it against the captured
|
|||||||
repository and committed module declaration. Derive tags using Go's standard
|
repository and committed module declaration. Derive tags using Go's standard
|
||||||
module conventions, including major-version directories: a `/v2` module stored
|
module conventions, including major-version directories: a `/v2` module stored
|
||||||
at `integrations/ckconfig/v2` uses `integrations/ckconfig/v2.0.0` for `v2.0.0`.
|
at `integrations/ckconfig/v2` uses `integrations/ckconfig/v2.0.0` for `v2.0.0`.
|
||||||
|
The same module stored at `integrations/ckconfig` uses that complete tag too.
|
||||||
|
Support both physical layouts and distinguish the module directory from its
|
||||||
|
tag prefix.
|
||||||
Carry the resolved identity through facade conversions, internal requests,
|
Carry the resolved identity through facade conversions, internal requests,
|
||||||
callbacks, results, and CLI diagnostics. Keep semantic-version validation
|
callbacks, results, and CLI diagnostics. Keep semantic-version validation
|
||||||
separate from full-tag handling. Exact field names belong in API design.
|
separate from full-tag handling. Exact field names belong in API design.
|
||||||
@@ -154,7 +156,9 @@ and module release titles. Select the module-local note and retain existing
|
|||||||
page/asset conflict, retry, and partial-delivery behavior. Test source URLs with
|
page/asset conflict, retry, and partial-delivery behavior. Test source URLs with
|
||||||
slash-containing tags. Distinct module tags can have separate Gitea pages at the
|
slash-containing tags. Distinct module tags can have separate Gitea pages at the
|
||||||
same commit. A page-only profile continues to require no application binary.
|
same commit. A page-only profile continues to require no application binary.
|
||||||
Review receipt compatibility deliberately and document any required migration.
|
Use the new module-bound receipt format for prebuilt delivery. Consumers
|
||||||
|
regenerate receipts through the updated build operation as part of the clean
|
||||||
|
cutover described below.
|
||||||
|
|
||||||
### 5. Support module-aware CI delivery
|
### 5. Support module-aware CI delivery
|
||||||
|
|
||||||
@@ -169,9 +173,11 @@ Tool selection follows the tagged module configuration under
|
|||||||
**Work:** Extend tagged-checkout preparation and `ci-deliver` to distinguish the
|
**Work:** Extend tagged-checkout preparation and `ci-deliver` to distinguish the
|
||||||
full event tag from the semantic version. Adapt tag filters, profile selection,
|
full event tag from the semantic version. Adapt tag filters, profile selection,
|
||||||
tool bootstrap, and application dependency preparation. Use an explicit
|
tool bootstrap, and application dependency preparation. Use an explicit
|
||||||
module/profile mapping or equivalent small consumer declaration; keep the
|
module/profile mapping or equivalent small consumer declaration from the
|
||||||
selection consistent with the derived tag. Verify the event commit before tool
|
verified tagged checkout. Resolve the physical module directory and profile
|
||||||
bootstrap and use the tagged source's selected module files on retries.
|
before tool bootstrap, and keep the selection consistent with the derived tag.
|
||||||
|
Verify the event commit before resolving that mapping and use the tagged
|
||||||
|
source's selected module files on retries.
|
||||||
Preserve temporary bootstrap metadata and existing credential handling. Cover
|
Preserve temporary bootstrap metadata and existing credential handling. Cover
|
||||||
major-version directory layouts without assuming that trimming the tag always
|
major-version directory layouts without assuming that trimming the tag always
|
||||||
identifies the physical module directory. Include page-only and binary examples.
|
identifies the physical module directory. Include page-only and binary examples.
|
||||||
@@ -204,8 +210,9 @@ selected module is validated and only its intended tag is published.
|
|||||||
|
|
||||||
**Work:** Extend existing behavioral tests using local repositories and remotes.
|
**Work:** Extend existing behavioral tests using local repositories and remotes.
|
||||||
Cover root defaults; nested-module failure while the root suite passes; equal
|
Cover root defaults; nested-module failure while the root suite passes; equal
|
||||||
versions across modules; major-version directories; full-tag reuse; and failed
|
versions across modules; major versions with and without physical major-version
|
||||||
or unknown publication with the correct recovery identity. Exercise optional
|
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
|
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;
|
Cover omitted, replacement, and empty shared-file lists; optional default files;
|
||||||
@@ -215,16 +222,19 @@ 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
|
||||||
nested-module build/version-injection, receipt ownership, Gitea page/asset, and
|
nested-module build/version-injection, new-format receipt ownership and cutover,
|
||||||
CI tag/profile/tool-selection coverage. Use local HTTP servers for delivery and
|
Gitea page/asset, and CI tag/profile/tool-selection coverage. Use local HTTP servers for delivery and
|
||||||
isolated synthetic module proxies for bootstrap tests. Verify that retries use
|
isolated synthetic module proxies for bootstrap tests. Verify that retries use
|
||||||
the original module selection and full tag after the default branch changes.
|
the original module selection and full tag after the default branch changes.
|
||||||
|
|
||||||
Update GoDoc, CLI/configuration references, check/publication/build/delivery guides,
|
Update GoDoc, CLI/configuration references, check/publication/build/delivery guides,
|
||||||
adoption examples, CI templates, and recovery guidance together. Explain root-module
|
adoption examples, CI templates, and recovery guidance together. Supply migration
|
||||||
scope changes in the release note and migration guidance. Document semantic version versus full
|
guidance in the next release's documentation, covering API and profile updates,
|
||||||
tag in note titles and source/licensing links. ReleaseKit's own maintainer policy
|
receipt regeneration, CI mapping, and root-module scope changes, including
|
||||||
continues to describe its root-module release; consumer guidance explains how
|
exclusion of nested fixture modules from automatic file checks. Document
|
||||||
|
semantic version versus full tag in note titles and source/licensing links.
|
||||||
|
ReleaseKit's own maintainer policy continues to describe its root-module release;
|
||||||
|
consumer guidance explains how
|
||||||
multi-module consumers adapt their policies. Run the normal offline suite and
|
multi-module consumers adapt their policies. Run the normal offline suite and
|
||||||
public API checks for implementation changes; validate documentation links and
|
public API checks for implementation changes; validate documentation links and
|
||||||
examples. Synthetic dependency fixtures use isolated module caches.
|
examples. Synthetic dependency fixtures use isolated module caches.
|
||||||
@@ -283,8 +293,8 @@ configured product-command execution at the selected module. Keep diagnostic
|
|||||||
file paths repository-relative and expose both directories to product commands.
|
file paths repository-relative and expose both directories to product commands.
|
||||||
Markdown destinations remain relative to their source documents.
|
Markdown destinations remain relative to their source documents.
|
||||||
|
|
||||||
Existing root profiles retain their meaning. Nested-module launchers use the
|
Root profiles use the repository-root module by default. Nested-module launchers
|
||||||
provided repository context for shared scripts. These conventions keep
|
use the provided repository context for shared scripts. These conventions keep
|
||||||
per-module profiles self-contained without adding per-check path-base switches.
|
per-module profiles self-contained without adding per-check path-base switches.
|
||||||
|
|
||||||
### Complete operation support
|
### Complete operation support
|
||||||
@@ -295,5 +305,17 @@ for root and nested modules. CommandKit's current source-only use supplies an
|
|||||||
adoption case while the feature supports the full existing release workflow.
|
adoption case while the feature supports the full existing release workflow.
|
||||||
|
|
||||||
Implementation may proceed in stages; feature completion includes all of these
|
Implementation may proceed in stages; feature completion includes all of these
|
||||||
operations. Existing single-module defaults and the separation between source
|
operations. Omitted module selection uses the root module, and source publication
|
||||||
publication and asynchronous delivery remain in place.
|
and asynchronous delivery retain their separate outcomes.
|
||||||
|
|
||||||
|
### Clean API and receipt cutover
|
||||||
|
|
||||||
|
Implement one current API and module-bound receipt format as the complete
|
||||||
|
supported interface after cutover. Consumers update their calls, profiles, and
|
||||||
|
CI declarations to that interface and regenerate prior receipts through the
|
||||||
|
updated build operation. Compatibility shims and legacy receipt readers are
|
||||||
|
outside the implementation scope.
|
||||||
|
|
||||||
|
Migration means guidance supplied in the next release's documentation. That
|
||||||
|
guidance explains the required consumer changes and the root-module validation
|
||||||
|
scope change; implementation completion covers the new interface directly.
|
||||||
|
|||||||
Reference in New Issue
Block a user