본문으로 건너뛰기
cccskills
무료GitHub에 공개

release

Release a new version of the DevoxxGenie IntelliJ plugin — prompt for the target version, bump it in the build files, write a curated CHANGELOG.md entry and plugin.xml change-notes from the git/PR history since the last tag, build to verify, then commit, tag, and publish a matching GitHub release. Use this whenever the user wants to cut, ship, publish, or tag a new plugin release, bump the version for a release, or asks to "release vX.Y.Z" / "do a release" / "make a new version".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구GitHub
설치 방법 보기

포함된 파일(1)

  • SKILL.md6.8 KB

SKILL.md(원문)

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

Release a new DevoxxGenie plugin version

This skill cuts a complete plugin release: version bump → curated changelog → plugin change-notes → build → commit → tag → GitHub release. The goal is a release whose CHANGELOG.md, plugin.xml change-notes, and GitHub release body all tell the same story, written from the actual work done — not a raw dump of PR titles.

The release commit lands on the current default branch (master), matching how prior releases were cut here. Do not create a feature branch for a release.

Step 1 — Ask for the target version

Never assume the next version. Show the current version and ask the user what to release.

grep -E '^version\s*=' build.gradle.kts | head -n1   # e.g. version = "1.7.4"

Offer patch / minor / major as a guide (e.g. current 1.7.4 → patch 1.7.5, minor 1.8.0, major 2.0.0) but let the user state the exact number. Use it verbatim as X.Y.Z (tags are vX.Y.Z).

Step 2 — Gather the history since the last release

Find the previous tag, then read what actually changed. You need the substance of each change, so look at PR titles and bodies/commits, not just subject lines.

git describe --tags --abbrev=0                 # previous tag, e.g. v1.7.4
git log <prev-tag>..HEAD --oneline             # commits to summarise
gh pr list --state merged --base master --limit 30 \
  --json number,title,author,mergedAt,body     # PR detail + authors

Group changes into the sections the CHANGELOG already uses, by conventional-commit prefix:

PrefixCHANGELOG section
feat / addAdded
fixFixed
refactor / build / perf / style / chore (non-dep)Changed
docsDocumentation
testTests
chore(deps) / bump / upgradeDependencies

Collect the unique PR authors for a Contributors section (@login).

Write descriptive entries: explain what changed and why it matters for a user or maintainer, drawing on the PR body/diff — not just the raw commit subject. Keep the feat(scope): / fix(scope): lead so entries scan consistently, and append issue/PR/task references like (#1097) or (task-229, #1093). Omit empty sections.

Step 3 — Bump the version

  • build.gradle.kts: update the top-level version = "X.Y.Z" line (around line 18).
  • src/main/resources/application.properties is auto-regenerated by the build from the Gradle project version — do not hand-edit it; Step 6's build updates it.
  • plugin.xml has no <version> tag (it's injected by the Gradle IntelliJ plugin), so only its change-notes need editing — see Step 5.

Step 4 — Write the CHANGELOG.md entry

Insert a new section at the top of CHANGELOG.md, directly under the # Changelog header and above the previous version. Match the existing house style exactly:

## vX.Y.Z - YYYY-MM-DD

### Added
- feat(tips): rotating tip line under the prompt placeholder, fetched from a 24h-cached
  tips.json with a built-in fallback list (#1099)

### Fixed
- fix(scope): concise but complete description of the fix and its user-visible effect (#NNNN)

### Changed
- refactor(scope): what was restructured and why it's cleaner (#NNNN)

### Dependencies
- chore: upgrade <lib> A.B.C → X.Y.Z

### Contributors
- @stephanj

Use today's date (the current date is available in your context). Keep entries information- dense; a single fix can warrant a long sentence if the behaviour change is subtle (see the v1.7.4 credentials entry for the level of detail that's welcome).

Step 5 — Update plugin.xml change-notes

The Marketplace change-notes are a condensed view — the user-relevant highlights, one concise <LI> each. Insert a new block immediately after <change-notes><![CDATA[, above the existing <h2> for the prior version:

        <h2>vX.Y.Z</h2>
        <UL>
                    <LI>feat(tips): rotating tip line under the prompt input, fetched from a cached tips.json (#1099)</LI>
                    <LI>fix(scope): short user-facing summary (#NNNN)</LI>
                </UL>

Skip internal-only churn (test-only, pure-refactor, doc) here unless it matters to users. Keep the indentation consistent with the surrounding blocks.

Step 6 — Build to verify

The project requires JDK 21 (JDK 25 breaks the Gradle build). Set JAVA_HOME first:

export JAVA_HOME=/Users/stephan/Library/Java/JavaVirtualMachines/azul-21.0.5/Contents/Home
./gradlew buildPlugin

This regenerates application.properties with the new version and produces build/distributions/DevoxxGenie-X.Y.Z.zip. Confirm the zip name matches the new version before continuing — a mismatch means the version bump didn't take.

Step 7 — Commit, tag, and push (confirm first)

Pushing and tagging are hard to undo and are outward-facing, so show the user the staged diff and the planned tag, and get an explicit go-ahead before running this step.

git add build.gradle.kts src/main/resources/application.properties \
        src/main/resources/META-INF/plugin.xml CHANGELOG.md
git commit -m "chore: bump version to vX.Y.Z"
git tag -a "vX.Y.Z" -m "Release vX.Y.Z"
git push origin HEAD
git push origin "vX.Y.Z"

Step 8 — Create the GitHub release

The release body is the CHANGELOG section for this version. Prior releases bold the lead clause of detailed entries (e.g. - **fix(credentials): …** — …) for scanability; apply that lightly to the heaviest entries. Attach the built zip as the release asset.

Write the body to a temp file (avoids shell-escaping issues), then:

gh release create "vX.Y.Z" \
  --title "vX.Y.Z" \
  --notes-file /tmp/release-notes-X.Y.Z.md \
  build/distributions/DevoxxGenie-X.Y.Z.zip

Finish by printing the release URL gh returns so the user can review it.

Notes

  • This skill stops at the GitHub release. Publishing to the JetBrains Marketplace is a separate, explicit step (PUBLISH_TOKEN=… ./gradlew publishPlugin) — only do it if the user asks.
  • If the working tree has unrelated uncommitted changes, surface that before staging so the release commit doesn't sweep them in.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

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

같은 저장소의 스킬

Close the active backlog task (detected from branch name), commit all changes, push to remote, and open a pull request. Use when the user says "close task and ship it", "close task commit push pr", or invokes /close-task-commit-push-pr.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devoxx/DevoxxGenieIDEAPlugin6852026년 10월 18일 업데이트

Commit all changes, push to remote, and open a pull request in one go. Use when the user says "commit push pr", "ship it", "open a pr", or invokes /git-commit-push-pr.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devoxx/DevoxxGenieIDEAPlugin6852026년 10월 18일 업데이트

review

무료

Review local code changes for bugs, regressions, missing tests, and pragmatic improvements. Use when the user asks to review the current changes from `git status`, or to review a specific backlog task by id such as `task-65` or `TASK-65`. Also trigger when the user says things like "review", "review current changes", "check my changes", "look over the diff", or "review task-42".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devoxx/DevoxxGenieIDEAPlugin6852026년 10월 18일 업데이트

Create a feature branch for a backlog task, switch to it, and start implementation. Use when the user says "start task-123", "work on task-123", "implement task-123", or invokes /start-task with a task ID.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devoxx/DevoxxGenieIDEAPlugin6852026년 10월 18일 업데이트

devoxx의 스킬 모두 보기

이 스킬의 문제 신고