Release a new version of an R package including version bumping, NEWS.md updates, git tagging, GitHub release creation, and post-release development version setup. Use when a package is ready for a new patch, minor, or major release, after CRAN acceptance to create the corresponding GitHub release, or when setting up the development version bump immediately after a release.
Execute the full version release cycle for an R package.
submit-to-cran skill separately)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 |
Expected: The correct bump type (patch, minor, or major) is determined based on the nature of changes since the last release.
On failure: If unsure, review git log since the last tag and classify each change. Any breaking API change requires a major bump.
usethis::use_version("minor") # or "patch" or "major"
This updates the Version field in DESCRIPTION and adds a heading to NEWS.md.
Expected: DESCRIPTION version updated. NEWS.md has a new section header for the release version.
On failure: 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.
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.
Expected: NEWS.md contains a complete summary of user-facing changes organized by category, with issue/PR numbers for traceability.
On failure: If changes are hard to reconstruct, use git log --oneline v<previous>..HEAD to list all commits since the last release and categorize them.
devtools::check()
devtools::spell_check()
urlchecker::url_check()
Expected: devtools::check() returns 0 errors, 0 warnings, and 0 notes. Spell check and URL check find no issues.
On failure: Fix all errors and warnings before releasing. Add false-positive words to inst/WORDLIST for the spell checker. Replace broken URLs.
git add DESCRIPTION NEWS.md
git commit -m "Release packagename v0.2.0"
Expected: A single commit containing the version bump in DESCRIPTION and the updated NEWS.md.
On failure: If other uncommitted changes are present, stage only DESCRIPTION and NEWS.md. Release commits should contain only version-related changes.
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin main --tags
Expected: 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.
On failure: 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.
gh release create v0.2.0 \
--title "packagename v0.2.0" \
--notes-file NEWS.md
Or use:
usethis::use_github_release()
Expected: GitHub release created with release notes visible on the repository's Releases page.
On failure: 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.
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
Expected: 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.
On failure: 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.
R CMD check passesv0.2.0)git push alone doesn't push tags. Use --tags or git push origin v0.2.0.9000 version to CRANsubmit-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 versionnpx skills add pjt222/release-package-version下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer