Skip to content

release:prep 依赖缺失的 pypi-release-process.md 导致流程阻塞 #24

@codeasier

Description

@codeasier

问题描述

pt-snap-cli 仓库执行 /release:prep 0.1.0 时,流程在阶段 1 要求读取:

  • .claude/pypi-release-process.md
  • .github/workflows/publish.yml
  • CHANGELOG.md

但目标仓库实际情况是:

  • .claude/pypi-release-process.md 不存在
  • .github/workflows/publish.yml 不存在,实际存在的是 .github/workflows/release.yml
  • CHANGELOG.md 不存在

因此 release:prep 在准备 changelog 前被迫停下,需要用户决定如何适配。

复现方式

在一个没有 .claude/pypi-release-process.md,且 release workflow 文件名为 .github/workflows/release.yml 的 Python 仓库中执行:

/release:prep 0.1.0

实际结果

命令要求读取固定路径 .claude/pypi-release-process.md.github/workflows/publish.yml,文件缺失时无法继续按技能流程完成 release prep。

期望结果

建议 release:prep 对这些文件依赖做更稳健的处理,例如:

  1. .claude/pypi-release-process.md 视为可选文件:存在则读取并遵守,不存在则使用内置默认发布流程并提示。
  2. workflow 文件不要硬编码为 .github/workflows/publish.yml,可自动发现包含 tag 发布/PyPI 发布逻辑的 workflow,例如 release.yml
  3. 如果 CHANGELOG.md 不存在,支持进入“新建 changelog”的路径,而不是只能依赖既有风格。
  4. 在缺失关键文件时输出明确的可操作建议,区分“必须停止”的错误和“可以适配继续”的情况。

影响

当前实现会让 release prep 对仓库模板结构有较强假设。对于已经使用 tag-triggered release workflow、但文件名或流程文档不同的仓库,用户需要人工判断并中断流程。

环境备注

触发场景来自 codeasier/pt-snap-cli 仓库,实际 workflow 文件为 .github/workflows/release.yml,其中 release 由 v* tag 触发,并校验 tag 版本与 pyproject.toml 版本一致。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions