release-package-version
について
このClaude Skillは、Rパッケージの完全なリリースプロセスを自動化し、バージョン番号の更新、NEWS.mdの更新、gitタグ付け、GitHubリリース作成を処理します。パッケージがパッチ、マイナー、またはメジャーリリースの準備ができたとき、またはCRAN受理後に使用するように設計されています。また、このスキルはリリース直後の次の開発バージョンの設定も即座に行います。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/release-package-versionこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Release Package Version
Execute the full version release cycle for an R package.
When to Use
- Ready to release a new version (bug fix, feature, or breaking change)
- After CRAN acceptance, creating a corresponding GitHub release
- Setting up post-release development version
Inputs
- Required: Package with changes ready for release
- Required: Release type: patch (0.1.0 -> 0.1.1), minor (0.1.0 -> 0.2.0), or major (0.1.0 -> 1.0.0)
- Optional: Whether to submit to CRAN (default: no, use
submit-to-cranskill separately)
Procedure
Step 1: Determine Version Bump
Follow semantic versioning:
| Change Type | Version Bump | Example |
|---|---|---|
| Bug fixes only | Patch | 0.1.0 -> 0.1.1 |
| New features (backward compatible) | Minor | 0.1.0 -> 0.2.0 |
| Breaking changes | Major | 0.1.0 -> 1.0.0 |
Got: The correct bump type (patch, minor, or major) is determined based on the nature of changes since the last release.
If fail: If unsure, review git log since the last tag and classify each change. Any breaking API change requires a major bump.
Step 2: Update Version
usethis::use_version("minor") # or "patch" or "major"
This updates the Version field in DESCRIPTION and adds a heading to NEWS.md.
Got: DESCRIPTION version updated. NEWS.md has a new section header for the release version.
If fail: If usethis::use_version() is not available, manually update the Version field in DESCRIPTION and add a # packagename x.y.z heading to NEWS.md.
Step 3: Update NEWS.md
Fill in the release notes under the new version heading:
# packagename 0.2.0
## New Features
- Added `new_function()` for processing data (#42)
- Support for custom themes in `plot_results()` (#45)
## Bug Fixes
- Fixed crash when input contains all NAs (#38)
- Corrected off-by-one error in `window_calc()` (#41)
## Minor Improvements
- Improved error messages for invalid input types
- Updated documentation examples
Use issue/PR numbers for traceability.
Got: NEWS.md contains a complete summary of user-facing changes organized by category, with issue/PR numbers for traceability.
If fail: If changes are hard to reconstruct, use git log --oneline v<previous>..HEAD to list all commits since the last release and categorize them.
Step 4: Final Checks
devtools::check()
devtools::spell_check()
urlchecker::url_check()
Got: devtools::check() returns 0 errors, 0 warnings, and 0 notes. Spell check and URL check find no issues.
If fail: Fix all errors and warnings before releasing. Add false-positive words to inst/WORDLIST for the spell checker. Replace broken URLs.
Step 5: Commit Release
git add DESCRIPTION NEWS.md
git commit -m "Release packagename v0.2.0"
Got: A single commit containing the version bump in DESCRIPTION and the updated NEWS.md.
If fail: If other uncommitted changes are present, stage only DESCRIPTION and NEWS.md. Release commits should contain only version-related changes.
Step 6: Tag the Release
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin main --tags
Got: Annotated tag v0.2.0 created and pushed to the remote. git tag -l shows the tag locally; git ls-remote --tags origin confirms it on the remote.
If fail: If push fails, check that you have write access. If the tag already exists, verify it points to the correct commit with git show v0.2.0.
Step 7: Create GitHub Release
gh release create v0.2.0 \
--title "packagename v0.2.0" \
--notes-file NEWS.md
Or use:
usethis::use_github_release()
Got: GitHub release created with release notes visible on the repository's Releases page.
If fail: If gh release create fails, ensure the gh CLI is authenticated (gh auth status). If usethis::use_github_release() fails, create the release manually on GitHub.
Step 8: Set Development Version
After release, bump to development version:
usethis::use_dev_version()
This changes version to 0.2.0.9000 indicating development.
git add DESCRIPTION NEWS.md
git commit -m "Begin development for next version"
git push
Got: DESCRIPTION version is now 0.2.0.9000 (development version). NEWS.md has a new heading for the development version. Changes are pushed to the remote.
If fail: If usethis::use_dev_version() is not available, manually change the version to x.y.z.9000 in DESCRIPTION and add a # packagename (development version) heading to NEWS.md.
Validation
- Version in DESCRIPTION matches intended release
- NEWS.md has complete, accurate release notes
-
R CMD checkpasses - Git tag matches version (e.g.,
v0.2.0) - GitHub release exists with release notes
- Post-release development version set (x.y.z.9000)
Pitfalls
- Forgetting to push tags:
git pushalone doesn't push tags. Use--tagsorgit push origin v0.2.0 - NEWS.md format: Use markdown headers matching the pkgdown/CRAN expected format
- Tagging wrong commit: Always tag after the version-bump commit, not before
- CRAN version already exists: CRAN won't accept a version that's already been published. Always increment.
- Development version in release: Never submit a
.9000version to CRAN
Related Skills
submit-to-cran- CRAN submission after version releasecreate-github-release- general GitHub release creationsetup-github-actions-ci- triggers pkgdown rebuild on releasebuild-pkgdown-site- documentation site reflects new version
GitHub リポジトリ
関連スキル
content-collections
メタこのスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。
polymarket
メタこのスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。
creating-opencode-plugins
メタこのスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。
sglang
メタSGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。
