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
38 changes: 19 additions & 19 deletions .github/workflows/ost-source-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand All @@ -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 )"
Expand Down Expand Up @@ -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: |
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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: |
Expand All @@ -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 )"
Expand Down Expand Up @@ -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: |
Expand All @@ -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
Expand Down Expand Up @@ -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: |
Expand All @@ -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 )"
Expand Down Expand Up @@ -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: |
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 )"
Expand Down Expand Up @@ -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.
Expand All @@ -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
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/architecture/DEPENDENCIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
9 changes: 6 additions & 3 deletions openstrata.ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -63,7 +66,7 @@ schema: 1

bootstrap:
ost:
version: "0.23.2"
version: "0.23.3"
repository: animu-sphere/open-strata

runners:
Expand Down
Loading