← /geode/portfolioGEODE . 문서
GitHub
개발과 아키텍처
How-to

릴리스 + PyPI 라이프사이클

develop 머지 부터 tagged PyPI 릴리스까지. version bump, CHANGELOG SOT, release.yml, geode-changelog 스킬, rebuild + restart 사이클.

4 개 location 의 version SOT

버전은 정확히 4 군데에 동시 업데이트되어야 합니다. CHANGELOG.md, pyproject.toml, CLAUDE.md, README.md. `npm run sync-stats` 가 site SOT 와 changelog ts 까지 5 군데. 한 군데라도 누락되면 `geode version` 출력 과 PyPI tarball 메타데이터가 어긋남.

SemVer + 적용 기준

  • MAJOR. 호환성 깨짐 (CLI flag 제거, public API rename)
  • MINOR. 새 기능 (새 tool, 새 hook, 새 provider)
  • PATCH. 버그 수정 / 내부 리팩토링
  • 문서 only 변경은 버전 bump 없음

릴리스 워크플로우

# 1. CHANGELOG [Unreleased] -> [vX.Y.Z] — YYYY-MM-DD
# 2. 4 location 동시 bump (CHANGELOG / pyproject / CLAUDE.md / README.md)
# 3. release PR (develop -> main) — develop->main PR 은 Summary + Verification 만
# 4. main 머지 후 .github/workflows/release.yml 가 자동:
#    - python -m build
#    - twine upload --repository pypi
#    - gh release create vX.Y.Z
# 5. 재설치 + 데몬 재기동
kill $(ps aux | grep "geode serve" | grep -v grep | awk '{print $2}')
uv tool install -e . --force
uv sync
geode version          # confirm
geode serve &

관련 워크플로우

  • .github/workflows/release.yml. tag → PyPI publish
  • .github/workflows/install-smoke.yml. macOS + Ubuntu 의 install 회귀 슈트
  • .claude/skills/geode-changelog. version 결정 + entry 작성 룰

참조: `CHANGELOG.md`, `.claude/skills/geode-changelog`, `.github/workflows/release.yml`.