Skip to content

Commit b78af0f

Browse files
committed
Add Stage 5 release candidate validator
1 parent f8b27ce commit b78af0f

5 files changed

Lines changed: 817 additions & 1 deletion

File tree

changelog.d/1024.added

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Added a Stage 5 release candidate validation service backed by the shared validation core.

docs/engineering/stages/release_promotion.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ or step manifests. Release-specific details such as missing staged artifacts,
5555
missing validation reports, finalized-release conflicts, version mismatches, or
5656
destination conflicts should live in canonical finding metadata.
5757

58+
Use `ReleaseCandidateValidator` for the `5a_validate_outputs` library seam.
59+
It wraps `policyengine_us_data.validation_core` and calls existing release
60+
guards through injected dependencies, including staged-artifact presence,
61+
release-manifest preflight, matching finalized-manifest checks, and release
62+
completion marker checks. Keep those dependencies injectable so unit tests do
63+
not need Hugging Face, GCS, Modal, or production credentials.
64+
5865
## Rerun Comparison Material
5966

6067
Before public writes, rerun and reuse decisions should compare semantic

policyengine_us_data/release_promotion/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,27 @@
2323
)
2424
from .context import ReleasePromotionContext
2525
from .validation import build_release_candidate_shape_report
26+
from .validation import (
27+
DEFAULT_REQUIRED_RELEASE_ARTIFACT_FAMILIES,
28+
RELEASE_VALIDATION_SUBSTAGE_ID,
29+
ReleaseCandidateValidationDependencies,
30+
ReleaseCandidateValidator,
31+
default_release_candidate_validation_dependencies,
32+
)
2633

2734
__all__ = [
2835
"BASE_RELEASE_ARTIFACT_PATHS",
36+
"DEFAULT_REQUIRED_RELEASE_ARTIFACT_FAMILIES",
37+
"RELEASE_VALIDATION_SUBSTAGE_ID",
2938
"ReleaseArtifactSpec",
3039
"ReleaseCandidateInputBundle",
3140
"ReleasePromotionContext",
41+
"ReleaseCandidateValidationDependencies",
42+
"ReleaseCandidateValidator",
3243
"build_legacy_release_candidate_bundle",
3344
"build_release_candidate_bundle_from_stage4_contract",
3445
"build_release_candidate_shape_report",
46+
"default_release_candidate_validation_dependencies",
3547
"dedupe_normalized_release_paths",
3648
"infer_artifact_identity",
3749
"infer_release_artifact_spec",

0 commit comments

Comments
 (0)