mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 02:25:56 +00:00
df7ad9be43
Stable promotions built whatever the dispatch branch was at that second. The resolver checked that HEAD descends from the promoted release candidate but never that its content matches, so v6.4.0 shipped 64 changed files, including product code, that v6.4.0-rc.12 had not soaked. Every v6 version was mapped to main, which now moves every few minutes under the autonomous maintainer, so each fix to a candidate brought everything landed since and stable was never an exact soaked commit. Five of six stable minor releases shipped under version-bound owner exceptions that waived the soak. From v6.5.0 the release train applies (RELEASE_PROMOTION_POLICY.md, "Release Train"): a two-week train sized to measured velocity, a release/v6.N branch per train declared in the control plane so the workflow refuses a dispatch from anywhere else, a stable promotion that may differ from its candidate only in release metadata unless hotfix_exception names active customer harm, and a seven day soak for minor releases. The 6.4.x line stays on main so the v6.4.3-rc.1 candidate already prepared there is unaffected. The gap is registered as coverage gap release-train-exact-candidate-promotion.
83 lines
3.7 KiB
JSON
83 lines
3.7 KiB
JSON
{
|
|
"version": "1",
|
|
"system": "pulse-release-control",
|
|
"execution_model": "direct-repo-sessions",
|
|
"agent_values_doc": "docs/release-control/internal/AGENT_VALUES.md",
|
|
"control_plane_doc": "docs/release-control/internal/CONTROL_PLANE.md",
|
|
"control_plane_schema": "docs/release-control/control_plane.schema.json",
|
|
"active_profile_id": "v6",
|
|
"active_target_id": "v6-product-lane-expansion",
|
|
"legacy_release_lines": [
|
|
{
|
|
"version_prefix": "5.1.",
|
|
"prerelease_branch": "main",
|
|
"stable_branch": "main"
|
|
},
|
|
{
|
|
"version_prefix": "6.3.2",
|
|
"prerelease_branch": "release/v6.3.2",
|
|
"stable_branch": "release/v6.3.2"
|
|
},
|
|
{
|
|
"version_prefix": "6.5.",
|
|
"prerelease_branch": "release/v6.5",
|
|
"stable_branch": "release/v6.5"
|
|
}
|
|
],
|
|
"profiles": [
|
|
{
|
|
"id": "v6",
|
|
"lifecycle": "active",
|
|
"root": "docs/release-control/v6",
|
|
"prerelease_branch": "main",
|
|
"stable_branch": "main",
|
|
"source_of_truth": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md",
|
|
"status": "docs/release-control/v6/internal/status.json",
|
|
"status_schema": "docs/release-control/v6/status.schema.json",
|
|
"development_protocol": "docs/release-control/v6/internal/CANONICAL_DEVELOPMENT_PROTOCOL.md",
|
|
"high_risk_matrix": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
|
|
"subsystems_dir": "docs/release-control/v6/internal/subsystems",
|
|
"registry": "docs/release-control/v6/internal/subsystems/registry.json",
|
|
"registry_schema": "docs/release-control/v6/internal/subsystems/registry.schema.json",
|
|
"subsystem_contract_template": "docs/release-control/v6/internal/SUBSYSTEM_CONTRACT_TEMPLATE.md"
|
|
}
|
|
],
|
|
"targets": [
|
|
{
|
|
"id": "v6-rc-cut",
|
|
"profile_id": "v6",
|
|
"kind": "release",
|
|
"status": "completed",
|
|
"summary": "Hold Pulse v6 on the governed prerelease-cut target until RC publication is explicitly judged ready, while continuing to clear prerelease blockers, prove migration safety, and exercise the pre-RC high-risk gates.",
|
|
"completion_rule": "rc_ready"
|
|
},
|
|
{
|
|
"id": "v6-rc-stabilization",
|
|
"profile_id": "v6",
|
|
"kind": "stabilization",
|
|
"status": "completed",
|
|
"summary": "Once a real governed RC exists, keep Pulse v6 simple, accurate, and cleanly readable around that proven monitoring-first floor while broader control-plane expansion stays out of the default target until it is proven.",
|
|
"completion_rule": "manual",
|
|
"proof_scope": "none"
|
|
},
|
|
{
|
|
"id": "v6-ga-promotion",
|
|
"profile_id": "v6",
|
|
"kind": "release",
|
|
"status": "completed",
|
|
"summary": "Pulse v6 GA and the initial 6.0.x patch line shipped from the governed v6 release branch; after the v6 public cutover, main is the canonical latest-and-greatest branch for active development and stable release preparation.",
|
|
"completion_rule": "manual",
|
|
"proof_scope": "none"
|
|
},
|
|
{
|
|
"id": "v6-product-lane-expansion",
|
|
"profile_id": "v6",
|
|
"kind": "feature",
|
|
"status": "active",
|
|
"summary": "Post-GA active development runs on main and promotes proactive Pulse Intelligence, policy-aware data governance, resource-change intelligence, action-governance, fleet-governance, agent-operable infrastructure onboarding, continuous discovery reconciliation, and agent-ready operations contract proof after the monitoring-first v6 floor; Patrol is the detection and investigation engine, Assistant is the contextual explanation, approval, and governed action surface, and agent-ready proof is API/CLI-first with MCP only as an adapter over canonical contracts.",
|
|
"completion_rule": "manual",
|
|
"proof_scope": "none"
|
|
}
|
|
]
|
|
}
|