From 0d880c52900a20429598019c53441247bba294b8 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Thu, 20 Aug 2026 15:40:53 +1000 Subject: [PATCH 1/3] Add 3-0-0.json as a copy of 2-0-0.json --- .../release_provenance/telemetry/3-0-0.json | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json diff --git a/au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json b/au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json new file mode 100644 index 0000000..12699b2 --- /dev/null +++ b/au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json @@ -0,0 +1,170 @@ +{ + "$id": "https://raw.githubusercontent.com/ACCESS-NRI/schema/main/au.org.access-nri/tracking_services/release_provenance/telemetry/2-0-1.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Telemetry data for release provenance", + "description": "Schema for JSON payload sent to tracking_services release_provenance database", + "type": "object", + "properties": { + "service": { + "type": "string" + }, + "version": { + "type": "string", + "const": "2-0-0" + }, + "telemetry": { + "type": "object", + "properties": { + "model.name": { + "type": "string" + }, + "model.deployment_repository_url": { + "type": "string" + }, + "model.hive_docs_url": { + "type": "string" + }, + "model_deployment.version": { + "type": "string" + }, + "model_deployment.status": { + "type": "string" + }, + "model_deployment.released_at": { + "type": "string" + }, + "model_deployment.release_url": { + "type": "string" + }, + "deployment_targets": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "deployment_target.name": { + "type": "string" + }, + "deployment_target.spack_version": { + "type": "string" + }, + "deployment_target.spack_git_hash": { + "type": "string" + }, + "deployment_target.spack_config_version": { + "type": "string" + }, + "deployment_target.spack_config_git_hash": { + "type": "string" + }, + "deployment_target.builtin_spack_packages_version": { + "type": "string" + }, + "deployment_target.builtin_spack_packages_git_hash": { + "type": "string" + }, + "deployment_target.access_spack_packages_version": { + "type": "string" + }, + "deployment_target.access_spack_packages_git_hash": { + "type": "string" + }, + "deployment_target.module_use_location": { + "type": "string" + }, + "spack_model.name": { + "type": "string" + }, + "spack_model.spack_package_hash": { + "type": "string" + }, + "spack_model.module_load_command": { + "type": "string" + }, + "spack_model_components": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "spack_package_hash": { + "type": "string" + }, + "version": { + "type": "string" + }, + "install_location": { + "type": "string" + }, + "repository_url": { + "type": "string" + }, + "md5s": { + "type": "array", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "md5": { + "type": "string" + } + }, + "required": [ + "path", + "md5" + ] + } + } + }, + "required": [ + "name", + "spack_package_hash", + "version", + "install_location", + "repository_url", + "md5s" + ] + } + } + }, + "required": [ + "deployment_target.name", + "deployment_target.spack_version", + "deployment_target.spack_git_hash", + "deployment_target.spack_config_version", + "deployment_target.spack_config_git_hash", + "deployment_target.builtin_spack_packages_version", + "deployment_target.builtin_spack_packages_git_hash", + "deployment_target.access_spack_packages_version", + "deployment_target.access_spack_packages_git_hash", + "deployment_target.module_use_location", + "spack_model.name", + "spack_model.spack_package_hash", + "spack_model.module_load_command", + "spack_model_components" + ] + } + ] + } + }, + "required": [ + "model.name", + "model.deployment_repository_url", + "model_deployment.version", + "model_deployment.status", + "model_deployment.released_at", + "model_deployment.release_url", + "deployment_targets" + ] + } + }, + "required": [ + "service", + "version", + "telemetry" + ] + } From 6109cb2637719301805dfb8c9fbbacc287c37819 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Thu, 20 Aug 2026 16:00:33 +1000 Subject: [PATCH 2/3] Update schema and changelog --- .../release_provenance/telemetry/3-0-0.json | 5 +++++ .../release_provenance/telemetry/CHANGELOG.md | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json b/au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json index 12699b2..ec42379 100644 --- a/au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json +++ b/au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json @@ -95,6 +95,10 @@ "version": { "type": "string" }, + "commit_hash": { + "type": "string", + "minLength": 40 + }, "install_location": { "type": "string" }, @@ -124,6 +128,7 @@ "name", "spack_package_hash", "version", + "commit_hash", "install_location", "repository_url", "md5s" diff --git a/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md b/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md index 029a252..79f32df 100644 --- a/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md +++ b/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md @@ -11,3 +11,7 @@ We need to keep track of both `ACCESS-NRI/access-spack-packages` and `spack/spac * Add `deployment-target.access_spack_packages_[version|git_hash]` * Add `deployment-target.builtin_spack_packages_[version|git_hash]` * Remove `deployment-target.spack_packages_[version|git_hash]` + +## 3-0-0 + +* We also need to keep track of components git hashes, so we have immutable provenance of model components - for example, tags can be moved. From c3f09f71c918faeac693959e8090c5d8816f8f75 Mon Sep 17 00:00:00 2001 From: Tommy Gatti Date: Fri, 21 Aug 2026 09:50:25 +1000 Subject: [PATCH 3/3] Renamed 3-0-0 to 2-1-0 as some old data would be interoperable --- .../release_provenance/telemetry/{3-0-0.json => 2-1-0.json} | 0 .../release_provenance/telemetry/CHANGELOG.md | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename au.org.access-nri/tracking_services/release_provenance/telemetry/{3-0-0.json => 2-1-0.json} (100%) diff --git a/au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json b/au.org.access-nri/tracking_services/release_provenance/telemetry/2-1-0.json similarity index 100% rename from au.org.access-nri/tracking_services/release_provenance/telemetry/3-0-0.json rename to au.org.access-nri/tracking_services/release_provenance/telemetry/2-1-0.json diff --git a/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md b/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md index 79f32df..5fbb167 100644 --- a/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md +++ b/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md @@ -12,6 +12,6 @@ We need to keep track of both `ACCESS-NRI/access-spack-packages` and `spack/spac * Add `deployment-target.builtin_spack_packages_[version|git_hash]` * Remove `deployment-target.spack_packages_[version|git_hash]` -## 3-0-0 +## 2-1-0 -* We also need to keep track of components git hashes, so we have immutable provenance of model components - for example, tags can be moved. +* We also need to keep track of components git hashes, so we have immutable provenance of model components - for example, tags can be moved. This is now required, but the lack of `additionalProperties: false` means some old data would have been interoperable with this change.