Skip to content

Fix lab CLI installation and prepare v0.2.0 - #15

Merged
Mile-Away merged 4 commits into
mainfrom
codex/opensdl-cli-install
Sep 20, 2026
Merged

Mile-Away merged 4 commits into
mainfrom
codex/opensdl-cli-install

Conversation

@Mile-Away

@Mile-Away Mile-Away commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

The README's installer URLs return 404 because the released package is still osdl-cli v0.1.0 while the current executable is lab. Prepare v0.2.0 and align the README with cargo-dist's actual lab-cli installer and updater names.

Add install/PATH/update instructions, a server/client quick start, hardware resource prerequisites, and the current implementation status. Release PRs now build all six targets and run the full workspace tests on Linux, macOS, and Windows. Linux also runs the OCI registry round trip against a disposable registry with a bounded readiness check. Normalize text checkouts and use native paths in tests so the Windows lane exercises the same fixtures and path contracts. CI checks the README installer URLs against the generated release plan.

Validation: cargo fmt --all --check; cargo test --workspace --locked -- --include-ignored against a disposable OCI registry (192 passed, zero ignored); dist generate/plan and global installer generation; isolated lab 0.2.0 serve/status/device list/stop smoke test. The complete staged diff passed the thermo-nuclear code quality review with no blocking findings. Public installation will be verified after the merged v0.2.0 tag is published.

Sourcery 摘要

准备 v0.2.0 lab CLI 发布版本,修正安装程序,扩展用户指南,并进行跨平台发布验证。

新功能:

  • 添加文档,介绍预构建 lab CLI 的安装、更新、快速入门、硬件前置条件和资源工作流。
  • 为 v0.2.0 发布版本准备工作区,支持六个平台目标,并生成 Shell 和 PowerShell 安装程序。

错误修复:

  • 修正 README 中的安装程序和更新程序引用,使其与 lab-cli 软件包及 cargo-dist 构件名称保持一致。
  • 使路径相关测试能够跨操作系统运行。

改进:

  • 记录当前实现状态、支持的传输方式、硬件限制和发布验证流程。

CI:

  • 在 Linux、macOS 和 Windows 上运行工作区检查,其中包括 Linux 上的 OCI 集成测试。
  • 根据生成的发布计划验证 README 中的安装程序 URL,并要求跨平台检查通过后才能发布。

文档:

  • 扩展 README 中关于安装、使用、源码构建、架构、状态和发布的文档。

测试:

  • 在 Linux CI 流程中运行完整的工作区测试套件和 OCI 注册表往返测试。

杂务:

  • 规范化仓库文本检出设置,以确保跨平台行为一致。
Original summary in English

Summary by Sourcery

Prepare the v0.2.0 lab CLI release with corrected installers, expanded user guidance, and cross-platform release validation.

New Features:

  • Add documented pre-built lab CLI installation, updating, quick-start, hardware prerequisites, and asset workflows.
  • Prepare the workspace for the v0.2.0 release with six platform targets and generated shell and PowerShell installers.

Bug Fixes:

  • Correct README installer and updater references to match the lab-cli package and cargo-dist artifact names.
  • Make path-related tests portable across operating systems.

Enhancements:

  • Document the current implementation status, supported transports, hardware limitations, and release verification procedure.

CI:

  • Run workspace checks across Linux, macOS, and Windows, including OCI integration tests on Linux.
  • Validate README installer URLs against the generated release plan and gate release publication on the cross-platform checks.

Documentation:

  • Expand README installation, usage, source-build, architecture, status, and release documentation.

Tests:

  • Exercise the full workspace test suite and OCI registry round trip in the Linux CI lane.

Chores:

  • Normalize repository text checkouts for consistent cross-platform behavior.

@sourcery-ai

sourcery-ai Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

审查者指南

此 PR 通过使 README 和发布工作流与 cargo-dist 的 lab-cli 软件包构件保持一致,扩展用户和发布文档,并在发布前添加跨平台、安装程序和 OCI 验证门禁,为 v0.2.0 发布做准备。

v0.2.0 发布流程时序图

sequenceDiagram
    participant Maintainer
    participant Dist as cargo-dist
    participant CI as GitHub Actions
    participant Registry as Disposable OCI Registry
    participant Release as GitHub Release

    Maintainer->>Dist: generate
    Maintainer->>Dist: plan
    Dist-->>CI: Release plan
    CI->>CI: cargo fmt --all --check
    CI->>CI: cargo test --workspace --locked
    CI->>Registry: Run OCI integration test
    Registry-->>CI: OCI round trip result
    CI->>CI: Build six platform targets
    CI->>CI: Validate README installer URLs
    Maintainer->>Release: Push v0.2.0 tag
    Release-->>Maintainer: Publish lab-cli artifacts and installers
Loading

文件级变更

变更 详细信息 文件
修正 CLI 发布标识,并记录 v0.2.0 的安装、使用、前置条件和当前限制。
  • 将工作区版本更新为 0.2.0,并更新锁定文件。
  • 将过时的安装程序和更新程序名称替换为 cargo-dist 生成的 lab-cli 构件,同时保留 lab 可执行文件名称。
  • 添加预构建目标覆盖范围、PATH/更新指南、服务器/客户端快速入门、硬件/架构前置条件、资源命令、构建说明和实现状态。
  • 记录发布准备、发布以及发布后安装冒烟测试流程。
Cargo.toml
Cargo.lock
README.md
docs/releases.md
扩展跨平台发布验证,并要求发布必须通过共享检查工作流。
  • 添加可复用的 Linux/macOS/Windows 工作区测试工作流,并包含格式检查。
  • 根据 cargo-dist 发布计划验证 README 中的安装程序 URL。
  • 针对一次性 Linux 注册表运行 OCI 集成测试。
  • 添加 Rust 缓存,并要求在全局构建和发布构件之前通过自定义检查。
  • 配置 cargo-dist 上传本地构件,并在拉取请求运行中测试两种安装程序。
.github/workflows/checks.yml
.github/workflows/release.yml
dist-workspace.toml

提示和命令

与 Sourcery 交互

  • 触发新的审查: 在拉取请求中评论 @sourcery-ai review。
  • 继续讨论: 直接回复 Sourcery 的审查评论。
  • 根据审查评论生成 GitHub issue: 回复审查评论,请 Sourcery 根据该评论创建 issue。你也可以使用 @sourcery-ai issue 回复审查评论,以根据该评论创建 issue。
  • 生成拉取请求标题: 在拉取请求标题的任意位置写入 @sourcery-ai,即可随时生成标题。你也可以在拉取请求中评论 @sourcery-ai title,以随时生成或重新生成标题。
  • 生成拉取请求摘要: 在拉取请求正文中任意位置写入 @sourcery-ai summary,即可在指定位置随时生成 PR 摘要。你也可以在拉取请求中评论 @sourcery-ai summary,以随时生成或重新生成摘要。
  • 生成审查者指南: 在拉取请求中评论 @sourcery-ai guide,即可随时生成或重新生成审查者指南。
  • 解决所有 Sourcery 评论: 在拉取请求中评论 @sourcery-ai resolve,即可解决所有 Sourcery 评论。如果你已经处理完所有评论且不想再看到它们,这会很有用。
  • 驳回所有 Sourcery 审查: 在拉取请求中评论 @sourcery-ai dismiss,即可驳回所有现有的 Sourcery 审查。如果你想从头开始新的审查,这尤其有用——别忘了评论 @sourcery-ai review 以触发新的审查!

自定义你的使用体验

访问你的控制面板以:

  • 启用或禁用审查功能,例如 Sourcery 生成的拉取请求摘要、审查者指南等。
  • 更改审查语言。
  • 添加、移除或编辑自定义审查说明。
  • 调整其他审查设置。

获取帮助

Original review guide in English

Reviewer's Guide

This PR prepares the v0.2.0 release by aligning the README and release workflow with cargo-dist’s lab-cli package artifacts, expanding user and release documentation, and adding cross-platform, installer, and OCI validation gates before publication.

Sequence diagram for v0.2.0 release publication

sequenceDiagram
    participant Maintainer
    participant Dist as cargo-dist
    participant CI as GitHub Actions
    participant Registry as Disposable OCI Registry
    participant Release as GitHub Release

    Maintainer->>Dist: generate
    Maintainer->>Dist: plan
    Dist-->>CI: Release plan
    CI->>CI: cargo fmt --all --check
    CI->>CI: cargo test --workspace --locked
    CI->>Registry: Run OCI integration test
    Registry-->>CI: OCI round trip result
    CI->>CI: Build six platform targets
    CI->>CI: Validate README installer URLs
    Maintainer->>Release: Push v0.2.0 tag
    Release-->>Maintainer: Publish lab-cli artifacts and installers
Loading

File-Level Changes

Change Details Files
Correct the CLI release identity and document installation, usage, prerequisites, and current limitations for v0.2.0.
  • Bump the workspace version to 0.2.0 and update the lockfile.
  • Replace obsolete installer and updater names with cargo-dist-generated lab-cli artifacts while retaining the lab executable name.
  • Add prebuilt-target coverage, PATH/update guidance, server/client quick start, hardware/schema prerequisites, asset commands, build instructions, and implementation status.
  • Document the release preparation, publication, and post-release installation smoke-test procedure.
Cargo.toml
Cargo.lock
README.md
docs/releases.md
Expand release validation across platforms and gate publication on the shared checks workflow.
  • Add a reusable Linux/macOS/Windows workspace test workflow with formatting checks.
  • Validate README installer URLs against the cargo-dist release plan.
  • Run the OCI integration test against a disposable Linux registry.
  • Add Rust caching and require custom checks before global artifact builds and publishing.
  • Configure cargo-dist to upload local artifacts and exercise both installers in pull-request runs.
.github/workflows/checks.yml
.github/workflows/release.yml
dist-workspace.toml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

您好——我发现了 1 个问题

面向 AI Agent 的提示
请处理本次代码审查中的评论:

## 具体评论

### 评论 1
<location path=".github/workflows/checks.yml" line_range="50-56" />
<code_context>
+      - run: cargo fmt --all --check
+      - name: Start disposable OCI registry
+        if: runner.os == 'Linux'
+        run: docker run --detach --publish 127.0.0.1:5000:5000 registry:3
+      - name: Test workspace including OCI integration
+        if: runner.os == 'Linux'
+        env:
+          OPENSDL_TEST_REGISTRY: localhost:5000
+        run: cargo test --workspace --locked -- --include-ignored
+      - name: Test workspace on macOS and Windows
+        if: runner.os != 'Linux'
+        run: cargo test --workspace --locked
</code_context>
<issue_to_address>
**问题(测试):** OCI 集成测试启动注册表容器后,立即运行推送/拉取往返测试,而没有等待注册表接受连接。因此,当 `registry:3` 尚未完成启动时,测试会因连接被拒绝而失败。

**触发条件:** 临时注册表容器的初始化时间长于后续 `cargo test` 的启动时间。

**建议修复:** 在运行集成测试之前,轮询 `http://127.0.0.1:5000/v2/`,直到其成功响应,并设置超时时间。
</issue_to_address>

Sourcery 对开源项目免费——如果您喜欢我们的审查结果,请考虑分享它们 ✨
Original comment in English

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path=".github/workflows/checks.yml" line_range="50-56" />
<code_context>
+      - run: cargo fmt --all --check
+      - name: Start disposable OCI registry
+        if: runner.os == 'Linux'
+        run: docker run --detach --publish 127.0.0.1:5000:5000 registry:3
+      - name: Test workspace including OCI integration
+        if: runner.os == 'Linux'
+        env:
+          OPENSDL_TEST_REGISTRY: localhost:5000
+        run: cargo test --workspace --locked -- --include-ignored
+      - name: Test workspace on macOS and Windows
+        if: runner.os != 'Linux'
+        run: cargo test --workspace --locked
</code_context>
<issue_to_address>
**issue (testing):** The OCI integration test starts the registry container and immediately runs the push/pull round trip without waiting for the registry to accept connections, so the test fails with a connection-refused error when `registry:3` has not finished starting.

**Triggers:** When the disposable registry container takes longer to initialize than the subsequent `cargo test` startup.

**Suggested fix:** Poll `http://127.0.0.1:5000/v2/` until it responds successfully, with a timeout, before running the integration tests.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread .github/workflows/checks.yml Outdated
@Mile-Away
Mile-Away merged commit 5c62e43 into main Sep 20, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant