返回技能列表

release-package-version

pjt222
更新于 2 days ago
5 次查看
17
2
17
在 GitHub 上查看
其他general

关于

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-almanac
Git 克隆备选方式
git 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:

AenderungstypVersionserhoehungBeispiel
Nur FehlerbehebungenPatch0.1.0 -> 0.1.1
Neue Features (rueckwaertskompatibel)Minor0.1.0 -> 0.2.0
Einschneidende AenderungenMajor0.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 check besteht
  • 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 push allein pusht keine Tags. --tags verwenden oder git 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 Versionsveroeffentlichung
  • create-github-release -- Allgemeine GitHub-Release-Erstellung
  • setup-github-actions-ci -- Loest pkgdown-Neubau bei Release aus
  • build-pkgdown-site -- Dokumentationsseite spiegelt neue Version wider

GitHub 仓库

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

相关推荐技能

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代理同时执行调查修复。它通过并发处理多个独立问题显著提升故障排查效率,特别适用于测试文件、子系统等无共享状态的场景。

查看技能