release-package-version
À propos
Cette compétence automatise le cycle complet de publication des packages R, en gérant les mises à jour de version, les modifications du NEWS.md, le marquage git et les publications sur GitHub. Elle est conçue pour publier des versions correctives, mineures ou majeures et peut créer une publication GitHub correspondante après l'acceptation par le CRAN. Le processus configure également l'incrément de la version de développement suivante après la publication.
Installation rapide
Claude Code
Recommandé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-versionCopiez et collez cette commande dans Claude Code pour installer cette compétence
Documentation
Release Package Version
Execute full ver release cycle for R pkg.
Use When
- Ready to release new ver (bug fix, feature, breaking)
- After CRAN accept → matching GH release
- Set up post-release dev ver
In
- Required: Pkg w/ changes ready
- Required: Release type: patch (0.1.0 → 0.1.1), minor (0.1.0 → 0.2.0), major (0.1.0 → 1.0.0)
- Optional: Submit to CRAN? (default no, use
submit-to-cranseparate)
Do
Step 1: Determine 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 |
→ Correct bump (patch/minor/major) determined by changes since last release.
If err: unsure → review git log since last tag + classify each change. Any breaking API → major.
Step 2: Update Ver
usethis::use_version("minor") # or "patch" or "major"
Updates Version in DESCRIPTION + adds heading to NEWS.md.
→ DESCRIPTION ver updated. NEWS.md has new section header for release ver.
If err: usethis::use_version() not available → manual update Version in DESCRIPTION + add # packagename x.y.z heading to NEWS.md.
Step 3: Update NEWS.md
Fill release notes under new ver 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 → traceability.
→ NEWS.md has complete summary of user-facing changes by category, w/ issue/PR numbers.
If err: changes hard reconstruct → git log --oneline v<previous>..HEAD lists all commits since last release + categorize.
Step 4: Final Checks
devtools::check()
devtools::spell_check()
urlchecker::url_check()
→ devtools::check() returns 0 errors, 0 warnings, 0 notes. Spell + URL clean.
If err: fix all errs + warns before release. Add false-positives to inst/WORDLIST. Replace broken URLs.
Step 5: Commit Release
git add DESCRIPTION NEWS.md
git commit -m "Release packagename v0.2.0"
→ Single commit w/ ver bump in DESCRIPTION + updated NEWS.md.
If err: other uncommitted changes → stage only DESCRIPTION + NEWS.md. Release commits = ver-related only.
Step 6: Tag Release
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin main --tags
→ Annotated tag v0.2.0 created + pushed. git tag -l local; git ls-remote --tags origin confirms remote.
If err: push fails → check write access. Tag exists → verify points to correct commit git show v0.2.0.
Step 7: GitHub Release
gh release create v0.2.0 \
--title "packagename v0.2.0" \
--notes-file NEWS.md
Or:
usethis::use_github_release()
→ GH release created w/ notes visible on Releases page.
If err: gh release create fails → ensure gh auth (gh auth status). usethis::use_github_release() fails → create manual on GH.
Step 8: Set Dev Ver
After release, bump to dev:
usethis::use_dev_version()
Changes ver to 0.2.0.9000 → indicates dev.
git add DESCRIPTION NEWS.md
git commit -m "Begin development for next version"
git push
→ DESCRIPTION ver = 0.2.0.9000. NEWS.md has new heading for dev ver. Pushed.
If err: usethis::use_dev_version() not available → manual change to x.y.z.9000 in DESCRIPTION + add # packagename (development version) heading to NEWS.md.
Check
- Ver in DESCRIPTION matches intended
- NEWS.md complete + accurate
-
R CMD checkpasses - Git tag matches ver (e.g.
v0.2.0) - GH release exists w/ notes
- Post-release dev ver set (x.y.z.9000)
Traps
- Forget push tags:
git pushalone no push tags. Use--tagsorgit push origin v0.2.0 - NEWS.md format: Markdown headers matching pkgdown/CRAN format
- Tag wrong commit: Always tag after ver-bump commit, not before
- CRAN ver already exists: CRAN won't accept dup. Always increment.
- Dev ver in release: Never submit
.9000to CRAN
→
submit-to-cran— CRAN submission after releasecreate-github-release— general GH release creationsetup-github-actions-ci— triggers pkgdown rebuild on releasebuild-pkgdown-site— docs site reflects new ver
Dépôt GitHub
Compétences associées
llamaguard
AutreLlamaGuard est le modèle de Meta, doté de 7 à 8 milliards de paramètres, conçu pour modérer les entrées et sorties des LLM selon six catégories de sécurité comme la violence et les discours haineux. Il offre une précision de 94 à 95 % et peut être déployé avec vLLM, Hugging Face ou Amazon SageMaker. Utilisez cette compétence pour intégrer facilement le filtrage de contenu et des garde-fous de sécurité dans vos applications d'IA.
cost-optimization
AutreCette compétence de Claude aide les développeurs à optimiser les coûts du cloud grâce au redimensionnement des ressources, aux stratégies d'étiquetage et à l'analyse des dépenses. Elle fournit un cadre pour réduire les dépenses cloud et mettre en œuvre une gouvernance des coûts sur AWS, Azure et GCP. Utilisez-la lorsque vous devez analyser les coûts d'infrastructure, redimensionner les ressources ou respecter des contraintes budgétaires.
quantizing-models-bitsandbytes
AutreCette compétence quantifie les LLMs en précision 8 bits ou 4 bits à l'aide de bitsandbytes, permettant une réduction de 50 à 75 % de la mémoire utilisée avec une perte de précision minime. Elle est idéale pour exécuter des modèles plus volumineux sur une mémoire GPU limitée ou pour accélérer l'inférence, prenant en charge des formats comme INT8, NF4 et FP4. La compétence s'intègre à HuggingFace Transformers et permet l'entraînement QLoRA ainsi que l'utilisation d'optimiseurs en 8 bits.
dispatching-parallel-agents
AutreCette compétence Claude déploie plusieurs agents pour enquêter et résoudre simultanément 3 problèmes indépendants ou plus. Elle est conçue pour des scénarios impliquant des défaillances non liées qui peuvent être résolues sans état partagé ni dépendances. La capacité fondamentale est la résolution de problèmes en parallèle, en assignant un agent par domaine problématique indépendant afin de maximiser l'efficacité.
