본문으로 건너뛰기
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,704(GitHub 13,704 + 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도 초안을 확인한 뒤 게시해야 합니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

문서 점검

AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.

안전성전송·삭제·명령 실행 등을 명시하고 있는가
A양호PyPI 배포에는 수동 승인이 있고 태그와 버전 불일치를 거부합니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족최초 설정에 GitHub 환경과 PyPI 신뢰할 수 있는 게시자 구성이 필요합니다.

점수에는 넣지 않았습니다. 2026년 10월 29일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(1)

  • SKILL.md5.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

/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 / 1,000자

이 양식은 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`를 실행하고, 통과하면 브랜치를 푸시한 뒤 변경 요약, 영역, 검증 결과, 체크리스트와 리뷰어 메모를 작성합니다.

  • 완료한 변경 사항의 풀 리퀘스트 만들기
  • 풀 리퀘스트 템플릿 각 항목 작성하기
  • CI와 수동 확인 결과 기록하기
EverMind-AI/EverOS1.4만2026년 10월 29일 업데이트

EverMind-AI의 스킬 모두 보기

이 스킬의 문제 신고