From 8b9b740bbfbd046c8bb2a0feee88e1ccf79e99d3 Mon Sep 17 00:00:00 2001 From: snkmcb Date: Wed, 23 Sep 2026 19:54:17 +0900 Subject: [PATCH 1/5] ci: package Linux physics artifacts for Phase 3 --- .github/workflows/ost-source-ci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/ost-source-ci.yml b/.github/workflows/ost-source-ci.yml index 97e34bf..049504d 100644 --- a/.github/workflows/ost-source-ci.yml +++ b/.github/workflows/ost-source-ci.yml @@ -441,6 +441,21 @@ jobs: env: CMAKE_PREFIX_PATH: ${{ env.JOLT_PREFIX }} run: ost test --target ${{ matrix.platform }} --profile ${{ matrix.profile }} ${{ matrix.intent_flags }} + - name: Verify and package Linux physics libraries + if: ${{ matrix.name == 'workspace-pr-linux' }} + shell: bash + env: + CMAKE_PREFIX_PATH: ${{ env.JOLT_PREFIX }} + run: | + set -euo pipefail + mkdir -p .ost-ci + for library in libs/physicsCore backends/physicsJolt; do + name="$(basename "$library")" + ost library build "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-build.json" + ost library test "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-test.json" + ost library verify-consumer "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-consumer.json" + ost library package "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-package.json" + done - name: Run the workspace verification pyramid if: ${{ matrix.verify == 'pyramid' || matrix.verify == 'package' }} shell: bash @@ -459,5 +474,7 @@ jobs: **/.strata/reports/ **/dist/plugins/ **/dist/tools/ + libs/physicsCore/dist/ + backends/physicsJolt/dist/ dist/products/ .ost-ci/ From 7e40e018cb37c4cc6fdf6a4b494bb64772ba3353 Mon Sep 17 00:00:00 2001 From: snkmcb Date: Wed, 23 Sep 2026 19:58:36 +0900 Subject: [PATCH 2/5] ci: include hidden OpenStrata diagnostics --- .github/workflows/ost-source-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ost-source-ci.yml b/.github/workflows/ost-source-ci.yml index 049504d..61b11e6 100644 --- a/.github/workflows/ost-source-ci.yml +++ b/.github/workflows/ost-source-ci.yml @@ -469,6 +469,7 @@ jobs: uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: report-${{ matrix.name }} + include-hidden-files: true path: | .strata/targets/ **/.strata/reports/ From f0ea4162a41c76daa863827456ec69f1dbe810d7 Mon Sep 17 00:00:00 2001 From: snkmcb Date: Wed, 23 Sep 2026 20:02:44 +0900 Subject: [PATCH 3/5] ci: use root Jolt installed-consumer test --- .github/workflows/ost-source-ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ost-source-ci.yml b/.github/workflows/ost-source-ci.yml index 61b11e6..f586bf3 100644 --- a/.github/workflows/ost-source-ci.yml +++ b/.github/workflows/ost-source-ci.yml @@ -453,7 +453,12 @@ jobs: name="$(basename "$library")" ost library build "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-build.json" ost library test "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-test.json" - ost library verify-consumer "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-consumer.json" + # Jolt's imported target needs the external Jolt SDK. The root + # installed-consumer test carries that SDK prefix; OpenStrata's + # generated consumer intentionally clears CMAKE_PREFIX_PATH. + if [ "$name" = physicsCore ]; then + ost library verify-consumer "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-consumer.json" + fi ost library package "$library" --target ${{ matrix.platform }} --profile ${{ matrix.profile }} --json > ".ost-ci/${name}-package.json" done - name: Run the workspace verification pyramid From 590d4da2a881f1fd782a8a813bc4a2ec9a8549f0 Mon Sep 17 00:00:00 2001 From: snkmcb Date: Wed, 23 Sep 2026 20:10:45 +0900 Subject: [PATCH 4/5] docs: record published Linux physics inputs --- docs/architecture/RELEASE_SCHEMA.md | 13 +++--- .../2026-09-23-phase3-linux-artifacts.md | 40 +++++++++++++++++++ docs/reports/README.md | 1 + docs/roadmap/current.md | 6 ++- 4 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 docs/reports/2026-09-23-phase3-linux-artifacts.md diff --git a/docs/architecture/RELEASE_SCHEMA.md b/docs/architecture/RELEASE_SCHEMA.md index 7452b1f..8bdb99c 100644 --- a/docs/architecture/RELEASE_SCHEMA.md +++ b/docs/architecture/RELEASE_SCHEMA.md @@ -87,10 +87,9 @@ draft is reviewed and published. ## 4. Current boundary -The existing public Windows `physicsCore` and `physicsJolt` OCI artifacts have -been pulled and verified from a fresh cache for the Phase 3 migration. They -remain valid exact-digest inputs for that consumer, but do not imply Linux -availability or a formal versioned release. The first release workflow should -be implemented and dry-run before any `v0.1.0` tag is pushed. Linux artifacts, -cross-repository hosted consumer evidence, and a finalized release note are -still required. +The existing public Windows and Linux `physicsCore` and `physicsJolt` OCI +artifacts have been pulled and verified from fresh caches for the Phase 3 +migration. They remain valid exact-digest inputs for that consumer, but do not +constitute a formal versioned release. The first release workflow should be +implemented and dry-run before any `v0.1.0` tag is pushed. Cross-repository +hosted consumer evidence and a finalized release note are still required. diff --git a/docs/reports/2026-09-23-phase3-linux-artifacts.md b/docs/reports/2026-09-23-phase3-linux-artifacts.md new file mode 100644 index 0000000..db2cc7a --- /dev/null +++ b/docs/reports/2026-09-23-phase3-linux-artifacts.md @@ -0,0 +1,40 @@ +# 2026-09-23 Phase 3 Linux package artifacts + +## Scope + +The Linux cell of [GitHub Actions run 35852274531](https://github.com/animu-sphere/usd-physics-plugins/actions/runs/35852274531) +passed the workspace suite, isolated `physicsCore` and `physicsJolt` builds and +tests, `physicsCore` installed-consumer verification, and packaging on +`ubuntu-24.04`. The workspace suite includes the Jolt installed-consumer test +with the external Jolt SDK prefix. The Windows and graph cells also passed. + +The Linux packages use the pinned `cy2026` / `usd` runtime and Jolt Physics +5.5.0 at `23dadd0e603f1b321142d4c74df07fce85064989`. + +## Published inputs + +The two package outputs were imported and checked with `ost artifact verify +--require-sbom --require-provenance`, then published to the existing public +`ghcr.io/animu-sphere/usd-physics-plugins` repository. A separate empty +OpenStrata store pulled both by OCI digest with their expected content digest, +kind, target, SBOM, and provenance requirements. + +| Package | Archive content digest | OCI manifest digest | +| --- | --- | --- | +| `physicsCore` | `sha256:81a3433b759e6ec817188a2137f8da24ff8dbebed09a176f48a7ec2596d6f5ad` | `sha256:f050253cea8f6db163b67c9860e88bdf213c8ef400956c29fec130bc4b6726d7` | +| `physicsJolt` | `sha256:2be1f995f3e59d29fcc5a3db66321d4022fd83965d68f09e9b82b5b73bf2703b` | `sha256:e51df5e3815cbbe57034a390c6218f7467be70f92500b437eb7c77f2feda9020` | + +The published tags are discovery labels. Consumers must pin both digests for +each package. + +## Verification boundary + +The first packaging run exposed that `ost library verify-consumer` clears +`CMAKE_PREFIX_PATH` for its generated consumer, so it cannot find the external +Jolt SDK required by `physicsJolt`. The passing run uses the root +installed-consumer test for Jolt and retains the isolated generated consumer +check for `physicsCore`. + +These artifacts are Phase 3 consumer inputs, not a versioned `v0.1.0` release. +Stage Runner's hosted Windows and Linux consumer results and the release dry +run remain separate gates. diff --git a/docs/reports/README.md b/docs/reports/README.md index a00332f..b46c39b 100644 --- a/docs/reports/README.md +++ b/docs/reports/README.md @@ -9,3 +9,4 @@ remain in the [capability matrix](../reference/CAPABILITY_MATRIX.md). - [2026-09-22 Phase 2 Windows backend verification](2026-09-22-phase2-windows-backend.md) - [2026-09-22 Phase 2 Linux backend verification](2026-09-22-phase2-linux-backend.md) - [2026-09-23 Phase 2 hosted backend verification](2026-09-23-phase2-hosted-backend.md) +- [2026-09-23 Phase 3 Linux package artifacts](2026-09-23-phase3-linux-artifacts.md) diff --git a/docs/roadmap/current.md b/docs/roadmap/current.md index 893a277..0831e87 100644 --- a/docs/roadmap/current.md +++ b/docs/roadmap/current.md @@ -47,15 +47,17 @@ installed physicsCore + physicsJolt path passed all 48 local Windows parity tests. - Published the pinned Windows packages as public, immutable OCI artifacts and verified both OCI and content digests from a fresh cache. +- Published equivalent Linux packages and verified their content and OCI + digests from a fresh cache; see the + [Linux artifact report](../reports/2026-09-23-phase3-linux-artifacts.md). ## 4. Remaining Phase 3 work -- Produce and publish equivalent Linux package artifacts. - Run the Stage Runner hosted Windows and Linux suites from fresh artifact caches and record the evidence. - Implement and dry-run the versioned release workflow against the [release schema](../architecture/RELEASE_SCHEMA.md) before creating a tag; - the currently published Windows artifacts are Phase 3 inputs, not a full + the currently published Windows and Linux artifacts are Phase 3 inputs, not a full release. ## 5. Phase 3 completion criteria From a0cf8b0139ddf8d4b43ab9136b8d157ccee528de Mon Sep 17 00:00:00 2001 From: snkmcb Date: Thu, 24 Sep 2026 12:04:19 +0900 Subject: [PATCH 5/5] docs: record Stage Runner hosted consumer parity --- docs/architecture/RELEASE_SCHEMA.md | 10 ++++++---- docs/reports/2026-09-23-phase3-linux-artifacts.md | 8 ++++++++ docs/roadmap/current.md | 10 ++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/docs/architecture/RELEASE_SCHEMA.md b/docs/architecture/RELEASE_SCHEMA.md index 8bdb99c..504a2a5 100644 --- a/docs/architecture/RELEASE_SCHEMA.md +++ b/docs/architecture/RELEASE_SCHEMA.md @@ -2,7 +2,7 @@ > **Status: proposed, 2026-09-23.** This defines the intended versioned > release contract; it does not claim that a tag, release workflow, or GitHub -> release exists. The public Windows artifacts published during Phase 3 are +> release exists. The public Windows and Linux artifacts published during Phase 3 are > consumer-validation inputs, not a complete `v0.1.0` release. ## 1. Release unit and scope @@ -90,6 +90,8 @@ draft is reviewed and published. The existing public Windows and Linux `physicsCore` and `physicsJolt` OCI artifacts have been pulled and verified from fresh caches for the Phase 3 migration. They remain valid exact-digest inputs for that consumer, but do not -constitute a formal versioned release. The first release workflow should be -implemented and dry-run before any `v0.1.0` tag is pushed. Cross-repository -hosted consumer evidence and a finalized release note are still required. +constitute a formal versioned release. The cross-repository Stage Runner +[hosted consumer run](https://github.com/animu-sphere/usd-stage-runner/actions/runs/35853380748) +passed on Windows and Linux with artifact caches disabled. The first release +workflow should be implemented and dry-run before any `v0.1.0` tag is pushed; +a finalized release note is still required. diff --git a/docs/reports/2026-09-23-phase3-linux-artifacts.md b/docs/reports/2026-09-23-phase3-linux-artifacts.md index db2cc7a..b0c63da 100644 --- a/docs/reports/2026-09-23-phase3-linux-artifacts.md +++ b/docs/reports/2026-09-23-phase3-linux-artifacts.md @@ -38,3 +38,11 @@ check for `physicsCore`. These artifacts are Phase 3 consumer inputs, not a versioned `v0.1.0` release. Stage Runner's hosted Windows and Linux consumer results and the release dry run remain separate gates. + +## Follow-up + +Later on 2026-09-23 UTC, Stage Runner's +[hosted Windows and Linux run](https://github.com/animu-sphere/usd-stage-runner/actions/runs/35853380748) +passed 46 tests per platform using the published packages with artifact caches +disabled. Its separate plain-CMake run also passed. The versioned release dry +run remains open. diff --git a/docs/roadmap/current.md b/docs/roadmap/current.md index 0831e87..951687a 100644 --- a/docs/roadmap/current.md +++ b/docs/roadmap/current.md @@ -50,15 +50,17 @@ installed physicsCore + physicsJolt - Published equivalent Linux packages and verified their content and OCI digests from a fresh cache; see the [Linux artifact report](../reports/2026-09-23-phase3-linux-artifacts.md). +- Stage Runner passed hosted Windows and Linux OpenStrata consumer builds and + tests with artifact caches disabled, plus the plain-CMake hosted jobs; + [the consumer run](https://github.com/animu-sphere/usd-stage-runner/actions/runs/35853380748) + records both platform cells. ## 4. Remaining Phase 3 work -- Run the Stage Runner hosted Windows and Linux suites from fresh artifact - caches and record the evidence. - Implement and dry-run the versioned release workflow against the [release schema](../architecture/RELEASE_SCHEMA.md) before creating a tag; - the currently published Windows and Linux artifacts are Phase 3 inputs, not a full - release. + the currently published Windows and Linux artifacts are Phase 3 inputs, not + a full release. ## 5. Phase 3 completion criteria