From a4073e5341ac576fb39be57b51821d13094163d7 Mon Sep 17 00:00:00 2001 From: TATP-233 Date: Wed, 11 Nov 2026 11:50:21 +0800 Subject: [PATCH] release: unilab 1.5.10 --- docs/sphinx/source/changelog.md | 39 +++++++++++++++++++++++++++++++++ pyproject.rocm.toml | 2 +- pyproject.toml | 2 +- uv.lock | 2 +- uv.rocm.lock | 2 +- 5 files changed, 43 insertions(+), 4 deletions(-) diff --git a/docs/sphinx/source/changelog.md b/docs/sphinx/source/changelog.md index be78e0b1a..92e72176f 100644 --- a/docs/sphinx/source/changelog.md +++ b/docs/sphinx/source/changelog.md @@ -13,6 +13,45 @@ UniLab 遵循[语义化版本](https://semver.org/)。本共享页面以中英 PyPI 版本变更与未发布变更;发布日期采用 PyPI 上传日期。完整提交历史请参阅 [UniLab 仓库](https://github.com/unilabsim/UniLab)。 +## 1.5.10 (2026-11-11) + +### Changed / 变更 + +- The default and ROCm profiles now pin `unisim-core==2.7.1`, including the + Motrix extra in both profiles and the SuperDex extra in the default profile. + `EnvCfg.mjwarp_validate_tensor_finite` controls MJWarp's backend-side control + finite check: the default `None` disables the duplicate blocking check under + deferred environment validation, retains it under eager validation, and an + explicit boolean overrides either behavior + ([#2598](https://github.com/Motphys/UniLab/pull/2598)). + 默认与 ROCm profile 现在均钉定 `unisim-core==2.7.1`;两个 profile 均覆盖 + Motrix extra,默认 profile 另覆盖 SuperDex extra。 + `EnvCfg.mjwarp_validate_tensor_finite` 控制 MJWarp backend 侧的 control + 有限值检查:默认 `None` 在 deferred 环境校验下关闭重复的阻塞检查,在 eager + 校验下保留该检查;显式布尔值可覆盖这两种行为 + ([#2598](https://github.com/Motphys/UniLab/pull/2598))。 + +### Fixed / 修复 + +- Deferred finite-validation device latches now reset under + `torch.inference_mode()`. PPO rollouts that allocate the latches in inference + mode no longer fail with an in-place inference-tensor update error at polling + boundaries or during teardown + ([#2600](https://github.com/Motphys/UniLab/pull/2600)). + Deferred 有限值校验的 device latch 现在在 `torch.inference_mode()` 下重置。 + PPO rollout 在 inference mode 中分配 latch 后,不再于轮询边界或 teardown + 期间因原地更新 inference tensor 而报错 + ([#2600](https://github.com/Motphys/UniLab/pull/2600))。 +- Ray observations now use the `uniray` caster identity by default. Sim2sim + contract comparison canonicalizes the previous `uni_ray` spelling to `uniray`, + so pre-rename checkpoints remain compatible without changing policy I/O; + substitutions with any other caster still fail closed + ([#2601](https://github.com/Motphys/UniLab/pull/2601)). + Ray observation 现在默认使用 `uniray` caster identity。Sim2sim 合同比较会将 + 旧的 `uni_ray` 拼写规范化为 `uniray`,使改名前的 checkpoint 在 policy I/O + 不变的情况下保持兼容;替换为任何其他 caster 仍会 fail closed + ([#2601](https://github.com/Motphys/UniLab/pull/2601))。 + ## 1.5.9 (2026-11-06) ### Added / 新增 diff --git a/pyproject.rocm.toml b/pyproject.rocm.toml index 4d74b3f8f..8abab350e 100644 --- a/pyproject.rocm.toml +++ b/pyproject.rocm.toml @@ -4,7 +4,7 @@ build-backend = "uv_build" [project] name = "unilab" -version = "1.5.9" +version = "1.5.10" description = "Universal Lab for Robot Learning" readme = "README.md" license = "Apache-2.0" diff --git a/pyproject.toml b/pyproject.toml index b6badd27c..96b60e3ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ source-exclude = [ [project] name = "unilab" -version = "1.5.9" +version = "1.5.10" description = "Configurable, contract-driven robot learning across physics backends" readme = "README.md" license = "Apache-2.0" diff --git a/uv.lock b/uv.lock index 970cba4d0..2a50fa00a 100644 --- a/uv.lock +++ b/uv.lock @@ -5152,7 +5152,7 @@ wheels = [ [[package]] name = "unilab" -version = "1.5.9" +version = "1.5.10" source = { editable = "." } dependencies = [ { name = "etils", version = "1.13.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, diff --git a/uv.rocm.lock b/uv.rocm.lock index 911548292..fdfaad855 100644 --- a/uv.rocm.lock +++ b/uv.rocm.lock @@ -4685,7 +4685,7 @@ wheels = [ [[package]] name = "unilab" -version = "1.5.9" +version = "1.5.10" source = { editable = "." } dependencies = [ { name = "etils", version = "1.13.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },