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
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,8 @@ if __name__ == "__main__":

| Date | Release |
|:-------------|:---|
| **[Latest]** | 🎉 ROCK v1.10.0 Released (2026-07-07) — [Release Notes](https://rock.io.alibaba-inc.com/docs/1.10.x/Release%20Notes/v1.10.0) |
| **[Latest]** | 🎉 ROCK v1.11.0 Released (2026-07-27) — [Release Notes](https://rock.io.alibaba-inc.com/docs/1.11.x/Release%20Notes/v1.11.0) |
| **[2026-07-07]** | 🎉 ROCK v1.10.0 Released — [Release Notes](https://rock.io.alibaba-inc.com/docs/1.10.x/Release%20Notes/v1.10.0) |
| **[2026-06-11]** | 🎉 ROCK v1.9.0 Released — [Release Notes](https://rock.io.alibaba-inc.com/docs/1.9.x/Release%20Notes/v1.9.0) |
| **[2026-05-21]** | 🎉 ROCK v1.8.0 Released — [Release Notes](https://rock.io.alibaba-inc.com/docs/1.8.x/Release%20Notes/v1.8.0) |
| **[2026-04-24]** | 🎉 ROCK v1.7.0 Released — [Release Notes](https://rock.io.alibaba-inc.com/docs/1.7.x/Release%20Notes/v1.7.0) |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
"message": "参考",
"description": "The label for category 'References' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.Release Notes": {
"message": "版本说明",
"description": "The label for category 'Release Notes' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.model-service": {
"message": "Model Service 参考",
"description": "The label for category 'Model Service References' in sidebar 'tutorialSidebar'"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
sidebar_position: 1
---
# 版本说明

* [release v1.11.0](v1.11.0.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# v1.11.0

## 发布日期

2026 年 7 月 27 日

ROCK v1.11 扩展了 Sandbox 运行时后端,新增可配置的生命周期自动化和统一的
Job 工作流,并提升了 Sandbox 可观测性与 Admin 服务稳定性。本版本还支持异步
提交 Sandbox 镜像、OpenSandbox 持久会话,以及 Python SDK 的 Windows 文件系统操作。

---

### 重点更新

* **可配置的生命周期自动化:** 新增自动停止、归档和删除的持久化截止时间。
状态响应会返回 `auto_stop_time`、`auto_archive_time` 和
`auto_delete_time`;集群策略可以限制单个 Sandbox 配置的延迟上限,
并设置已归档 Sandbox 的保留时间
([#1264](https://github.com/alibaba/ROCK/pull/1264))。

* **OpenSandbox 后端:** 新增 `opensandbox` Operator 后端,并通过官方
OpenSandbox SDK 执行命令、文件操作、状态查询、HTTP/WebSocket 服务代理和
持久 Shell 会话。会话映射保存在 Redis 中,可在多个 Admin Worker 之间保持一致
([#1203](https://github.com/alibaba/ROCK/pull/1203),
[#1233](https://github.com/alibaba/ROCK/pull/1233),
[#1262](https://github.com/alibaba/ROCK/pull/1262))。

* **统一 Job 工作流:** `rock job run` 支持执行单个任务、多个任务或整个数据集,
并新增持久化的 Run/Job 元数据、并发执行、断点恢复、基于 OSS 的
`JobViewer` 以及面向 Run 的查询命令
([#1235](https://github.com/alibaba/ROCK/pull/1235))。

* **异步提交 Sandbox 镜像:** Proxy 模式下的镜像 commit 和 push 改为通过
Rocklet 异步执行。Python 和 TypeScript SDK 可轮询提交进度,原有 Admin API
仍保持同步行为 ([#1280](https://github.com/alibaba/ROCK/pull/1280))。

* **Windows 文件系统支持:** Windows Sandbox 镜像会使用专用文件系统客户端,
支持所有者与权限处理、目录上传、二进制安全下载,以及适用于文件操作的
PowerShell 输出处理 ([#1297](https://github.com/alibaba/ROCK/pull/1297))。

---

### Sandbox 与 Admin

**新功能**

* 新建 Sandbox 请求的默认磁盘配额调整为 `50G`;调用方可以显式传入 `None`
以继续使用集群默认值 ([#1226](https://github.com/alibaba/ROCK/pull/1226))。

* 通过直连、Proxy 和 OpenSandbox 状态查询返回 `num_gpus` 与
`accelerator_type` ([#1286](https://github.com/alibaba/ROCK/pull/1286))。

* 支持从 Nacos 动态更新 `runtime.max_allowed_spec`,未在 Nacos 中指定的字段
继续保留 YAML 配置值 ([#1291](https://github.com/alibaba/ROCK/pull/1291))。

* 为自动调度任务新增调度器健康状态、任务注册、Worker 缓存、任务执行、
执行耗时和失败情况等监控指标
([#1254](https://github.com/alibaba/ROCK/pull/1254))。

* 为 Admin 及其他 ROCK 进程增加可配置的异常堆栈日志
([#1261](https://github.com/alibaba/ROCK/pull/1261))。

* 新增主动 Ray Client 健康检查;当前 Client 会话关闭或无响应时,
通过串行化流程自动重新连接
([#1256](https://github.com/alibaba/ROCK/pull/1256))。

* Admin 多 Worker 启动时改用各 Worker 独立的 `SO_REUSEPORT` 监听器
([#1267](https://github.com/alibaba/ROCK/pull/1267))。

**问题修复**

* Sandbox 保持 `pending` 时保留已缓存的阶段信息,并避免在运行时尚未确认
Sandbox 存活时执行 `pending → running`
([#1239](https://github.com/alibaba/ROCK/pull/1239),
[#1247](https://github.com/alibaba/ROCK/pull/1247))。

* 在 Sandbox 启动响应中返回实际生效的磁盘配置
([#1258](https://github.com/alibaba/ROCK/pull/1258))。

* 获取 Sandbox 状态时,允许部分 Docker inspect 操作失败
([#1282](https://github.com/alibaba/ROCK/pull/1282))。

* Ray 提交失败后立即触发过期处理,清理调度超时,并在读取提交元数据失败时
终止 Actor ([#1284](https://github.com/alibaba/ROCK/pull/1284),
[#1288](https://github.com/alibaba/ROCK/pull/1288))。

* 重启已停止的 Sandbox 后刷新 `start_time`
([#1289](https://github.com/alibaba/ROCK/pull/1289))。

* 完善已删除 Sandbox 的处理:归档剩余日志、释放资源预留、支持 Ray 幂等删除,
并在状态响应中返回 `delete_time`
([#1295](https://github.com/alibaba/ROCK/pull/1295))。

---

### Kubernetes

**新功能**

* 新增由 Nacos 驱动的 `template_rules` 模板选择机制。规则按照声明顺序执行,
可匹配镜像通配模式、镜像操作系统、GPU 数量范围和加速卡类型;
`extended_params` 中显式指定的模板仍具有最高优先级
([#1274](https://github.com/alibaba/ROCK/pull/1274))。

* 支持将加密后的镜像仓库凭据传递给 Kubernetes Sandbox 工作负载
([#1130](https://github.com/alibaba/ROCK/pull/1130))。

---

### SDK 与 CLI

**新功能**

* TypeScript SDK:新增 `Sandbox.archive()`、磁盘配置、类型化的生命周期状态、
状态转换历史,以及状态响应中的磁盘字段
([#1241](https://github.com/alibaba/ROCK/pull/1241))。

* Python 和 TypeScript SDK:支持通过 `VerifierConfig.env` 配置 Verifier
环境变量 ([#1220](https://github.com/alibaba/ROCK/pull/1220))。

**问题修复**

* TypeScript SDK:修正 nohup 进程结束检测;长时间运行的 OSS 操作改用
nohup 模式;新增传输文件大小校验;修复首次安装 `ossutil` 失败的问题
([#1224](https://github.com/alibaba/ROCK/pull/1224))。

---

### 升级注意事项

* **数据库结构:** 生命周期自动化为 `sandbox_record` 表新增
`auto_transition_state`、`auto_transition_time` 字段以及
`ix_sandbox_record_state_auto_transition` 索引。启用自动生命周期转换前,
请先完成对应的数据库结构升级。

* **AES Key 配置:** `aes_encrypt_key` 现在只从 ROCK 静态 YAML 配置的
顶层读取,不再从 Nacos 或 `proxy_service.aes_encrypt_key` 读取
([#1268](https://github.com/alibaba/ROCK/pull/1268))。

* **生命周期配置:** 升级前需要移除已废弃的集群配置
`lifecycle.auto_transition.auto_archive_seconds`。单个 Sandbox 的
`auto_archive_seconds` 用于控制归档时间;集群级 `auto_delete_seconds`
用作默认值、延迟上限和归档失败后的清理宽限期;
`auto_delete_archived_seconds` 用于控制已归档 Sandbox 的保留时间
([#1264](https://github.com/alibaba/ROCK/pull/1264))。

* **Kubernetes 模板选择:** 依赖 `k8s.template_map` 或隐式 GPU 模板名的
部署需要迁移到 Nacos `template_rules`。如果既未显式指定模板,
也没有匹配的规则,ROCK 将使用 `default` 模板
([#1274](https://github.com/alibaba/ROCK/pull/1274))。

---

**完整变更对比:**
[v1.10.0...master](https://github.com/alibaba/ROCK/compare/v1.10.0...master)
6 changes: 6 additions & 0 deletions docs/versioned_docs/version-1.11.x/Release Notes/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
sidebar_position: 1
---
# Release Notes

* [release v1.11.0](v1.11.0.md)
165 changes: 165 additions & 0 deletions docs/versioned_docs/version-1.11.x/Release Notes/v1.11.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
# v1.11.0

## Release Date

July 27, 2026

ROCK v1.11 expands sandbox runtime choices, introduces configurable lifecycle
automation and a unified job workflow, and improves sandbox observability and
Admin reliability. It also adds asynchronous image commits, persistent
OpenSandbox sessions, and Windows filesystem support in the Python SDK.

---

### Highlights

* **Configurable lifecycle automation:** Persist deadlines for automatic stop,
archive, and delete transitions. Status responses expose `auto_stop_time`,
`auto_archive_time`, and `auto_delete_time`; cluster policy can cap
per-sandbox delays and configure archived-sandbox retention
([#1264](https://github.com/alibaba/ROCK/pull/1264)).

* **OpenSandbox backend:** Add an `opensandbox` Operator backend and route
command execution, file operations, status queries, HTTP/WebSocket services,
and persistent shell sessions through the official OpenSandbox SDK. Session
mappings are stored in Redis so they remain consistent across Admin workers
([#1203](https://github.com/alibaba/ROCK/pull/1203),
[#1233](https://github.com/alibaba/ROCK/pull/1233),
[#1262](https://github.com/alibaba/ROCK/pull/1262)).

* **Unified job workflow:** Extend `rock job run` to support one task, multiple
tasks, or an entire dataset. Add persisted run/job metadata, concurrent
execution, resumable runs, OSS-backed `JobViewer`, and run-aware query
commands ([#1235](https://github.com/alibaba/ROCK/pull/1235)).

* **Asynchronous sandbox image commits:** Proxy-mode image commit and push now
run asynchronously through Rocklet. The Python and TypeScript SDKs can poll
commit progress, while the legacy Admin API remains synchronous
([#1280](https://github.com/alibaba/ROCK/pull/1280)).

* **Windows filesystem support:** Select a Windows-specific filesystem client
for Windows sandbox images, including ownership and permission handling,
directory upload, binary-safe download, and PowerShell output handling
([#1297](https://github.com/alibaba/ROCK/pull/1297)).

---

### Sandbox and Admin

**New Features**

* Default new sandbox requests to a `50G` disk quota; callers can explicitly use
`None` to fall back to the cluster default
([#1226](https://github.com/alibaba/ROCK/pull/1226)).

* Return `num_gpus` and `accelerator_type` in sandbox status responses through
direct, proxy, and OpenSandbox paths
([#1286](https://github.com/alibaba/ROCK/pull/1286)).

* Allow `runtime.max_allowed_spec` to be updated dynamically from Nacos while
preserving unspecified YAML values
([#1291](https://github.com/alibaba/ROCK/pull/1291)).

* Add scheduler health, registration, worker-cache, task-run, duration, and
failure metrics for automatic tasks
([#1254](https://github.com/alibaba/ROCK/pull/1254)).

* Add configurable exception traceback logging for Admin and other ROCK
processes ([#1261](https://github.com/alibaba/ROCK/pull/1261)).

* Add proactive Ray client health checks and serialized reconnection when the
current client session is closed or unresponsive
([#1256](https://github.com/alibaba/ROCK/pull/1256)).

* Use per-worker `SO_REUSEPORT` listeners to improve multi-worker Admin startup
([#1267](https://github.com/alibaba/ROCK/pull/1267)).

**Bug Fixes**

* Preserve cached phases while a sandbox remains `pending`, and prevent
`pending → running` until the runtime reports the sandbox as alive
([#1239](https://github.com/alibaba/ROCK/pull/1239),
[#1247](https://github.com/alibaba/ROCK/pull/1247)).

* Populate the effective disk value in sandbox start responses
([#1258](https://github.com/alibaba/ROCK/pull/1258)).

* Tolerate partial Docker inspect failures when collecting sandbox status
([#1282](https://github.com/alibaba/ROCK/pull/1282)).

* Immediately expire failed Ray submissions, clean up timed-out scheduling, and
terminate the actor if metadata retrieval fails
([#1284](https://github.com/alibaba/ROCK/pull/1284),
[#1288](https://github.com/alibaba/ROCK/pull/1288)).

* Refresh `start_time` after restarting a stopped sandbox
([#1289](https://github.com/alibaba/ROCK/pull/1289)).

* Improve deleted-sandbox handling by archiving remaining logs, releasing
resource reservations, making Ray deletion idempotent, and returning
`delete_time` in status responses
([#1295](https://github.com/alibaba/ROCK/pull/1295)).

---

### Kubernetes

**New Features**

* Add Nacos-driven `template_rules` selection. Rules are evaluated in declaration
order and can match image patterns, image OS, GPU-count ranges, and accelerator
types; an explicit template in `extended_params` remains highest priority
([#1274](https://github.com/alibaba/ROCK/pull/1274)).

* Transport encrypted image-registry credentials to Kubernetes sandbox
workloads ([#1130](https://github.com/alibaba/ROCK/pull/1130)).

---

### SDK and CLI

**New Features**

* TypeScript SDK: Add `Sandbox.archive()`, disk configuration, typed lifecycle
states, state-transition history, and disk fields in status responses
([#1241](https://github.com/alibaba/ROCK/pull/1241)).

* Python and TypeScript SDKs: Allow verifier environment variables through
`VerifierConfig.env` ([#1220](https://github.com/alibaba/ROCK/pull/1220)).

**Bug Fixes**

* TypeScript SDK: Correct nohup process-completion detection, run long OSS
operations in nohup mode, verify transfer size, and fix first-time `ossutil`
installation ([#1224](https://github.com/alibaba/ROCK/pull/1224)).

---

### Upgrade Notes

* **Database schema:** Lifecycle automation adds
`sandbox_record.auto_transition_state`,
`sandbox_record.auto_transition_time`, and the
`ix_sandbox_record_state_auto_transition` index. Apply the corresponding
schema update before enabling automatic transitions.

* **AES key configuration:** `aes_encrypt_key` is now loaded exclusively from
the top level of the static ROCK YAML configuration. It is no longer read
from Nacos or `proxy_service.aes_encrypt_key`
([#1268](https://github.com/alibaba/ROCK/pull/1268)).

* **Lifecycle configuration:** Remove the obsolete
`lifecycle.auto_transition.auto_archive_seconds` cluster setting before
upgrading. Per-sandbox `auto_archive_seconds` controls archive timing;
cluster `auto_delete_seconds` acts as a default, delay cap, and cleanup grace
period, while `auto_delete_archived_seconds` controls archive retention
([#1264](https://github.com/alibaba/ROCK/pull/1264)).

* **Kubernetes template selection:** Migrate deployments that rely on
`k8s.template_map` or implicit GPU template names to Nacos `template_rules`.
Without an explicit template or matching rule, ROCK uses the `default`
template ([#1274](https://github.com/alibaba/ROCK/pull/1274)).

---

**Full comparison:** [v1.10.0...master](https://github.com/alibaba/ROCK/compare/v1.10.0...master)
14 changes: 14 additions & 0 deletions docs/versioned_sidebars/version-1.11.x-sidebars.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,20 @@
]
}
]
},
{
"type": "category",
"label": "Release Notes",
"link": {
"type": "doc",
"id": "Release Notes/index"
},
"items": [
{
"type": "autogenerated",
"dirName": "Release Notes"
}
]
}
]
}
1 change: 1 addition & 0 deletions docs/versions.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[
"1.11.x",
"1.10.x",
"1.9.x",
"1.8.x",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
authors = [{ name = "chatos@alibaba" }]
requires-python = "<4.0,>=3.10"
name = "rl-rock"
version = "1.10.2"
version = "1.11.0"
description = "ROCK-Reinforcement Open Construction Kit"
readme = "README.md"
dependencies = [
Expand Down
Loading
Loading