Skip to content

docs: 修正 CLI 验收的正确调用方式(--cli 'uv run orzmc' 跑不起来) - #102

Merged
wangzhizhou merged 1 commit into
mainfrom
docs/accept-cli-invocation
Oct 22, 2026
Merged

wangzhizhou merged 1 commit into
mainfrom
docs/accept-cli-invocation

Conversation

@wangzhizhou

Copy link
Copy Markdown
Contributor

上一笔 #100 把脚本路径改对了,但示例命令写成了 --cli 'uv run orzmc' —— 实测必挂:

$ python3 scripts/accept/cli.py --cli 'uv run orzmc'
[FAIL] surface/no-args-prints-help (0.0s)
    $ orzmc
      rc=2  stderr='error: No such file or directory (os error 2)'

原因:harness 的每个用例都从自己的沙箱目录启动(cwd=<case dir>,HOME/XDG_* 也换掉),命令串里的相对路径按沙箱解析 —— 那里既没有 venv 也没有 pyproject。

改成 CI 同款稳定写法(先取 venv 里的绝对入口;实测 25 例 64s 全过):

bin="$(uv run --all-packages python -c 'import shutil; print(shutil.which("orzmc"))')"
uv run python ../scripts/accept/cli.py --cli "$bin"

--cli dist/orzmc --frozen 不用改(脚本会把已存在的文件路径 resolve 成绝对路径)。
父仓库 scripts/accept/cli.py 的 build_cli docstring 已补上这条 cwd 说明(纯注释,行为不变)。

影响面:AGENTS.md / CONTRIBUTING.md / README.md 三处示例。

上一笔 #100 把路径改对了(父仓库 `scripts/accept/cli.py`),但示例命令写成了
`--cli 'uv run orzmc'` —— 实测必挂:

    $ python3 scripts/accept/cli.py --cli 'uv run orzmc'
    [FAIL] surface/no-args-prints-help  stderr='error: No such file or directory (os error 2)'

原因:harness 的**每个用例都从自己的沙箱目录启动**(`cwd=<case dir>`,HOME/XDG_* 也换掉),
命令串里的相对路径(`python`、`.`)按沙箱解析,那里既没有 venv 也没有 pyproject。

改成 CI 同款的稳定写法(先取 venv 里的绝对入口,25 例实测 64s):

    bin="$(uv run --all-packages python -c 'import shutil; print(shutil.which("orzmc"))')"
    uv run python ../scripts/accept/cli.py --cli "$bin"

`--cli dist/orzmc --frozen` 不用改:脚本会把**已存在的文件路径** resolve 成绝对路径。
父仓库 `build_cli` 的 docstring 已补上这条 cwd 说明(纯注释)。
@wangzhizhou
wangzhizhou merged commit 544a773 into main Oct 22, 2026
11 checks passed
@wangzhizhou
wangzhizhou deleted the docs/accept-cli-invocation branch October 22, 2026 01:06
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