release-package-version
について
このスキルは、Rパッケージの完全なリリースプロセスを自動化します。バージョン番号の更新、NEWS.mdの編集、Gitタグの作成、GitHubリリースの生成を含みます。パッケージが新たなパッチ、マイナー、またはメジャーリリースの準備ができたとき、あるいはCRAN受理後にそれに対応するGitHubバージョンを作成する際に使用するよう設計されています。このツールはまた、次の開発バージョン増分の設定といったリリース後のタスクも扱います。
クイックインストール
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 description: > Publicar una nueva versión de un paquete R incluyendo el incremento de versión, actualizaciones de NEWS.md, etiquetado git, creación de versiones de GitHub y configuración de la versión de desarrollo post-publicación. Usar cuando un paquete está listo para un nuevo parche, versión menor o mayor, tras la aceptación en CRAN para crear la versión de GitHub correspondiente, o al configurar el incremento de la versión de desarrollo inmediatamente después de una publicación. locale: es source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16 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
Publicar Versión del Paquete
Ejecutar el ciclo completo de publicación de versiones para un paquete R.
Cuándo Usar
- Listo para publicar una nueva versión (corrección de errores, nueva funcionalidad o cambio disruptivo)
- Tras la aceptación en CRAN, para crear la versión de GitHub correspondiente
- Configurar la versión de desarrollo post-publicación
Entradas
- Obligatorio: Paquete con cambios listos para publicar
- Obligatorio: Tipo de publicación: parche (0.1.0 -> 0.1.1), menor (0.1.0 -> 0.2.0) o mayor (0.1.0 -> 1.0.0)
- Opcional: Si enviar a CRAN (predeterminado: no, usar la habilidad
submit-to-cranpor separado)
Procedimiento
Paso 1: Determinar el Tipo de Incremento
Seguir el versionado semántico:
| Tipo de Cambio | Incremento | Ejemplo |
|---|---|---|
| Solo correcciones de errores | Parche | 0.1.0 -> 0.1.1 |
| Nuevas funcionalidades (compatibles hacia atrás) | Menor | 0.1.0 -> 0.2.0 |
| Cambios disruptivos | Mayor | 0.1.0 -> 1.0.0 |
Esperado: Se determina el tipo de incremento correcto (parche, menor o mayor) según la naturaleza de los cambios desde la última publicación.
En caso de fallo: Si hay dudas, revisar git log desde la última etiqueta y clasificar cada cambio. Cualquier cambio disruptivo de la API requiere un incremento mayor.
Paso 2: Actualizar la Versión
usethis::use_version("minor") # o "patch" o "major"
Esto actualiza el campo Version en DESCRIPTION y añade un encabezado a NEWS.md.
Esperado: Versión de DESCRIPTION actualizada. NEWS.md tiene un nuevo encabezado de sección para la versión publicada.
En caso de fallo: Si usethis::use_version() no está disponible, actualizar manualmente el campo Version en DESCRIPTION y añadir un encabezado # packagename x.y.z a NEWS.md.
Paso 3: Actualizar NEWS.md
Completar las notas de la versión bajo el nuevo encabezado:
# 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
Usar números de issue/PR para la trazabilidad.
Esperado: NEWS.md contiene un resumen completo de los cambios visibles para el usuario organizados por categoría, con números de issue/PR para la trazabilidad.
En caso de fallo: Si es difícil reconstruir los cambios, usar git log --oneline v<previous>..HEAD para listar todos los commits desde la última publicación y categorizarlos.
Paso 4: Verificaciones Finales
devtools::check()
devtools::spell_check()
urlchecker::url_check()
Esperado: devtools::check() devuelve 0 errores, 0 advertencias y 0 notas. La verificación ortográfica y de URLs no encuentra problemas.
En caso de fallo: Corregir todos los errores y advertencias antes de publicar. Añadir palabras con falso positivo a inst/WORDLIST para el corrector ortográfico. Reemplazar las URLs rotas.
Paso 5: Confirmar la Publicación
git add DESCRIPTION NEWS.md
git commit -m "Release packagename v0.2.0"
Esperado: Un único commit que contiene el incremento de versión en DESCRIPTION y el NEWS.md actualizado.
En caso de fallo: Si hay otros cambios sin confirmar, preparar solo DESCRIPTION y NEWS.md. Los commits de publicación deben contener únicamente cambios relacionados con la versión.
Paso 6: Etiquetar la Publicación
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin main --tags
Esperado: Etiqueta anotada v0.2.0 creada y enviada al remoto. git tag -l muestra la etiqueta localmente; git ls-remote --tags origin la confirma en el remoto.
En caso de fallo: Si el push falla, verificar que se tiene acceso de escritura. Si la etiqueta ya existe, comprobar que apunta al commit correcto con git show v0.2.0.
Paso 7: Crear la Versión de GitHub
gh release create v0.2.0 \
--title "packagename v0.2.0" \
--notes-file NEWS.md
O usar:
usethis::use_github_release()
Esperado: Versión de GitHub creada con las notas de la versión visibles en la página de Versiones del repositorio.
En caso de fallo: Si gh release create falla, asegurarse de que la CLI gh está autenticada (gh auth status). Si usethis::use_github_release() falla, crear la versión manualmente en GitHub.
Paso 8: Configurar la Versión de Desarrollo
Tras la publicación, incrementar a la versión de desarrollo:
usethis::use_dev_version()
Esto cambia la versión a 0.2.0.9000 indicando que es una versión de desarrollo.
git add DESCRIPTION NEWS.md
git commit -m "Begin development for next version"
git push
Esperado: La versión de DESCRIPTION es ahora 0.2.0.9000 (versión de desarrollo). NEWS.md tiene un nuevo encabezado para la versión de desarrollo. Los cambios se envían al remoto.
En caso de fallo: Si usethis::use_dev_version() no está disponible, cambiar manualmente la versión a x.y.z.9000 en DESCRIPTION y añadir un encabezado # packagename (development version) a NEWS.md.
Validación
- La versión en DESCRIPTION coincide con la publicación prevista
- NEWS.md tiene notas de versión completas y precisas
-
R CMD checkpasa - La etiqueta git coincide con la versión (p. ej.,
v0.2.0) - La versión de GitHub existe con las notas de la versión
- La versión de desarrollo post-publicación está configurada (x.y.z.9000)
Errores Comunes
- Olvidar enviar las etiquetas:
git pushsolo no envía las etiquetas. Usar--tagsogit push origin v0.2.0 - Formato de NEWS.md: Usar encabezados markdown que coincidan con el formato esperado por pkgdown/CRAN
- Etiquetar el commit incorrecto: Siempre etiquetar después del commit de incremento de versión, no antes
- La versión de CRAN ya existe: CRAN no acepta una versión que ya ha sido publicada. Incrementar siempre.
- Versión de desarrollo en la publicación: Nunca enviar una versión
.9000a CRAN
Habilidades Relacionadas
submit-to-cran- envío a CRAN tras la publicación de la versióncreate-github-release- creación general de versiones de GitHubsetup-github-actions-ci- activa la recompilación de pkgdown al publicar una versiónbuild-pkgdown-site- el sitio de documentación refleja la nueva versión
GitHub リポジトリ
関連スキル
llamaguard
その他LlamaGuardは、暴力やヘイトスピーチなど6つの安全性カテゴリーにおいて、LLMの入力と出力をモデレートするMetaの70-80億パラメータモデルです。94〜95%の精度を提供し、vLLM、Hugging Face、Amazon SageMakerを使用してデプロイ可能です。このスキルを使用して、AIアプリケーションにコンテンツフィルタリングと安全策を簡単に統合できます。
cost-optimization
その他このClaudeスキルは、リソースの適正サイジング、タグ付け戦略、支出分析を通じて、開発者がクラウドコストを最適化することを支援します。AWS、Azure、GCPにわたるクラウド支出の削減とコストガバナンスの実施のためのフレームワークを提供します。インフラコストの分析、リソースの適正サイジング、または予算制約への対応が必要な際にご利用ください。
quantizing-models-bitsandbytes
その他このスキルは、bitsandbytesを使用してLLMを8ビットまたは4ビット精度に量子化し、精度の低下を最小限に抑えつつ50〜75%のメモリ削減を実現します。限られたGPUメモリでより大規模なモデルを実行したり、推論を高速化するのに理想的で、INT8、NF4、FP4などのフォーマットをサポートしています。HuggingFace Transformersと統合され、QLoRAトレーニングや8ビットオプティマイザーを可能にします。
dispatching-parallel-agents
その他このClaudeスキルは、複数のエージェントを配備し、3つ以上の独立した問題を並行して調査・修正します。共有状態や依存関係がなく解決可能な、無関係な障害が発生するシナリオ向けに設計されています。中核となる機能は並列問題解決であり、効率を最大化するために独立した問題領域ごとに1つのエージェントを割り当てます。
