release-package-version
关于
This skill automates the complete release process for R packages, handling version increments, NEWS.md updates, Git tagging, and GitHub release creation. Use it when preparing a package for a new patch/minor/major release or after CRAN acceptance to create the corresponding GitHub release. It also sets up the post-release development version automatically.
快速安装
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 中复制并粘贴此命令以安装该技能
技能文档
name: release-package-version locale: de source_locale: en source_commit: 6f65f316 translator: claude translation_date: "2026-03-17" description: > Eine neue Version eines R-Pakets veroeffentlichen einschliesslich Versionserhoehung, NEWS.md-Aktualisierungen, Git-Tagging, GitHub-Release-Erstellung und Einrichtung der Post-Release- Entwicklungsversion. Anwenden wenn ein Paket fuer eine neue Patch-, Minor- oder Major-Veroeffentlichung bereit ist, nach CRAN-Akzeptanz zur Erstellung des entsprechenden GitHub-Release, oder beim Einrichten der Entwicklungsversionsanpassung direkt nach einer Veroeffentlichung. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: r-packages complexity: intermediate language: R tags: r, versioning, release, git-tags, changelog
Paketversion veroeffentlichen
Den vollstaendigen Versionsveroeffentlichungszyklus fuer ein R-Paket ausfuehren.
Wann verwenden
- Bereit zur Veroeffentlichung einer neuen Version (Fehlerbehebung, neues Feature oder einschneidende Aenderung)
- Nach CRAN-Akzeptanz ein entsprechendes GitHub-Release erstellen
- Post-Release-Entwicklungsversion einrichten
Eingaben
- Erforderlich: Paket mit veroeffentlichungsbereiten Aenderungen
- Erforderlich: Veroeffentlichungstyp: Patch (0.1.0 -> 0.1.1), Minor (0.1.0 -> 0.2.0) oder Major (0.1.0 -> 1.0.0)
- Optional: Ob bei CRAN eingereicht werden soll (Standard: nein,
submit-to-cran-Skill separat verwenden)
Vorgehensweise
Schritt 1: Versionserhoehung bestimmen
Semantische Versionierung befolgen:
| Aenderungstyp | Versionserhoehung | Beispiel |
|---|---|---|
| Nur Fehlerbehebungen | Patch | 0.1.0 -> 0.1.1 |
| Neue Features (rueckwaertskompatibel) | Minor | 0.1.0 -> 0.2.0 |
| Einschneidende Aenderungen | Major | 0.1.0 -> 1.0.0 |
Erwartet: Der korrekte Erhoehungstyp (Patch, Minor oder Major) ist basierend auf der Art der Aenderungen seit der letzten Veroeffentlichung bestimmt.
Bei Fehler: Im Zweifelsfall git log seit dem letzten Tag ueberpruefen und jede Aenderung klassifizieren. Jede einschneidende API-Aenderung erfordert eine Major-Erhoehung.
Schritt 2: Version aktualisieren
usethis::use_version("minor") # oder "patch" oder "major"
Dies aktualisiert das Version-Feld in DESCRIPTION und fuegt eine Ueberschrift zu NEWS.md hinzu.
Erwartet: DESCRIPTION-Version aktualisiert. NEWS.md hat einen neuen Abschnittstitel fuer die Veroeffentlichungsversion.
Bei Fehler: Wenn usethis::use_version() nicht verfuegbar ist, manuell das Version-Feld in DESCRIPTION aktualisieren und eine # paketname x.y.z-Ueberschrift zu NEWS.md hinzufuegen.
Schritt 3: NEWS.md aktualisieren
Die Veroeffentlichungsnotizen unter der neuen Versionsueuberschrift ausfuellen:
# paketname 0.2.0
## Neue Features
- `neue_funktion()` zur Datenverarbeitung hinzugefuegt (#42)
- Unterstuetzung fuer benutzerdefinierte Themes in `plot_results()` (#45)
## Fehlerbehebungen
- Absturz behoben wenn Eingabe nur NAs enthaelt (#38)
- Off-by-One-Fehler in `window_calc()` korrigiert (#41)
## Kleinere Verbesserungen
- Fehlermeldungen fuer ungueltige Eingabetypen verbessert
- Dokumentationsbeispiele aktualisiert
Issue-/PR-Nummern fuer die Rueckverfolgbarkeit verwenden.
Erwartet: NEWS.md enthaelt eine vollstaendige Zusammenfassung benutzersichtbarer Aenderungen nach Kategorien geordnet, mit Issue-/PR-Nummern fuer die Rueckverfolgbarkeit.
Bei Fehler: Wenn Aenderungen schwer zu rekonstruieren sind, git log --oneline v<vorgaenger>..HEAD verwenden um alle Commits seit der letzten Veroeffentlichung aufzulisten und zu kategorisieren.
Schritt 4: Abschlusspruefungen
devtools::check()
devtools::spell_check()
urlchecker::url_check()
Erwartet: devtools::check() gibt 0 Fehler, 0 Warnungen und 0 Anmerkungen zurueck. Rechtschreib- und URL-Pruefung finden keine Probleme.
Bei Fehler: Alle Fehler und Warnungen vor der Veroeffentlichung beheben. Falsch-positive Woerter zu inst/WORDLIST fuer die Rechtschreibpruefung hinzufuegen. Fehlerhafte URLs ersetzen.
Schritt 5: Veroeffentlichung committen
git add DESCRIPTION NEWS.md
git commit -m "Release paketname v0.2.0"
Erwartet: Ein einzelner Commit der die Versionserhoehung in DESCRIPTION und die aktualisierte NEWS.md enthaelt.
Bei Fehler: Wenn andere nicht-committete Aenderungen vorhanden sind, nur DESCRIPTION und NEWS.md stagen. Veroeffentlichungs-Commits sollten nur versionsbezogene Aenderungen enthalten.
Schritt 6: Das Release taggen
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin main --tags
Erwartet: Annotierter Tag v0.2.0 erstellt und zum Remote gepusht. git tag -l zeigt den Tag lokal; git ls-remote --tags origin bestaetigt ihn auf dem Remote.
Bei Fehler: Wenn der Push fehlschlaegt, Schreibzugriff pruefen. Wenn der Tag bereits existiert, verifizieren dass er auf den korrekten Commit zeigt mit git show v0.2.0.
Schritt 7: GitHub-Release erstellen
gh release create v0.2.0 \
--title "paketname v0.2.0" \
--notes-file NEWS.md
Oder verwenden:
usethis::use_github_release()
Erwartet: GitHub-Release erstellt mit Veroeffentlichungsnotizen sichtbar auf der Releases-Seite des Repositorys.
Bei Fehler: Wenn gh release create fehlschlaegt, sicherstellen dass die gh-CLI authentifiziert ist (gh auth status). Wenn usethis::use_github_release() fehlschlaegt, das Release manuell auf GitHub erstellen.
Schritt 8: Entwicklungsversion setzen
Nach der Veroeffentlichung zur Entwicklungsversion wechseln:
usethis::use_dev_version()
Dies aendert die Version zu 0.2.0.9000 als Kennzeichnung fuer Entwicklung.
git add DESCRIPTION NEWS.md
git commit -m "Entwicklung fuer naechste Version beginnen"
git push
Erwartet: DESCRIPTION-Version ist jetzt 0.2.0.9000 (Entwicklungsversion). NEWS.md hat eine neue Ueberschrift fuer die Entwicklungsversion. Aenderungen sind zum Remote gepusht.
Bei Fehler: Wenn usethis::use_dev_version() nicht verfuegbar ist, die Version manuell zu x.y.z.9000 in DESCRIPTION aendern und eine # paketname (Entwicklungsversion)-Ueberschrift zu NEWS.md hinzufuegen.
Validierung
- Version in DESCRIPTION stimmt mit beabsichtigter Veroeffentlichung ueberein
- NEWS.md hat vollstaendige, genaue Veroeffentlichungsnotizen
-
R CMD checkbesteht - Git-Tag stimmt mit Version ueberein (z.B.
v0.2.0) - GitHub-Release existiert mit Veroeffentlichungsnotizen
- Post-Release-Entwicklungsversion gesetzt (x.y.z.9000)
Haeufige Stolperfallen
- Vergessen Tags zu pushen:
git pushallein pusht keine Tags.--tagsverwenden odergit push origin v0.2.0 - NEWS.md-Format: Markdown-Ueberschriften im von pkgdown/CRAN erwarteten Format verwenden
- Falschen Commit taggen: Immer nach dem Versionserhoehungs-Commit taggen, nicht davor
- CRAN-Version existiert bereits: CRAN akzeptiert keine bereits veroeffentlichte Version. Immer inkrementieren.
- Entwicklungsversion in der Veroeffentlichung: Nie eine
.9000-Version bei CRAN einreichen
Verwandte Skills
submit-to-cran-- CRAN-Einreichung nach Versionsveroeffentlichungcreate-github-release-- Allgemeine GitHub-Release-Erstellungsetup-github-actions-ci-- Loest pkgdown-Neubau bei Release ausbuild-pkgdown-site-- Dokumentationsseite spiegelt neue Version wider
GitHub 仓库
相关推荐技能
llamaguard
其他LlamaGuard是Meta推出的7-8B参数内容审核模型,专门用于过滤LLM的输入和输出内容。它能检测六大安全风险类别(暴力/仇恨、性内容、武器、违禁品、自残、犯罪计划),准确率达94-95%。开发者可通过HuggingFace、vLLM或Sagemaker快速部署,并能与NeMo Guardrails集成实现自动化安全防护。
cost-optimization
其他这个Claude Skill帮助开发者优化云成本,通过资源调整、标记策略和预留实例来降低AWS、Azure和GCP的开支。它适用于减少云支出、分析基础设施成本或实施成本治理策略的场景。关键功能包括提供成本可视化、资源规模调整指导和定价模型优化建议。
quantizing-models-bitsandbytes
其他这个Skill使用bitsandbytes库量化大语言模型,能在GPU内存有限时通过8位或4位量化减少50-75%内存占用,同时保持精度损失最小。它支持INT8、NF4、FP4等多种量化格式,可与HuggingFace Transformers无缝集成,适用于需要部署更大模型或加速推理的场景。还提供QLoRA训练和8位优化器支持,让开发者能轻松实现高效模型压缩。
dispatching-parallel-agents
其他该Skill用于并行处理3个以上无依赖关系的独立故障,可为每个问题域分派专属Claude代理同时执行调查修复。它通过并发处理多个独立问题显著提升故障排查效率,特别适用于测试文件、子系统等无共享状态的场景。
