業務用の新しいメモリ種別を追加する際、Markdown・SQLite・LanceDBの保存先や形式を選び、スキーマ、リポジトリ、書き込み処理を組み立てます。
- 新しい業務メモリ種別を追加したいとき
- 保存先の組み合わせを設計したいとき
- Markdownと検索用インデックスを連携したいとき
everosのバージョンを更新し、タグを使った自動処理でPyPIへ公開するリリース手順を進めます。変更履歴やGitHub Releaseの下書きも整えます。
Cut a versioned release and publish everos to PyPI via the tag-triggered workflow
実行スコア 未検証
インストール方法を見るeverosの新しいバージョンをPyPIへ公開するための手順を案内します。pyproject.tomlのバージョン更新、CHANGELOG.mdの整理、変更をmainへマージした後のタグ作成とプッシュを進め、タグをきっかけに動くワークフローでビルド、動作確認、PyPIへのアップロードを行います。公開処理は承認待ちになるため、レビュー担当者による承認も必要です。アップロード後はGitHub Releaseの下書きを確認して公開します。
修正や機能追加を区切って正式版として公開するときや、プレリリースを配布するときに使えます。変更履歴からリリースページの説明を準備し、公開までの確認事項を順に把握したい場合にも向いています。
mainの最新状態でCIが成功している必要があります。タグとpyproject.tomlのバージョン、安定版のCHANGELOG.md見出しは一致させます。PyPIへの公開にはGitHub環境での手動承認が必要で、GitHub Releaseも下書きの確認後に公開します。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
SKILL.md の記述から、注意が要る操作と導入の前提を AI が確認しました。点数は実際に動かした結果(実行検証)だけで付けています。
点数には入れていません。 2026年10月29日 時点で AI(OpenAI Codex)が判定しました。目安なので、入れる前に原文も確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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.
main, up to date, with green CI (the tag builds from main's tree).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 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. Linkreleases/tag/vX.Y.Zinstead; 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.
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.
everos → Settings →
Publishing → add: owner EverMind-AI, repo EverOS, workflow
release.yml, environment release.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.
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
業務用の新しいメモリ種別を追加する際、Markdown・SQLite・LanceDBの保存先や形式を選び、スキーマ、リポジトリ、書き込み処理を組み立てます。
変更内容と最近の履歴を確認し、Conventional Commits形式のメッセージを作ってコミットします。無関係な変更を分け、フックの失敗にも対処します。
変更内容に合った接頭辞と短い名前を決め、mainを最新にして用途を絞ったGitHub作業ブランチを作成するスキルです。
変更内容や確認結果をリポジトリのPRテンプレートに沿って整理し、mainを対象にGitHubでプルリクエストを作成するスキルです。