返回技能列表

release-package-version

pjt222
更新于 2 days ago
7 次查看
17
2
17
在 GitHub 上查看
general

关于

This skill automates the complete release workflow for R packages, handling version bumps, NEWS.md updates, git tagging, and GitHub release creation. Use it when a package is ready for a patch, minor, or major release, or after CRAN acceptance to create the corresponding GitHub release. It also sets up the post-release development version increment.

快速安装

Claude Code

推荐
主要方式
npx skills add pjt222/agent-almanac -a claude-code
插件命令备选方式
/plugin add https://github.com/pjt222/agent-almanac
Git 克隆备选方式
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/release-package-version

在 Claude Code 中复制并粘贴此命令以安装该技能

技能文档

釋包之版

行 R 包之全版釋之循環。

用時

  • 已備釋新版(修訛、增功、破變)乃用
  • CRAN 受後立對應之 GitHub 釋乃用
  • 釋後立設發之版乃用

  • 必要:包附已備釋之變
  • 必要:釋類:修(0.1.0 -> 0.1.1)、次(0.1.0 -> 0.2.0)、主(0.1.0 -> 1.0.0)
  • 可選:是否投 CRAN(默:否,獨用 submit-to-cran 技)

第一步:定版升

循語意之版:

變類版升
唯修訛0.1.0 -> 0.1.1
新功(向後相容)0.1.0 -> 0.2.0
破變0.1.0 -> 1.0.0

得:依自前釋來變之性,定正升類(修、次、主)。

敗則:若不確,閱 git log 自前標而分各變。任何破 API 之變需主升。

第二步:更版

usethis::use_version("minor")  # or "patch" or "major"

此更 DESCRIPTION 中 Version 之欄並加首於 NEWS.md。

得:DESCRIPTION 之版已更。NEWS.md 有釋版之新段首。

敗則:若 usethis::use_version() 不可得,手更 DESCRIPTION 之 Version 欄並加 # packagename x.y.z 首於 NEWS.md。

第三步:更 NEWS.md

於新版首下填釋之記:

# 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

用問題/PR 號以資追溯。

得:NEWS.md 含對用者所見之變之全摘,以類組之,附問題/PR 號以資追。

敗則:若變難復,用 git log --oneline v<previous>..HEAD 列自前釋之諸提交而分之。

第四步:終察

devtools::check()
devtools::spell_check()
urlchecker::url_check()

得:devtools::check() 返 0 誤、0 警、0 注。拼察與 URL 察無患。

敗則:釋前修諸誤與警。加假陽詞於 inst/WORDLIST 供拼察。代斷 URL。

第五步:提交釋

git add DESCRIPTION NEWS.md
git commit -m "Release packagename v0.2.0"

得:單提交含 DESCRIPTION 之版升與更之 NEWS.md。

敗則:若有他未提之變,獨入 DESCRIPTION 與 NEWS.md。釋之提交宜獨含版相關之變。

第六步:標其釋

git tag -a v0.2.0 -m "Release v0.2.0"
git push origin main --tags

得:注解之標 v0.2.0 已立並推至遠端。git tag -l 示其於本地;git ls-remote --tags origin 確之於遠。

敗則:若推敗,察是否有書之權。若標已存,以 git show v0.2.0 驗其指正提交。

第七步:立 GitHub 之釋

gh release create v0.2.0 \
  --title "packagename v0.2.0" \
  --notes-file NEWS.md

或用:

usethis::use_github_release()

得:GitHub 之釋已立,釋之記現於庫之 Releases 頁。

敗則:若 gh release create 敗,確 gh CLI 已認證(gh auth status)。若 usethis::use_github_release() 敗,於 GitHub 手立其釋。

第八步:設發之版

釋後升至發之版:

usethis::use_dev_version()

此化版為 0.2.0.9000 表發中。

git add DESCRIPTION NEWS.md
git commit -m "Begin development for next version"
git push

得:DESCRIPTION 之版今為 0.2.0.9000(發版)。NEWS.md 有發版之新首。變已推至遠端。

敗則:若 usethis::use_dev_version() 不可得,手化版為 x.y.z.9000 於 DESCRIPTION 並加 # packagename (development version) 首於 NEWS.md。

  • DESCRIPTION 之版合所欲釋
  • NEWS.md 有全且確之釋記
  • R CMD check
  • git 標合版(如 v0.2.0
  • GitHub 之釋存附釋之記
  • 釋後發版已設(x.y.z.9000)

  • 忘推標:獨 git push 不推標。用 --tagsgit push origin v0.2.0
  • NEWS.md 之式:用 markdown 之首合 pkgdown/CRAN 望之式
  • 標誤提交:必於版升提交後標,非前
  • CRAN 版已存:CRAN 不受已示之版。必增之
  • 釋中之發版:永勿投 .9000 版於 CRAN

  • submit-to-cran — 版釋後投 CRAN
  • create-github-release — 通用 GitHub 釋之立
  • setup-github-actions-ci — 釋觸 pkgdown 之重建
  • build-pkgdown-site — 文站映新版

GitHub 仓库

pjt222/agent-almanac
路径: i18n/wenyan/skills/release-package-version
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

相关推荐技能

content-collections

Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。

查看技能

polymarket

这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。

查看技能

creating-opencode-plugins

该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。

查看技能

sglang

SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。

查看技能