Clarify the audit's developer effort recommendations
This commit is contained in:
@@ -12,6 +12,11 @@ Shared conventions serve these goals by giving routine decisions one owner.
|
|||||||
Applications supply product facts and product-specific checks; ReleaseKit owns
|
Applications supply product facts and product-specific checks; ReleaseKit owns
|
||||||
the procedure, sensible defaults, and recovery guidance.
|
the procedure, sensible defaults, and recovery guidance.
|
||||||
|
|
||||||
|
Evaluate recommendations by the application code they remove, the shared logic
|
||||||
|
they consolidate, and the recurring decisions they eliminate. Standardization,
|
||||||
|
configuration options, and diagnostic detail are useful when they reduce that
|
||||||
|
work. Keep routine release decisions inside ReleaseKit.
|
||||||
|
|
||||||
The core direction is sound. Retain the publication/delivery separation, narrow
|
The core direction is sound. Retain the publication/delivery separation, narrow
|
||||||
public facades, standard artifact naming, version injection, and content-aware
|
public facades, standard artifact naming, version injection, and content-aware
|
||||||
retries. Fix the reproduced validation and recovery defects in F1–F2 before
|
retries. Fix the reproduced validation and recovery defects in F1–F2 before
|
||||||
@@ -160,8 +165,8 @@ microarchitecture requirements in its
|
|||||||
**Consequence.** A developer's ambient CPU setting can narrow a binary's hardware
|
**Consequence.** A developer's ambient CPU setting can narrow a binary's hardware
|
||||||
compatibility. Different build inputs can also produce a digest conflict during
|
compatibility. Different build inputs can also produce a digest conflict during
|
||||||
a delivery retry. Existing digest comparison correctly preserves published bytes.
|
a delivery retry. Existing digest comparison correctly preserves published bytes.
|
||||||
This finding supports predictable defaults; its earlier high-priority assessment
|
The practical benefit of addressing this finding is predictable hardware
|
||||||
placed too much weight on build-environment standardization.
|
compatibility with fewer settings for application developers to manage.
|
||||||
|
|
||||||
**Recommendation.** Use ordinary baseline CPU settings and shared build flags
|
**Recommendation.** Use ordinary baseline CPU settings and shared build flags
|
||||||
internally, with the available compatible Go toolchain. Control incidental
|
internally, with the available compatible Go toolchain. Control incidental
|
||||||
@@ -212,11 +217,12 @@ alongside its parsing, presentation, and exit-status responsibilities.
|
|||||||
and deliver sequence behind the orchestration facade. Verify the local tagged
|
and deliver sequence behind the orchestration facade. Verify the local tagged
|
||||||
source before expensive compilation, then retain the necessary checks before
|
source before expensive compilation, then retain the necessary checks before
|
||||||
remote effects. Let the CLI adapt JSON, credentials, and output to that operation.
|
remote effects. Let the CLI adapt JSON, credentials, and output to that operation.
|
||||||
Use the same build declaration for candidate validation and delivery. Decide
|
Use the same build declaration for candidate validation and delivery. Support
|
||||||
whether a concrete consumer needs caller-provided builds, as discussed in
|
caller-provided builds for concrete needs such as retrying with retained
|
||||||
Open Question 3. Keep separate building useful for local development. The ordinary
|
artifacts, as discussed in Open Question 3. Keep separate building useful for
|
||||||
consumer workflow should complete delivery in one invocation; advanced artifact
|
local development. The ordinary consumer workflow should complete delivery in
|
||||||
handoffs can use private coordination data when needed.
|
one invocation; advanced artifact handoffs can use private coordination data
|
||||||
|
when needed.
|
||||||
|
|
||||||
### F6 — Adoption priority: shared deployment still depends on copied mechanics
|
### F6 — Adoption priority: shared deployment still depends on copied mechanics
|
||||||
|
|
||||||
@@ -338,7 +344,9 @@ reductions in application maintenance or developer effort.
|
|||||||
product-specific checks. ReleaseKit owns the command and its routine environment
|
product-specific checks. ReleaseKit owns the command and its routine environment
|
||||||
settings. Migrate repeated suite invocations out of application scripts. Add
|
settings. Migrate repeated suite invocations out of application scripts. Add
|
||||||
alternative invocation settings when an actual consumer requirement establishes
|
alternative invocation settings when an actual consumer requirement establishes
|
||||||
their value. This gives developers one ordinary validation path to understand.
|
their value. An application adding an example check should declare that check
|
||||||
|
and receive the standard suite automatically. This gives developers one ordinary
|
||||||
|
validation path to understand.
|
||||||
|
|
||||||
**Viable alternative:** Keep a replacement callback or complete validation
|
**Viable alternative:** Keep a replacement callback or complete validation
|
||||||
command for products with unusual test layouts. This is a simple composition
|
command for products with unusual test layouts. This is a simple composition
|
||||||
@@ -353,7 +361,8 @@ settings, and shared build flags. Handle incidental environment settings interna
|
|||||||
so developers can rely on the selected target's expected compatibility. Keep
|
so developers can rely on the selected target's expected compatibility. Keep
|
||||||
application configuration small. Toolchain-dependent byte differences are
|
application configuration small. Toolchain-dependent byte differences are
|
||||||
acceptable; digest checks preserve existing published content, and retained
|
acceptable; digest checks preserve existing published content, and retained
|
||||||
artifacts support retries requiring the same bytes.
|
artifacts support retries requiring the same bytes. ReleaseKit can own baseline
|
||||||
|
settings internally while applications declare their packages and targets.
|
||||||
|
|
||||||
**Viable alternative:** A shared CI image can supply a centrally selected Go
|
**Viable alternative:** A shared CI image can supply a centrally selected Go
|
||||||
version and build environment when this makes installation and support easier.
|
version and build environment when this makes installation and support easier.
|
||||||
@@ -368,7 +377,9 @@ Explicit hardware variants can be added for a demonstrated product need.
|
|||||||
selected-target builds, temporary storage, checksums, uploads, and cleanup.
|
selected-target builds, temporary storage, checksums, uploads, and cleanup.
|
||||||
Use it from the CLI so both interfaces share the procedure. Retain separate
|
Use it from the CLI so both interfaces share the procedure. Retain separate
|
||||||
building for local development and support prebuilt delivery where a concrete
|
building for local development and support prebuilt delivery where a concrete
|
||||||
handoff requirement justifies it. This minimizes consumer orchestration code.
|
handoff or retry requirement justifies it. Routine delivery should require one
|
||||||
|
invocation, with ReleaseKit managing the artifact lifecycle. This minimizes
|
||||||
|
consumer orchestration code.
|
||||||
|
|
||||||
**Viable alternative:** Keep separate build and delivery primitives with a
|
**Viable alternative:** Keep separate build and delivery primitives with a
|
||||||
maintained composition helper. This suits consumers that require credential
|
maintained composition helper. This suits consumers that require credential
|
||||||
@@ -381,8 +392,9 @@ operational separation they need.
|
|||||||
**Recommended:** Choose the simplest maintained entry point for installation,
|
**Recommended:** Choose the simplest maintained entry point for installation,
|
||||||
updates, and delivery. Begin with versioned source installation if it keeps
|
updates, and delivery. Begin with versioned source installation if it keeps
|
||||||
consumer integration small. Centralize reusable setup and provide one clear
|
consumer integration small. Centralize reusable setup and provide one clear
|
||||||
upgrade procedure. Assess packaging by the consumer code and recurring developer
|
upgrade procedure. Applications should select a ReleaseKit version and supply
|
||||||
work it removes.
|
product settings and credentials; shared integration should own routine setup.
|
||||||
|
Assess packaging by the consumer code and recurring developer work it removes.
|
||||||
|
|
||||||
**Viable alternative:** Publish a maintained CI image containing ReleaseKit and
|
**Viable alternative:** Publish a maintained CI image containing ReleaseKit and
|
||||||
a compatible Go/Git environment when it substantially reduces setup. The image
|
a compatible Go/Git environment when it substantially reduces setup. The image
|
||||||
@@ -396,7 +408,9 @@ applications a small configuration and a routine invocation.
|
|||||||
**Recommended:** Use exclusive outcome categories: matching, uploaded, known
|
**Recommended:** Use exclusive outcome categories: matching, uploaded, known
|
||||||
pending, conflicting, and uncertain. Present ordinary callers with completion or
|
pending, conflicting, and uncertain. Present ordinary callers with completion or
|
||||||
a clear failure and recovery instruction. Keep asset details available for
|
a clear failure and recovery instruction. Keep asset details available for
|
||||||
diagnostics. Consistent categories simplify implementation and interpretation.
|
diagnostics. Derive recovery guidance centrally so each application can present
|
||||||
|
the result directly. Consistent categories simplify implementation and
|
||||||
|
interpretation.
|
||||||
|
|
||||||
**Viable alternative:** Pending includes every unfinished declaration, with
|
**Viable alternative:** Pending includes every unfinished declaration, with
|
||||||
conflicting/uncertain as diagnostic subsets. This can simplify a progress UI
|
conflicting/uncertain as diagnostic subsets. This can simplify a progress UI
|
||||||
|
|||||||
Reference in New Issue
Block a user