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
23 changes: 23 additions & 0 deletions .github/workflows/ost-source-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,26 @@ 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"
# 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
if: ${{ matrix.verify == 'pyramid' || matrix.verify == 'package' }}
shell: bash
Expand All @@ -454,10 +474,13 @@ jobs:
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: report-${{ matrix.name }}
include-hidden-files: true
path: |
.strata/targets/
**/.strata/reports/
**/dist/plugins/
**/dist/tools/
libs/physicsCore/dist/
backends/physicsJolt/dist/
dist/products/
.ost-ci/
17 changes: 9 additions & 8 deletions docs/architecture/RELEASE_SCHEMA.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -87,10 +87,11 @@ 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 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.
48 changes: 48 additions & 0 deletions docs/reports/2026-09-23-phase3-linux-artifacts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# 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.

## 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.
1 change: 1 addition & 0 deletions docs/reports/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
14 changes: 9 additions & 5 deletions docs/roadmap/current.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,20 @@ 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).
- 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

- 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
release.
the currently published Windows and Linux artifacts are Phase 3 inputs, not
a full release.

## 5. Phase 3 completion criteria

Expand Down
Loading