跳到正文
cccskills
免费在 GitHub 公开中文介绍

release

指导将 everos 新版本发布到 PyPI,包括更新版本号和变更日志、创建触发自动工作流的标签,并完成审批。工作流上传后,还需检查并发布 GitHub Release 草稿。

原文查看原文说明

Cut a versioned release and publish everos to PyPI via the tag-triggered workflow

EverMind-AI/EverOS星标 13,702(GitHub 13,702 + cccskills 0)

实测评分 未实测

查看安装方法

适用场景

  • 发布补丁版或次要版本
  • 分发预发布版本
  • 根据变更日志整理发布页面

中文介绍

功能

指导将 everos 新版本发布到 PyPI。流程包括更新 pyproject.toml 中的版本号、整理 CHANGELOG.md,以及将改动合并到 main 后创建并推送标签。标签会触发工作流,执行构建、冒烟测试并上传到 PyPI。发布任务会等待审阅者批准。上传完成后,还需检查并发布 GitHub Release 草稿。

适用场景

完成修复或功能开发后,准备发布正式版本时可以使用此技能;分发预发布版本时也适用。如果需要根据变更日志准备发布页面,并逐步了解发布前后的检查事项,也可以使用。

使用示例

  • “检查这些修复,并准备下一个补丁版本。”
  • “告诉我如何将这次改动的候选版本发布到 PyPI。”
  • “根据变更日志检查并发布 GitHub Release 草稿。”

注意事项

main 最新状态的 CI 必须成功。标签、pyproject.toml 中的版本号和稳定版 CHANGELOG.md 标题必须一致。发布到 PyPI 需要在 GitHub 环境中手动批准;GitHub Release 也要检查草稿后再发布。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

文档检查

AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。

安全性发送数据、删除文件、执行命令等是否有说明
A良好PyPI 发布需手动批准,标签与版本不一致会被拒绝。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足首次设置需要配置 GitHub 环境和 PyPI 可信发布者。

不计入评分。 由 AI(OpenAI Codex)于 2026年10月29日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(1)

  • SKILL.md5.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

/release

Publish a new version of everos to PyPI. Publishing is automated: pushing a vX.Y.Z tag triggers .github/workflows/release.yml, which builds, smoke-tests, and uploads via PyPI Trusted Publishing (OIDC — no stored token) behind the release environment's manual-approval gate, then drafts the GitHub Release page from the CHANGELOG.

A release is not finished when PyPI accepts the upload: the GitHub Release page is drafted, never auto-published, and someone has to write its lead summary and click Publish.

Preconditions

  • On main, up to date, with green CI (the tag builds from main's tree).
  • Decide the version per SemVer: patch = fixes, minor = back-compatible features, major = breaking changes.

Steps

1. Bump the version    → pyproject.toml [project] version = "X.Y.Z"
   (single source; everos.__version__ reads installed package metadata)
2. Update CHANGELOG.md → move the Unreleased entries under a new
   ## [X.Y.Z] - <date> heading, and write the release page's prose here
   (lead paragraph + `### Upgrade` group — see "The release page")
3. Commit              → git commit -m "chore(release): vX.Y.Z"
4. Open a PR, merge to main after green CI
5. Tag main + push     → git tag -a vX.Y.Z -m "vX.Y.Z" && git push origin vX.Y.Z
6. Approve             → the release.yml run pauses on the `release`
   environment; a reviewer approves in the Actions run
7. Verify              → https://pypi.org/project/everos/X.Y.Z/
8. Publish the page    → the run leaves a DRAFT GitHub Release, already
   complete if step 2 was done properly. Read it once, click Publish.

The tag must equal the pyproject.toml version — the workflow refuses to publish on a mismatch. A stable tag with no matching ## [X.Y.Z] CHANGELOG section fails the release job for the same reason.

The release page

The whole page is written in CHANGELOG.md, during the release PR. Nothing is meant to be composed at publish time — by then the changes are weeks old and the text gets no review. Write the version section like this:

## [X.Y.Z] - 2026-09-01

**What this release is for.** One paragraph, prose, no bullets — it becomes the
lead of the release page. Say what changed for a user, not what was refactored.

### Added
### Changed
### Fixed

### Upgrade

What a reader must know before upgrading: what happens on first startup, which
command recovers a bad state, which pins moved. Omit the group entirely when a
plain `pip install --upgrade` is all there is — 1.1.4 and 1.2.0 have nothing
here. Do not write filler.

CI turns that into the page: everything above ### Upgrade is lifted verbatim with the group headings demoted to ##, and the Upgrade prose is wrapped in the boilerplate — pip line above it, compare link below — which is the shape every release since 1.1.3 has. See 1.2.1.

So publishing is a read-through and a click. If the draft looks wrong, the fix belongs in CHANGELOG.md on main, not only in the draft — otherwise the two drift apart and the next release inherits the habit.

While it is a draft, GitHub serves the release at releases/tag/untagged-<hash>, and that URL keeps serving a stale page after publication with no redirect. Never share it — a reader who opens it later concludes the release never went out. Link releases/tag/vX.Y.Z instead; the job prints both URLs in its step summary.

Publish with the Publish release button in the web UI. Publishing through the API by flipping draft alone drops the tag: GitHub rebinds the release to the untagged-<hash> placeholder and creates a git tag by that name against the default branch (observed on 1.2.2). Pass tag_name if you must do it from the CLI:

gh api -X PATCH "repos/EverMind-AI/EverOS/releases/<id>" \
  -F draft=false -f tag_name=vX.Y.Z -f make_latest=true

Re-running the release job replaces its own draft and leaves an already-published release untouched, so a re-run is always safe.

Pre-releases

PEP 440 pre-release tags publish too (PyPI accepts them; pip install everos ignores them unless --pre): vX.Y.ZrcN, vX.Y.ZaN, vX.Y.ZbN. Set the same suffix in pyproject.toml version before tagging.

Their release page is drafted as a pre-release and never becomes /releases/latest. A pre-release does not need its own CHANGELOG section — the draft falls back to a one-line placeholder body when there is none.

One-time setup (project owner, not doable from CI)

  1. PyPI trusted publisher — PyPI → project everos → Settings → Publishing → add: owner EverMind-AI, repo EverOS, workflow release.yml, environment release.
  2. GitHub environment — repo Settings → Environments → create release with required reviewers, so every publish needs a manual approval.

No PyPI API token is ever stored; the workflow mints a short-lived OIDC token at publish time.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

add-memory-kind

免费有简介

指导开发者新增可持久化的业务记忆类型:按需选择 Markdown、SQLite 和 LanceDB,确定 Markdown 文件策略,再配置所需的架构、仓库和写入器。

  • 新增可持久化的业务记忆类型
  • 设计存储层组合
  • 连接 Markdown 原文与检索索引
EverMind-AI/EverOS1.4万2026年10月29日 更新

commit

免费有简介

检查当前 Git 改动和近期提交记录,再按 Conventional Commits 格式创建聚焦的提交。可只暂存相关文件,并处理钩子检查失败的问题。

  • 检查改动并创建提交
  • 从差异中选择相关文件
  • 按约定编写提交说明
EverMind-AI/EverOS1.4万2026年10月29日 更新

new-branch

免费有简介

在更新后的 `main` 分支上创建用途明确的 Git 分支,并按改动类型选择前缀,如功能、修复、文档、CI、维护或重构,再添加简短的小写连字符名称。

  • 为新功能创建分支
  • 为修复问题创建分支
  • 开始更新文档
EverMind-AI/EverOS1.4万2026年10月29日 更新

pr

免费有简介

使用 GitHub CLI `gh`,按仓库模板将当前分支的改动提交为面向 `main` 的拉取请求。创建前运行 `make ci`,通过后推送分支并填写改动摘要、所属领域、验证结果、检查清单和审阅备注。

  • 为已完成的改动创建拉取请求
  • 填写拉取请求模板各项内容
  • 记录持续集成和手动检查结果
EverMind-AI/EverOS1.4万2026年10月29日 更新

查看 EverMind-AI 的全部技能

报告此技能的问题