From 132533d4e330a6a1e139c499b5f0f271ed6d4ce5 Mon Sep 17 00:00:00 2001 From: snkmcb Date: Sun, 20 Sep 2026 01:36:47 +0900 Subject: [PATCH 1/2] docs: sync v0.5 status and ost pin --- .github/workflows/ost-source-ci.yml | 100 +++++++++++++++++++------- README.md | 19 +++-- docs/architecture/WORKSPACE.md | 8 +-- docs/compatibility/OPENUSD.md | 2 +- docs/guides/BUILDING.md | 13 ++-- docs/roadmap/implementation-status.md | 2 +- libs/usd-asset-cache/README.md | 8 ++- openstrata.ci.yaml | 4 +- tests/README.md | 2 +- 9 files changed, 107 insertions(+), 51 deletions(-) diff --git a/.github/workflows/ost-source-ci.yml b/.github/workflows/ost-source-ci.yml index f386509..562f7cd 100644 --- a/.github/workflows/ost-source-ci.yml +++ b/.github/workflows/ost-source-ci.yml @@ -39,6 +39,9 @@ jobs: - name: http-resolver-pr-linux lane: pull_request runtime_artifact: sha256:3bf31789daa60ef650df35ab276bd67d0c0ee44a960311f78835cc0962efe261 + require_openusd: "" + require_openusd_version: "" + openusd_flags: "" target_trust: local minimum_trust: local require_evidence: all @@ -57,6 +60,9 @@ jobs: - name: http-resolver-pr-macos-arm64 lane: pull_request runtime_artifact: sha256:8d1322126b8f3aa4dd1791184603d7e1b4571bd4d6d89dd80bb75bdf5eef397c + require_openusd: "" + require_openusd_version: "" + openusd_flags: "" target_trust: local minimum_trust: local require_evidence: all @@ -79,7 +85,7 @@ jobs: if: ${{ matrix.hosted }} shell: bash run: echo "::notice title=OpenStrata hosted-runner usage::This job uses GitHub-hosted infrastructure. Private repositories may incur GitHub Actions usage charges. Review repository billing and Actions usage settings." - - name: Bootstrap ost 0.22.8 (pinned release asset, checksum-verified) + - name: Bootstrap ost 0.22.10 (pinned release asset, checksum-verified) if: ${{ matrix.hosted }} shell: bash run: | @@ -97,7 +103,7 @@ jobs: *) : ;; esac asset="ost-cli-${triple}.${ext}" - base="https://github.com/animu-sphere/open-strata/releases/download/v0.22.8" + base="https://github.com/animu-sphere/open-strata/releases/download/v0.22.10" curl -fsSLo "$asset" "$base/$asset" curl -fsSLo "$asset.sha256" "$base/$asset.sha256" actual="$( (command -v sha256sum > /dev/null && sha256sum "$asset" || shasum -a 256 "$asset") | cut -d' ' -f1 )" @@ -131,7 +137,7 @@ jobs: echo "$exported_path" >> "$GITHUB_PATH" json_executable="$(printf '%s' "$executable" | sed 's/\\/\\\\/g; s/"/\\"/g')" json_exported_path="$(printf '%s' "$exported_path" | sed 's/\\/\\\\/g; s/"/\\"/g')" - printf '{"schema":1,"pinned_version":"%s","asset":"%s","sha256":"%s","executable":"%s","exported_path":"%s"}\n' "0.22.8" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json + printf '{"schema":1,"pinned_version":"%s","asset":"%s","sha256":"%s","executable":"%s","exported_path":"%s"}\n' "0.22.10" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json - name: Check ost is available and record its version shell: bash run: | @@ -144,8 +150,8 @@ jobs: fi echo "$version" - if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.22.8" ]; then - echo "::error title=ost bootstrap::expected 'ost 0.22.8', got '$version'" ; exit 1 + if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.22.10" ]; then + echo "::error title=ost bootstrap::expected 'ost 0.22.10', got '$version'" ; exit 1 fi printf '{"schema":1,"ost_version":"%s"}\n' "$version" > .ost-ci/ost-version.json - name: Validate the CI manifest @@ -157,29 +163,43 @@ jobs: uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.22.8-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.22.10-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} - name: Pull the pinned runtime SDK from its remote reference if: ${{ matrix.runtime_remote != '' }} shell: bash run: | set -euo pipefail mkdir -p .ost-ci + openusd_args=() + if [ -n "${{ matrix.require_openusd }}" ]; then + openusd_args+=(--require-openusd "${{ matrix.require_openusd }}") + fi + if [ -n "${{ matrix.require_openusd_version }}" ]; then + openusd_args+=(--require-openusd-version "${{ matrix.require_openusd_version }}") + fi if ost artifact show "${{ matrix.runtime_artifact }}" --json > /dev/null 2>&1 \ - && ost artifact verify "${{ matrix.runtime_artifact }}" ${{ matrix.evidence_flags }} --json > .ost-ci/runtime-cache-verify.json; then + && ost artifact verify "${{ matrix.runtime_artifact }}" ${{ matrix.evidence_flags }} "${openusd_args[@]}" --json > .ost-ci/runtime-cache-verify.json; then echo "pinned runtime already present and verified (cache hit) -- skipping the remote pull" else if [ "${{ matrix.hosted }}" = "true" ] && [ -n "${OST_HOME:-}" ]; then rm -rf "${OST_HOME}/artifacts" fi - ost artifact pull "${{ matrix.runtime_remote }}" --expect-artifact "${{ matrix.runtime_artifact }}" --require-kind runtime --json | tee .ost-ci/runtime-pull.json + ost artifact pull "${{ matrix.runtime_remote }}" --expect-artifact "${{ matrix.runtime_artifact }}" --require-kind runtime "${openusd_args[@]}" --json | tee .ost-ci/runtime-pull.json fi - name: Verify and materialize the pinned runtime SDK shell: bash run: | set -euo pipefail mkdir -p .ost-ci - printf '{"schema":1,"runtime_artifact":"%s","source":"%s"}\n' "${{ matrix.runtime_artifact }}" "${{ matrix.runtime_remote != '' && 'remote-pull' || 'local-registry' }}" > .ost-ci/runtime-source.json - ost artifact verify ${{ matrix.runtime_artifact }} --minimum-trust ${{ matrix.minimum_trust }} ${{ matrix.evidence_flags }} + printf '{"schema":1,"runtime_artifact":"%s","require_openusd":"%s","require_openusd_version":"%s","source":"%s"}\n' "${{ matrix.runtime_artifact }}" "${{ matrix.require_openusd }}" "${{ matrix.require_openusd_version }}" "${{ matrix.runtime_remote != '' && 'remote-pull' || 'local-registry' }}" > .ost-ci/runtime-source.json + openusd_args=() + if [ -n "${{ matrix.require_openusd }}" ]; then + openusd_args+=(--require-openusd "${{ matrix.require_openusd }}") + fi + if [ -n "${{ matrix.require_openusd_version }}" ]; then + openusd_args+=(--require-openusd-version "${{ matrix.require_openusd_version }}") + fi + ost artifact verify ${{ matrix.runtime_artifact }} --minimum-trust ${{ matrix.minimum_trust }} ${{ matrix.evidence_flags }} "${openusd_args[@]}" ost runtime pull ${{ matrix.platform }} --profile ${{ matrix.profile }} --from-artifact ${{ matrix.runtime_artifact }} --force - name: Remove resumable transfer state before caching if: ${{ matrix.hosted && vars.OST_CI_DISABLE_CACHE != 'true' && steps.runtime-cache-restore.outputs.cache-hit != 'true' }} @@ -190,7 +210,7 @@ jobs: uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.22.8-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.22.10-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} - name: Install the host packages this runtime needs to be consumed if: ${{ matrix.host_packages_apt != '' || matrix.host_packages_brew != '' }} shell: bash @@ -282,6 +302,9 @@ jobs: - name: workspace-graph-pr-linux lane: pull_request runtime_artifact: sha256:3bf31789daa60ef650df35ab276bd67d0c0ee44a960311f78835cc0962efe261 + require_openusd: "" + require_openusd_version: "" + openusd_flags: "" target_trust: local minimum_trust: local require_evidence: all @@ -295,6 +318,9 @@ jobs: - name: workspace-graph-pr-windows lane: pull_request runtime_artifact: sha256:ebb0c7da509ee14ada19ee5b461de6996aad0024b5c9640f12dde76912e849b5 + require_openusd: "" + require_openusd_version: "" + openusd_flags: "" target_trust: local minimum_trust: local require_evidence: all @@ -312,7 +338,7 @@ jobs: if: ${{ matrix.hosted }} shell: bash run: echo "::notice title=OpenStrata hosted-runner usage::This job uses GitHub-hosted infrastructure. Private repositories may incur GitHub Actions usage charges. Review repository billing and Actions usage settings." - - name: Bootstrap ost 0.22.8 (pinned release asset, checksum-verified) + - name: Bootstrap ost 0.22.10 (pinned release asset, checksum-verified) if: ${{ matrix.hosted }} shell: bash run: | @@ -330,7 +356,7 @@ jobs: *) : ;; esac asset="ost-cli-${triple}.${ext}" - base="https://github.com/animu-sphere/open-strata/releases/download/v0.22.8" + base="https://github.com/animu-sphere/open-strata/releases/download/v0.22.10" curl -fsSLo "$asset" "$base/$asset" curl -fsSLo "$asset.sha256" "$base/$asset.sha256" actual="$( (command -v sha256sum > /dev/null && sha256sum "$asset" || shasum -a 256 "$asset") | cut -d' ' -f1 )" @@ -364,7 +390,7 @@ jobs: echo "$exported_path" >> "$GITHUB_PATH" json_executable="$(printf '%s' "$executable" | sed 's/\\/\\\\/g; s/"/\\"/g')" json_exported_path="$(printf '%s' "$exported_path" | sed 's/\\/\\\\/g; s/"/\\"/g')" - printf '{"schema":1,"pinned_version":"%s","asset":"%s","sha256":"%s","executable":"%s","exported_path":"%s"}\n' "0.22.8" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json + printf '{"schema":1,"pinned_version":"%s","asset":"%s","sha256":"%s","executable":"%s","exported_path":"%s"}\n' "0.22.10" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json - name: Check ost is available and record its version shell: bash run: | @@ -377,8 +403,8 @@ jobs: fi echo "$version" - if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.22.8" ]; then - echo "::error title=ost bootstrap::expected 'ost 0.22.8', got '$version'" ; exit 1 + if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.22.10" ]; then + echo "::error title=ost bootstrap::expected 'ost 0.22.10', got '$version'" ; exit 1 fi printf '{"schema":1,"ost_version":"%s"}\n' "$version" > .ost-ci/ost-version.json - name: Validate the CI manifest @@ -406,6 +432,9 @@ jobs: - name: workspace-pr-linux lane: pull_request runtime_artifact: sha256:3bf31789daa60ef650df35ab276bd67d0c0ee44a960311f78835cc0962efe261 + require_openusd: "" + require_openusd_version: "" + openusd_flags: "" target_trust: local minimum_trust: local require_evidence: all @@ -423,6 +452,9 @@ jobs: - name: workspace-pr-macos-arm64 lane: pull_request runtime_artifact: sha256:8d1322126b8f3aa4dd1791184603d7e1b4571bd4d6d89dd80bb75bdf5eef397c + require_openusd: "" + require_openusd_version: "" + openusd_flags: "" target_trust: local minimum_trust: local require_evidence: all @@ -444,7 +476,7 @@ jobs: if: ${{ matrix.hosted }} shell: bash run: echo "::notice title=OpenStrata hosted-runner usage::This job uses GitHub-hosted infrastructure. Private repositories may incur GitHub Actions usage charges. Review repository billing and Actions usage settings." - - name: Bootstrap ost 0.22.8 (pinned release asset, checksum-verified) + - name: Bootstrap ost 0.22.10 (pinned release asset, checksum-verified) if: ${{ matrix.hosted }} shell: bash run: | @@ -462,7 +494,7 @@ jobs: *) : ;; esac asset="ost-cli-${triple}.${ext}" - base="https://github.com/animu-sphere/open-strata/releases/download/v0.22.8" + base="https://github.com/animu-sphere/open-strata/releases/download/v0.22.10" curl -fsSLo "$asset" "$base/$asset" curl -fsSLo "$asset.sha256" "$base/$asset.sha256" actual="$( (command -v sha256sum > /dev/null && sha256sum "$asset" || shasum -a 256 "$asset") | cut -d' ' -f1 )" @@ -496,7 +528,7 @@ jobs: echo "$exported_path" >> "$GITHUB_PATH" json_executable="$(printf '%s' "$executable" | sed 's/\\/\\\\/g; s/"/\\"/g')" json_exported_path="$(printf '%s' "$exported_path" | sed 's/\\/\\\\/g; s/"/\\"/g')" - printf '{"schema":1,"pinned_version":"%s","asset":"%s","sha256":"%s","executable":"%s","exported_path":"%s"}\n' "0.22.8" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json + printf '{"schema":1,"pinned_version":"%s","asset":"%s","sha256":"%s","executable":"%s","exported_path":"%s"}\n' "0.22.10" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json - name: Check ost is available and record its version shell: bash run: | @@ -509,8 +541,8 @@ jobs: fi echo "$version" - if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.22.8" ]; then - echo "::error title=ost bootstrap::expected 'ost 0.22.8', got '$version'" ; exit 1 + if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.22.10" ]; then + echo "::error title=ost bootstrap::expected 'ost 0.22.10', got '$version'" ; exit 1 fi printf '{"schema":1,"ost_version":"%s"}\n' "$version" > .ost-ci/ost-version.json - name: Validate the CI manifest @@ -522,29 +554,43 @@ jobs: uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.22.8-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.22.10-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} - name: Pull the pinned runtime SDK from its remote reference if: ${{ matrix.runtime_remote != '' }} shell: bash run: | set -euo pipefail mkdir -p .ost-ci + openusd_args=() + if [ -n "${{ matrix.require_openusd }}" ]; then + openusd_args+=(--require-openusd "${{ matrix.require_openusd }}") + fi + if [ -n "${{ matrix.require_openusd_version }}" ]; then + openusd_args+=(--require-openusd-version "${{ matrix.require_openusd_version }}") + fi if ost artifact show "${{ matrix.runtime_artifact }}" --json > /dev/null 2>&1 \ - && ost artifact verify "${{ matrix.runtime_artifact }}" ${{ matrix.evidence_flags }} --json > .ost-ci/runtime-cache-verify.json; then + && ost artifact verify "${{ matrix.runtime_artifact }}" ${{ matrix.evidence_flags }} "${openusd_args[@]}" --json > .ost-ci/runtime-cache-verify.json; then echo "pinned runtime already present and verified (cache hit) -- skipping the remote pull" else if [ "${{ matrix.hosted }}" = "true" ] && [ -n "${OST_HOME:-}" ]; then rm -rf "${OST_HOME}/artifacts" fi - ost artifact pull "${{ matrix.runtime_remote }}" --expect-artifact "${{ matrix.runtime_artifact }}" --require-kind runtime --json | tee .ost-ci/runtime-pull.json + ost artifact pull "${{ matrix.runtime_remote }}" --expect-artifact "${{ matrix.runtime_artifact }}" --require-kind runtime "${openusd_args[@]}" --json | tee .ost-ci/runtime-pull.json fi - name: Verify and materialize the pinned runtime SDK shell: bash run: | set -euo pipefail mkdir -p .ost-ci - printf '{"schema":1,"runtime_artifact":"%s","source":"%s"}\n' "${{ matrix.runtime_artifact }}" "${{ matrix.runtime_remote != '' && 'remote-pull' || 'local-registry' }}" > .ost-ci/runtime-source.json - ost artifact verify ${{ matrix.runtime_artifact }} --minimum-trust ${{ matrix.minimum_trust }} ${{ matrix.evidence_flags }} + printf '{"schema":1,"runtime_artifact":"%s","require_openusd":"%s","require_openusd_version":"%s","source":"%s"}\n' "${{ matrix.runtime_artifact }}" "${{ matrix.require_openusd }}" "${{ matrix.require_openusd_version }}" "${{ matrix.runtime_remote != '' && 'remote-pull' || 'local-registry' }}" > .ost-ci/runtime-source.json + openusd_args=() + if [ -n "${{ matrix.require_openusd }}" ]; then + openusd_args+=(--require-openusd "${{ matrix.require_openusd }}") + fi + if [ -n "${{ matrix.require_openusd_version }}" ]; then + openusd_args+=(--require-openusd-version "${{ matrix.require_openusd_version }}") + fi + ost artifact verify ${{ matrix.runtime_artifact }} --minimum-trust ${{ matrix.minimum_trust }} ${{ matrix.evidence_flags }} "${openusd_args[@]}" ost runtime pull ${{ matrix.platform }} --profile ${{ matrix.profile }} --from-artifact ${{ matrix.runtime_artifact }} --force - name: Remove resumable transfer state before caching if: ${{ matrix.hosted && vars.OST_CI_DISABLE_CACHE != 'true' && steps.runtime-cache-restore.outputs.cache-hit != 'true' }} @@ -555,7 +601,7 @@ jobs: uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.22.8-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.22.10-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} - name: Install the host packages this runtime needs to be consumed if: ${{ matrix.host_packages_apt != '' || matrix.host_packages_brew != '' }} shell: bash diff --git a/README.md b/README.md index 421f020..79acd9d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -# usd-http-resolver +# OpenUSD Http Resolver + +[![CI](https://github.com/animu-sphere/usd-http-resolver/actions/workflows/core-ci.yml/badge.svg)](https://github.com/animu-sphere/usd-http-resolver/actions/workflows/core-ci.yml) +[![License](https://img.shields.io/github/license/animu-sphere/usd-http-resolver)](LICENSE) +[![OpenUSD](https://img.shields.io/badge/OpenUSD-26.08-4C78A8)](docs/compatibility/OPENUSD.md) An OpenUSD asset resolver for `http://` and `https://`, and the I/O substrate beneath it. @@ -29,12 +33,14 @@ index, and the chunks actually in view — not 10 GB. ## Status -**`v0.4.0` is released: a `UsdStage` opens over HTTP, a clustered read of a +**`v0.5.0` is released: a `UsdStage` opens over HTTP, a clustered read of a remote asset costs three requests where it cost eighteen, and a process that starts cold pays nothing for a window an earlier one fetched. The read contract, the local backend, the shared boundary suite, the hostile-server corpus, the HTTP backend, the `ArResolver` bundle, the block cache, identity exposure, and -the on-disk cache tier are in the tree and passing.** +the on-disk cache tier are in the tree and passing. The aggregate resolver +product's installed-artifact probe opens a remote root layer and its relative +child, and requires a successful byte-range request.** That ordering is the point. `v0.1.0` shipped a local file reader, which is not interesting; what was interesting is that it arrived with the harness that makes @@ -130,9 +136,10 @@ the per-format compatibility matrix, are in §4 of ## First consumer -`usd-pointcloud-plugins` reads COPC over this resolver in `v0.5.0` — with no -HTTP code of its own, no build dependency, and no change to its COPC reader. If -it needs one, the abstraction leaked and the fix belongs here. +`usd-pointcloud-plugins` is the first planned consumer integration in +`v0.6.0`. It should read COPC over this resolver with no HTTP code of its own, +no build dependency, and no change to its COPC reader. If it needs one, the +abstraction leaked and the fix belongs here. ## Building diff --git a/docs/architecture/WORKSPACE.md b/docs/architecture/WORKSPACE.md index afdc5b2..f3c9545 100644 --- a/docs/architecture/WORKSPACE.md +++ b/docs/architecture/WORKSPACE.md @@ -357,7 +357,7 @@ member descriptor exists. 11. A directory is created when its first tested capability exists. 12. A release that changes I/O behavior records a metrics baseline. -## Composed-runtime packaging (OST v0.22.8 dogfood) +## Composed-runtime packaging (OST v0.22.10) The aggregate membership is explicitly pinned by `workspace.release_members` in `openstrata.toml`. Component-owned acceptance probes are installed under @@ -365,6 +365,6 @@ The aggregate membership is explicitly pinned by `workspace.release_members` in They exercise the packaged payload and are not runtime dependencies. Probe output is caller-owned evidence and must not modify the immutable composed prefix. -Package producers need the aggregate payload projection correction found during -OST v0.22.8 dogfooding; stock ost 0.22.7 products advertise install sources absent -from their archive inventory. CI source builds remain pinned to released 0.22.7. +Package producers need the aggregate payload projection correction first found +during OST v0.22.8 dogfooding. Current source builds are pinned to released +OST v0.22.10. diff --git a/docs/compatibility/OPENUSD.md b/docs/compatibility/OPENUSD.md index a80073a..a0d929e 100644 --- a/docs/compatibility/OPENUSD.md +++ b/docs/compatibility/OPENUSD.md @@ -21,7 +21,7 @@ runtime: | --- | --- | | Target OpenUSD version | 26.08 | | Accepted range | `>=26.08,<27.0` | -| OpenStrata CLI | 0.22.7 | +| OpenStrata CLI | 0.22.10 | | OpenStrata platform / profile | `cy2026` / `usd` | | C++ standard | C++17 | | CMake | 3.23 or newer | diff --git a/docs/guides/BUILDING.md b/docs/guides/BUILDING.md index caf6d8c..b1a6e4f 100644 --- a/docs/guides/BUILDING.md +++ b/docs/guides/BUILDING.md @@ -4,16 +4,17 @@ This repository is an OpenStrata project. It builds either through `ost`, which resolves and composes a certified OpenUSD runtime, or through plain CMake — and, for everything under `libs/`, with no OpenUSD at all. -Status: `libs/usd-asset-io`, `libs/usd-asset-local`, and the shared boundary -suite in `tests/` build and test today. No bundle exists yet, so the `ost -plugin` steps below are the workflow the first bundle lands into rather than -something you can run. +Status: `libs/usd-asset-io`, `libs/usd-asset-local`, the shared boundary suite +in `tests/`, and the `plugins/http-resolver` bundle build and test today. The +v0.5.0 aggregate product and its packaged probe are covered by the release +workflow; the `ost plugin` commands below cover bundle and workspace +verification. ## Requirements | Tool | Version | | --- | --- | -| `ost` | 0.22.7 or newer | +| `ost` | 0.22.10 or newer | | CMake | 3.23 or newer | | Ninja | any recent | | A C++17 compiler | MSVC 143, Clang, or GCC | @@ -29,7 +30,7 @@ ost doctor ost library build libs/usd-asset-io # one descriptor-owned library ost library test libs/usd-asset-io -ost plugin build http-resolver # once the bundle exists +ost plugin build http-resolver ost plugin test http-resolver ost plugin test --workspace --up-to 4 ``` diff --git a/docs/roadmap/implementation-status.md b/docs/roadmap/implementation-status.md index e03c678..e709722 100644 --- a/docs/roadmap/implementation-status.md +++ b/docs/roadmap/implementation-status.md @@ -211,7 +211,7 @@ therefore ship unexercised. | Component-owned acceptance probe, installed with the product | Done — `share/usd-http-resolver/probes/packaged_probe.py`, mapped in as product data so acceptance runs from the artifact | | Probe proves registration *and* transport, not just loading | Done — a remote root layer, a relative child layer followed to a second remote layer, and a byte-range request that must succeed | | No producer build directory on any path the probe uses | Done — that separation is the reason the probe exists rather than reusing `httpResolver_stage` | -| OpenStrata 0.22.8 release pins, generated CI refreshed | Done — canonical OpenUSD 26.08 pins regenerated on the v0.22.8 line | +| OpenStrata 0.22.10 release pin, generated CI refreshed | Done — current CI and canonical OpenUSD 26.08 pins use the v0.22.10 line | | Reproducibility: two identical package operations, same SHA-256 inventory | Done — a release gate, walked; platform digests live in the generated release evidence rather than in the source record | | Behavior unchanged from `v0.4.0` | Asserted — transport, validator, cache, diagnostics, and configuration contracts all carried forward; the I/O baseline is `v0.4.0`'s, because the reader and cache algorithms did not move | | OpenStrata formation composition | Deferred to `v0.7.0` — a product exists; a formation pinning this resolver and a consumer bundle by digest against one certified runtime does not | diff --git a/libs/usd-asset-cache/README.md b/libs/usd-asset-cache/README.md index 86c5399..43c1c9b 100644 --- a/libs/usd-asset-cache/README.md +++ b/libs/usd-asset-cache/README.md @@ -231,8 +231,10 @@ nothing. - `v0.4.0`: persistence, admitted per asset by validator strength, and the identity exposure that goes with it (CACHE.md §8). -- `v0.5.0`: the first measurement over real distance. The block size chosen +- `v0.5.0`: the packaged resolver product and artifact-owned acceptance probe; + the cache algorithms and their defaults do not change. +- `v0.6.0`: the first measurement over real distance. The block size chosen here is chosen on request counts under a stated premise about round-trip cost - that loopback cannot price; `v0.5.0` is where the premise gets tested. -- `v0.6.0`: cache configuration through `ArResolverContext`, so that two stages + that loopback cannot price; this is where the premise gets tested. +- `v0.7.0`: cache configuration through `ArResolverContext`, so that two stages in one process can have two policies. diff --git a/openstrata.ci.yaml b/openstrata.ci.yaml index 55f6c16..111d823 100644 --- a/openstrata.ci.yaml +++ b/openstrata.ci.yaml @@ -34,11 +34,11 @@ schema: 1 bootstrap: ost: # Canonical OpenUSD 26.08 SDK leaves, produced with ost 0.22.3. - # ost 0.22.8 consumes their current manifest and supports locked composition. + # ost 0.22.10 consumes their current manifest and supports locked composition. # Windows/Linux use gl; macOS arm64 uses metal. Archive and OCI identities # are separate pins. This replaces the retired pre-canonical artifacts and # the 0.21.0 schema-compatibility workaround (historical OST report 03). - version: "0.22.8" + version: "0.22.10" repository: animu-sphere/open-strata runners: diff --git a/tests/README.md b/tests/README.md index b8c4755..c53fb6b 100644 --- a/tests/README.md +++ b/tests/README.md @@ -55,7 +55,7 @@ Nothing in it chooses a default from wall clock. Loopback has no round-trip time worth the name, and the whole argument for merging small reads is about a round-trip time this harness cannot produce; the defaults come from the request counts and the byte counts, under a premise about round-trip cost that the -record states outright and `v0.5.0` is where it gets tested. +record states outright and `v0.6.0` is where it gets tested. ## The baseline From 5d148ebd6dcda18c684d552d6a2cead59e3a5393 Mon Sep 17 00:00:00 2001 From: snkmcb Date: Sun, 20 Sep 2026 01:47:14 +0900 Subject: [PATCH 2/2] ci: pin OpenUSD cells for ost 0.22.10 --- .github/workflows/ost-source-ci.yml | 24 ++++++++++++------------ openstrata.ci.yaml | 8 ++++++++ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ost-source-ci.yml b/.github/workflows/ost-source-ci.yml index 562f7cd..8231ba2 100644 --- a/.github/workflows/ost-source-ci.yml +++ b/.github/workflows/ost-source-ci.yml @@ -39,9 +39,9 @@ jobs: - name: http-resolver-pr-linux lane: pull_request runtime_artifact: sha256:3bf31789daa60ef650df35ab276bd67d0c0ee44a960311f78835cc0962efe261 - require_openusd: "" - require_openusd_version: "" - openusd_flags: "" + require_openusd: "cy2026/linux/x86_64/gl" + require_openusd_version: "26.08" + openusd_flags: "--require-openusd cy2026/linux/x86_64/gl --require-openusd-version 26.08" target_trust: local minimum_trust: local require_evidence: all @@ -60,9 +60,9 @@ jobs: - name: http-resolver-pr-macos-arm64 lane: pull_request runtime_artifact: sha256:8d1322126b8f3aa4dd1791184603d7e1b4571bd4d6d89dd80bb75bdf5eef397c - require_openusd: "" - require_openusd_version: "" - openusd_flags: "" + require_openusd: "cy2026/macos/arm64/metal" + require_openusd_version: "26.08" + openusd_flags: "--require-openusd cy2026/macos/arm64/metal --require-openusd-version 26.08" target_trust: local minimum_trust: local require_evidence: all @@ -432,9 +432,9 @@ jobs: - name: workspace-pr-linux lane: pull_request runtime_artifact: sha256:3bf31789daa60ef650df35ab276bd67d0c0ee44a960311f78835cc0962efe261 - require_openusd: "" - require_openusd_version: "" - openusd_flags: "" + require_openusd: "cy2026/linux/x86_64/gl" + require_openusd_version: "26.08" + openusd_flags: "--require-openusd cy2026/linux/x86_64/gl --require-openusd-version 26.08" target_trust: local minimum_trust: local require_evidence: all @@ -452,9 +452,9 @@ jobs: - name: workspace-pr-macos-arm64 lane: pull_request runtime_artifact: sha256:8d1322126b8f3aa4dd1791184603d7e1b4571bd4d6d89dd80bb75bdf5eef397c - require_openusd: "" - require_openusd_version: "" - openusd_flags: "" + require_openusd: "cy2026/macos/arm64/metal" + require_openusd_version: "26.08" + openusd_flags: "--require-openusd cy2026/macos/arm64/metal --require-openusd-version 26.08" target_trust: local minimum_trust: local require_evidence: all diff --git a/openstrata.ci.yaml b/openstrata.ci.yaml index 111d823..66fdf13 100644 --- a/openstrata.ci.yaml +++ b/openstrata.ci.yaml @@ -148,6 +148,8 @@ cells: expected_oci_digest: sha256:8d2d599489ee623044f4360ad3a2b979e2966e6ad2f949e5aa9083570e59cc4f platform: cy2026 profile: usd + require_openusd: cy2026/linux/x86_64/gl + require_openusd_version: "26.08" host_python: "3.13" host_packages: apt: [libx11-dev, libxt-dev, libxext-dev, libgl1-mesa-dev, libcurl4-openssl-dev] @@ -163,6 +165,8 @@ cells: expected_oci_digest: sha256:8486d94286b60cc20b53c926757f1802442569f9d9a7eecdadf2c9895b2efeb6 platform: cy2026 profile: usd + require_openusd: cy2026/macos/arm64/metal + require_openusd_version: "26.08" host_python: "3.13" verify: test @@ -201,6 +205,8 @@ cells: bundle: plugins/http-resolver platform: cy2026 profile: usd + require_openusd: cy2026/linux/x86_64/gl + require_openusd_version: "26.08" host_packages: apt: [libx11-dev, libxt-dev, libxext-dev, libgl1-mesa-dev, libcurl4-openssl-dev] up_to: 1 @@ -215,4 +221,6 @@ cells: bundle: plugins/http-resolver platform: cy2026 profile: usd + require_openusd: cy2026/macos/arm64/metal + require_openusd_version: "26.08" up_to: 1