feat(release): build verified full-registry catalog candidates
This commit is contained in:
@@ -10,6 +10,7 @@ import subprocess
|
||||
import tomllib
|
||||
|
||||
from .git_state import collect_versions, sanitized_git_environment
|
||||
from .registry_reference import registry_artifact_conflicts, registry_entry_source
|
||||
from .workspace import load_repository_specs, resolve_repo_path
|
||||
|
||||
|
||||
@@ -407,6 +408,11 @@ def candidate_catalog_version_issues(payload: object) -> tuple[VersionAlignmentI
|
||||
)
|
||||
|
||||
release = payload.get("release")
|
||||
registry_entries = [core_release, *(modules if isinstance(modules, list) else [])]
|
||||
issues.extend(
|
||||
_catalog_shape_issue("artifact_integrity", issue)
|
||||
for issue in registry_artifact_conflicts(registry_entries)
|
||||
)
|
||||
if isinstance(release, dict):
|
||||
issues.extend(_catalog_release_issues(release, represented=represented))
|
||||
return tuple(issues)
|
||||
@@ -419,6 +425,15 @@ def _catalog_entry_issues(
|
||||
represented: dict[str, str],
|
||||
) -> list[VersionAlignmentIssue]:
|
||||
issues: list[VersionAlignmentIssue] = []
|
||||
try:
|
||||
registry_source = registry_entry_source(entry)
|
||||
except ValueError as exc:
|
||||
return [_catalog_shape_issue(source, str(exc))]
|
||||
if registry_source is not None:
|
||||
previous = represented.setdefault(registry_source.repository, registry_source.version)
|
||||
if previous != registry_source.version:
|
||||
issues.append(_catalog_shape_issue(source, "repository appears with conflicting catalog versions"))
|
||||
return issues
|
||||
version = entry.get("version")
|
||||
normalized_version = version.removeprefix("v") if isinstance(version, str) and version else None
|
||||
if normalized_version is None:
|
||||
|
||||
Reference in New Issue
Block a user