-
Notifications
You must be signed in to change notification settings - Fork 12
Migration From 0f90a49
konodoki edited this page Jul 23, 2026
·
6 revisions
本页总结 0f90a49c539e0efcec0d6fbc481f634890742c78 之后影响使用方的主要变化。
以下旧入口不再存在:
bxi_example_py_elf3/robot_states.py
config/release_protection.yaml
data/isaaclab_model/
data/mjlab_model/
中央状态 YAML 中的 states、remote_events 和 speed_profiles 也不再作为配置源。
| 旧方式 | 当前方式 |
|---|---|
| 在中央文件添加 State class | 在 Mod 目录添加状态模块 |
| 构建器扫描所有 State 子类 |
plugin.py 返回显式 state_factories
|
| 中央 YAML 声明状态和边 |
mod.yaml 声明 states/events/routes
|
模型挂在 ctx 动态属性 |
ResourceKey + ResourceHandle
|
模型放 data/*_model
|
模型放所属 Mod 的 assets/
|
| 按单个类/模型做发布删除 |
visibility: protected 删除整个 Mod |
| 热重载中央状态模块 | 原子重建所有 Mod 和资源 |
基础动作已经合并到:
com.bxi.basic_actions
例如:
旧:com.bxi.normal/normal
新:com.bxi.basic_actions/normal
旧:com.bxi.zero_torque/zero_torque
新:com.bxi.basic_actions/zero_torque
基础事件也变为动作名:
com.bxi.basic_actions/normal
com.bxi.basic_actions/zero_torque
com.bxi.basic_actions/dance
后空翻、前空翻和芭蕾舞仍是独立 Mod,其入口事件是各自的 activate。
- 创建
mods/com.example.action/。 - 把状态类移到
state.py。 - 把模型和动作数据移到
assets/。 - 创建
plugin.py,注册资源并返回状态工厂。 - 把中央 YAML 的状态、事件和边改写为
mod.yaml的states/events/routes。 - 跨包引用改成完整名称并写入
requires。 - 遥控器输出槽位可以保持不变。
旧的类名、模型键和路径删除清单全部移除。现在只需在高危 Mod 中写:
visibility: protected然后运行:
python3 tools/sanitize_release.py --out /tmp/public_release --self-check工具会检查跨 Mod route 推导出的依赖和显式 requires,防止公开 Mod 依赖被删除 Mod。
/hot_reload:=true 仍是入口,但监控对象变为系统 YAML、内置 Mod 根和 mod_paths 下的所有文件。重载失败会关闭新资源并恢复旧状态机;成功后尽量保留当前完整状态名。
当前加载器不会因两个 manifest.index 相同而直接退出。首次声明者保留原值,冲突状态会移到后续未占用 index,并输出 RuntimeWarning。非法值仍会报错。