From 3f918f2950689c5c7651a0d9f1d9f824f86b627d Mon Sep 17 00:00:00 2001 From: snkmcb Date: Wed, 23 Sep 2026 20:03:47 +0900 Subject: [PATCH] Move the ost pin to 0.23.3, with the ecosystem 0.23.3 pulls, graphs and validates an external library artifact only a tool declares, and discards a build tree whose CMake cache was configured against another runtime (usd-vrm-plugins' ost report 44). The re-render moves only the version. Locally the tree was rebuilt under 0.23.3: the graph is valid, 32 of 32 pass, and check_docs.py agrees. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ost-source-ci.yml | 38 ++++++++++++++--------------- .github/workflows/release.yml | 10 ++++---- CHANGELOG.md | 5 ++++ docs/architecture/DEPENDENCIES.md | 2 +- docs/guides/building.md | 2 +- openstrata.ci.yaml | 9 ++++--- 6 files changed, 37 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ost-source-ci.yml b/.github/workflows/ost-source-ci.yml index 87c4490..39266f4 100644 --- a/.github/workflows/ost-source-ci.yml +++ b/.github/workflows/ost-source-ci.yml @@ -106,7 +106,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.23.2 (pinned release asset, checksum-verified) + - name: Bootstrap ost 0.23.3 (pinned release asset, checksum-verified) if: ${{ matrix.hosted }} shell: bash run: | @@ -124,7 +124,7 @@ jobs: *) : ;; esac asset="ost-cli-${triple}.${ext}" - base="https://github.com/animu-sphere/open-strata/releases/download/v0.23.2" + base="https://github.com/animu-sphere/open-strata/releases/download/v0.23.3" 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 )" @@ -158,7 +158,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.23.2" "$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.23.3" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json - name: Check ost is available and record its version shell: bash run: | @@ -171,8 +171,8 @@ jobs: fi echo "$version" - if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.23.2" ]; then - echo "::error title=ost bootstrap::expected 'ost 0.23.2', got '$version'" ; exit 1 + if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.23.3" ]; then + echo "::error title=ost bootstrap::expected 'ost 0.23.3', got '$version'" ; exit 1 fi printf '{"schema":1,"ost_version":"%s"}\n' "$version" > .ost-ci/ost-version.json - name: Validate the CI manifest @@ -184,7 +184,7 @@ jobs: uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.23.2-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.23.3-${{ 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 @@ -234,7 +234,7 @@ jobs: uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.23.2-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.23.3-${{ 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 @@ -346,7 +346,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.23.2 (pinned release asset, checksum-verified) + - name: Bootstrap ost 0.23.3 (pinned release asset, checksum-verified) if: ${{ matrix.hosted }} shell: bash run: | @@ -364,7 +364,7 @@ jobs: *) : ;; esac asset="ost-cli-${triple}.${ext}" - base="https://github.com/animu-sphere/open-strata/releases/download/v0.23.2" + base="https://github.com/animu-sphere/open-strata/releases/download/v0.23.3" 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 )" @@ -398,7 +398,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.23.2" "$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.23.3" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json - name: Check ost is available and record its version shell: bash run: | @@ -411,8 +411,8 @@ jobs: fi echo "$version" - if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.23.2" ]; then - echo "::error title=ost bootstrap::expected 'ost 0.23.2', got '$version'" ; exit 1 + if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.23.3" ]; then + echo "::error title=ost bootstrap::expected 'ost 0.23.3', got '$version'" ; exit 1 fi printf '{"schema":1,"ost_version":"%s"}\n' "$version" > .ost-ci/ost-version.json - name: Validate the CI manifest @@ -507,7 +507,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.23.2 (pinned release asset, checksum-verified) + - name: Bootstrap ost 0.23.3 (pinned release asset, checksum-verified) if: ${{ matrix.hosted }} shell: bash run: | @@ -525,7 +525,7 @@ jobs: *) : ;; esac asset="ost-cli-${triple}.${ext}" - base="https://github.com/animu-sphere/open-strata/releases/download/v0.23.2" + base="https://github.com/animu-sphere/open-strata/releases/download/v0.23.3" 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 )" @@ -559,7 +559,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.23.2" "$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.23.3" "$asset" "$actual" "$json_executable" "$json_exported_path" > .ost-ci/bootstrap.json - name: Check ost is available and record its version shell: bash run: | @@ -572,8 +572,8 @@ jobs: fi echo "$version" - if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.23.2" ]; then - echo "::error title=ost bootstrap::expected 'ost 0.23.2', got '$version'" ; exit 1 + if [ "${{ matrix.hosted }}" = "true" ] && [ "$version" != "ost 0.23.3" ]; then + echo "::error title=ost bootstrap::expected 'ost 0.23.3', got '$version'" ; exit 1 fi printf '{"schema":1,"ost_version":"%s"}\n' "$version" > .ost-ci/ost-version.json - name: Validate the CI manifest @@ -585,7 +585,7 @@ jobs: uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.23.2-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.23.3-${{ 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 @@ -635,7 +635,7 @@ jobs: uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.23.2-${{ runner.os }}-${{ runner.arch }}-${{ matrix.name }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.23.3-${{ 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/.github/workflows/release.yml b/.github/workflows/release.yml index 8f6cda1..5abc80e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -112,7 +112,7 @@ jobs: set -euo pipefail sudo apt-get update sudo apt-get install -y --no-install-recommends libx11-dev libxt-dev - - name: Bootstrap ost 0.23.2 (pinned release asset, checksum-verified) + - name: Bootstrap ost 0.23.3 (pinned release asset, checksum-verified) shell: bash run: | set -euo pipefail @@ -123,7 +123,7 @@ jobs: *) echo "::error title=ost bootstrap::no ost release asset for ${RUNNER_OS}-${RUNNER_ARCH}" ; exit 1 ;; esac asset="ost-cli-${triple}.${ext}" - base="https://github.com/animu-sphere/open-strata/releases/download/v0.23.2" + base="https://github.com/animu-sphere/open-strata/releases/download/v0.23.3" 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 )" @@ -155,8 +155,8 @@ jobs: version="$(ost --version)" fi echo "$version" - if [ "$version" != "ost 0.23.2" ]; then - echo "::error title=ost bootstrap::expected 'ost 0.23.2', got '$version'" ; exit 1 + if [ "$version" != "ost 0.23.3" ]; then + echo "::error title=ost bootstrap::expected 'ost 0.23.3', got '$version'" ; exit 1 fi # Restore only: the pull request lanes own these entries, and a release # run must not write a cache a later pull request would trust. @@ -165,7 +165,7 @@ jobs: uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .ost-ci-home/artifacts - key: ost-registry-0.23.2-${{ runner.os }}-${{ runner.arch }}-${{ matrix.cache_cell }}-${{ matrix.runtime_artifact }} + key: ost-registry-0.23.3-${{ runner.os }}-${{ runner.arch }}-${{ matrix.cache_cell }}-${{ matrix.runtime_artifact }} # The cache-hit test is the same predicate as the gate below, so a cached # record that would fail the gate drops through to a fresh pull. - name: Pull the pinned runtime SDK from its remote reference diff --git a/CHANGELOG.md b/CHANGELOG.md index a122352..8d80fc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,11 @@ Stage-contract version: **1**, authored since the Phase 0 importer. ### Changed +- **The `ost` pin is 0.23.3.** 0.23.3 adds a tool's own library edges to + `ost library pull`, the root build and the graph check, and discards a + build tree whose cache was configured against another runtime + (`usd-vrm-plugins`' ost report 44). Re-pinned with the ecosystem. + - **MMD IK is compared against an independent implementation (MOT-O9).** Over 12 local characters and two distributed motions, with the inputs matched to 0.02 mm, three.js r168's `CCDIKSolver` at the same stored loop diff --git a/docs/architecture/DEPENDENCIES.md b/docs/architecture/DEPENDENCIES.md index 3e119f5..fc21728 100644 --- a/docs/architecture/DEPENDENCIES.md +++ b/docs/architecture/DEPENDENCIES.md @@ -38,7 +38,7 @@ calls the MaterialX library. The MaterialX document version it declares | Compilers | MSVC on Windows, Clang on macOS (arm64), GCC on Linux — the three hosted lanes `usd-vrm-plugins` runs | | Windows flags | `/utf-8`, `NOMINMAX`, applied by `usdmmd_target_defaults()` in [cmake/UsdMmdTargets.cmake](../../cmake/UsdMmdTargets.cmake) ([WORKSPACE.md §5](WORKSPACE.md#5-build-modes)) | | Python | the Python OpenUSD was built against — 3.13 for the 26.08 runtimes — for stage tests and tooling. The root project finds the interpreter *after* OpenUSD, so it inherits the one `pxrConfig.cmake` names | -| OpenStrata | `ost` **0.23.2**, pinned in `openstrata.ci.yaml`; required for digest-pinned external-library artifacts in root builds | +| OpenStrata | `ost` **0.23.3**, pinned in `openstrata.ci.yaml`; required for digest-pinned external-library artifacts in root builds | | Unit-test framework | **none**, as in `usd-vrm-plugins`: each suite is a plain executable that checks with `assert()`, compiled with `NDEBUG` undefined so Release builds still check, and registered with CTest | | Sanitizers and fuzzing | Clang 18's AddressSanitizer, UndefinedBehaviorSanitizer and libFuzzer, from Ubuntu 24.04's packages, in [parser-sanitizers.yml](../../.github/workflows/parser-sanitizers.yml) only; `mmdPmx`'s `MMDPMX_SANITIZERS` and `MMDPMX_BUILD_FUZZER` options, and the matching `MMDMODEL_`, `MOTIONVMD_` and `MMDMOTIONBINDING_` ones, switch them on, and nothing shipped is built with them. Toolchain runtimes, not dependencies: no code is vendored and nothing links them outside that lane | diff --git a/docs/guides/building.md b/docs/guides/building.md index 98782cd..1209077 100644 --- a/docs/guides/building.md +++ b/docs/guides/building.md @@ -19,7 +19,7 @@ Commands are PowerShell, run from the repository root. integration tests import OpenUSD's bindings, which refuse any other version (`Module use of python313.dll conflicts with this version of Python`). - CMake 3.22 or later and a C++20 compiler. -- For the OpenStrata path: `ost` 0.23.2 and a `cy2026` / `usd` runtime. +- For the OpenStrata path: `ost` 0.23.3 and a `cy2026` / `usd` runtime. ## Plain CMake diff --git a/openstrata.ci.yaml b/openstrata.ci.yaml index 8264b77..b0338f5 100644 --- a/openstrata.ci.yaml +++ b/openstrata.ci.yaml @@ -39,8 +39,11 @@ # also keeps the rendered macOS steps runnable when they expand # "${openusd_args[@]}" under `set -u`: macOS's bash 3.2 treats an empty array # there as unbound (the first CI run of this repository failed on exactly that, -# before any build step). The 0.23.2 pin is required for external-library -# artifact declarations and for composing their prefixes into root builds. +# before any build step). The 0.23.2 pin was required for external-library +# artifact declarations and for composing their prefixes into root builds; +# 0.23.3 (2026-09-23) adds a tool's own library edges to both, validates them +# in the graph, and discards a build tree configured against another runtime +# (usd-vrm-plugins' ost report 44), re-pinned across the ecosystem together. # # Cell inventory -- seven: # * workspace-graph-pr: the WORKSPACE.md §2 dependency gate, before anything @@ -63,7 +66,7 @@ schema: 1 bootstrap: ost: - version: "0.23.2" + version: "0.23.3" repository: animu-sphere/open-strata runners: