Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './docs/_build/html'
path: './docs/_site'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Expand Down
1 change: 1 addition & 0 deletions changelog.d/repro-release-followups.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Preserve core-package compatibility metadata when parsing data release manifests, and deploy the Quarto documentation output from the correct `_site` directory.
11 changes: 7 additions & 4 deletions src/policyengine/provenance/manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,14 @@ class DataPackageVersion(PackageVersion):
release_manifest_revision: Optional[str] = None


class CompatibleModelPackage(BaseModel):
class CompatiblePackage(BaseModel):
name: str
specifier: str


CompatibleModelPackage = CompatiblePackage


class BuiltWithModelPackage(PackageVersion):
git_sha: Optional[str] = None
data_build_fingerprint: Optional[str] = None
Expand All @@ -47,6 +50,7 @@ class BuiltWithModelPackage(PackageVersion):
class DataBuildInfo(BaseModel):
build_id: Optional[str] = None
built_at: Optional[str] = None
built_with_core_package: Optional[PackageVersion] = None
built_with_model_package: Optional[BuiltWithModelPackage] = None


Expand Down Expand Up @@ -113,9 +117,8 @@ def uri(self) -> str:
class DataReleaseManifest(BaseModel):
schema_version: int
data_package: PackageVersion
compatible_model_packages: list[CompatibleModelPackage] = Field(
default_factory=list
)
compatible_model_packages: list[CompatiblePackage] = Field(default_factory=list)
compatible_core_packages: list[CompatiblePackage] = Field(default_factory=list)
default_datasets: dict[str, str] = Field(default_factory=dict)
build: Optional[DataBuildInfo] = None
artifacts: dict[str, DataReleaseArtifact] = Field(default_factory=dict)
Expand Down
10 changes: 10 additions & 0 deletions tests/test_release_manifests.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,10 @@ def test__given_country__then_can_fetch_data_release_manifest(self):
"build": {
"build_id": "policyengine-us-data-1.78.2",
"built_at": "2026-04-10T12:00:00Z",
"built_with_core_package": {
"name": "policyengine-core",
"version": "3.26.0",
},
"built_with_model_package": {
"name": "policyengine-us",
"version": "1.687.0",
Expand All @@ -190,6 +194,9 @@ def test__given_country__then_can_fetch_data_release_manifest(self):
"compatible_model_packages": [
{"name": "policyengine-us", "specifier": "==1.687.0"}
],
"compatible_core_packages": [
{"name": "policyengine-core", "specifier": "==3.26.0"}
],
"default_datasets": {"national": "enhanced_cps_2024"},
"artifacts": {
"enhanced_cps_2024": {
Expand All @@ -215,8 +222,11 @@ def test__given_country__then_can_fetch_data_release_manifest(self):
assert manifest.build is not None
assert manifest.build.build_id == "policyengine-us-data-1.78.2"
assert manifest.build.built_at == "2026-04-10T12:00:00Z"
assert manifest.build.built_with_core_package is not None
assert manifest.build.built_with_core_package.version == "3.26.0"
assert manifest.build.built_with_model_package is not None
assert manifest.build.built_with_model_package.version == "1.687.0"
assert manifest.compatible_core_packages[0].specifier == "==3.26.0"
assert (
manifest.artifacts["enhanced_cps_2024"].uri
== "hf://policyengine/policyengine-us-data/enhanced_cps_2024.h5@1.78.2"
Expand Down