PyPI自動更新のために何が必要か

2026-05-19 時点では、ここで列挙した中核要件(publish workflow、PyPI secret、package 専用 test/lint、analysis-core-v* tag 規約)は一通り満たされ、analysis-core-v0.1.2 で実際に PyPI publish success を確認した。したがってこのページは「何が必要か」の記録として残しつつ、現在の実挙動は pypi-release-triggerpypi-release-observation-2026-05-19 を優先参照するとよい。pypi-release-observation-2026-05-19より

必須

  1. publish workflow の追加 docs/refactoring/phase2_5_plan.md には analysis-core-v* 命名の案があり、2026-05-17 時点では analysis-core-v* を採用 する判断になった。したがって .github/workflows/publish-analysis-core.ymlpush.tags: ['analysis-core-v*'] で起動する前提で作る必要がある。github-dev-docsより

  2. PyPI 認証の GitHub Secrets 文書上の自動化案は pypa/gh-action-pypi-publish@release/v1secrets.PYPI_API_TOKEN を前提にしている。したがって repository secrets に PyPI 用認証情報を登録する必要がある。github-dev-docsより

  3. package を build できる job packages/analysis-core/pyproject.tomlhatchling build backend を使う。workflow 側では Python 3.12 をセットアップし、python -m build packages/analysis-core で wheel / sdist を作る job が必要。source-codeより github-dev-docsより

  4. release gate となるテスト/lint 現在の CI は apps/api 向けの server-pytest.ymlruff-check.yml が中心で、packages/analysis-core/ を直接検証する workflow は見当たらない。PyPI 自動更新にするなら、少なくとも package 配下の pytestruff を publish 前段に置かないと、tag だけで壊れた配布物が出る。source-codeより

  5. version bump と tag 作成の運用固定 手順書では packages/analysis-core/pyproject.toml の version 更新後に tag を打つ前提。自動更新は「何をもって release とみなすか」が必要なので、pyproject.toml 更新 → commit → tag push の運用を明文化し、workflow の trigger と一致させる必要がある。github-dev-docsより source-codeより

実務上ほぼ必要

  • TestPyPI を使った検証経路 手順書には TestPyPI 手順がある。いきなり本番 publish するより、workflow_dispatch か prerelease tag で TestPyPI に流す経路を分けた方が安全。github-dev-docsより

  • package ディレクトリ外 build の扱い確認 手動手順では AbsoluteLinkError 回避のため package 外の venv を強調している。GitHub Actions のテンプレは repo root から python -m build packages/analysis-core なので、CI 上で問題ないことを一度確認しておくべき。github-dev-docsより

いま不足しているもの

  • publish 用 .github/workflows/*.yml
  • PyPI secret 登録済みという証拠
  • packages/analysis-core/ 専用の test/lint workflow
  • analysis-core-v* tag 規約に沿った publish workflow 本体

最短構成

最短で動かすなら次の 4 点で足りる。

  1. packages/analysis-core/ 用 pytest/ruff workflow を追加
  2. .github/workflows/publish-analysis-core.yml を追加
  3. PYPI_API_TOKEN を GitHub Secrets に登録
  4. analysis-core-v0.1.1 のような release tag を打って運用開始

Open Questions

  • publish 前に apps/api 側の互換テストまで必須にするか
  • PyPI 認証を token secret で持つか、Trusted Publishing に寄せるか
  • 「release タイミング自体を自動化するか(tag 付けまで CI 側に持っていくか)」の判断は pypi-release-timing-automation に分離した

Updates

  • 2026-05-19: 必須要件が一通り満たされ、analysis-core-v0.1.2 で publish success を観測したことを追記
  • 2026-05-17: tag 規約は analysis-core-v* を採用する前提に更新
  • 2026-05-17: Query への filing back として追加。docs/development/pypi-release.mddocs/refactoring/phase2_5_plan.md.github/workflows/packages/analysis-core/pyproject.toml を照合