MCP HubMCP Hub
Retour aux compétences

submit-to-cran

pjt222
Mis à jour 6 days ago
19 vues
17
2
17
Voir sur GitHub
Métadesign

À propos

Cette compétence offre un flux de travail complet pour soumettre des packages R au CRAN, couvrant les versions initiales, les mises à jour et les re-soumissions. Elle automatise les vérifications préalables à la soumission, y compris la validation locale, les tests sur win-builder et R-hub, ainsi que la préparation de la documentation requise comme cran-comments.md. Les développeurs doivent l'utiliser lorsque leur package réussit la vérification locale R CMD check et est prêt pour une soumission ou une revue officielle sur le CRAN.

Installation rapide

Claude Code

Recommandé
Principal
npx skills add pjt222/agent-almanac -a claude-code
Commande PluginAlternatif
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternatif
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/submit-to-cran

Copiez et collez cette commande dans Claude Code pour installer cette compétence

Documentation

投 CRAN

行全 CRAN 投流——自前察至投。

  • 包備首投 CRAN→用
  • 投既存 CRAN 包之更版→用
  • 受 CRAN 審反饋後重投→用

  • :本地 R CMD check 0 誤 0 警之 R 包
  • :DESCRIPTION 更版號
  • :NEWS.md 更含此版改
  • :前 CRAN 審註(重投時)

一:版與 NEWS 察

驗 DESCRIPTION 版正:

desc::desc_get_version()

驗 NEWS.md 有此版項。項當總用面之改。

得:版合語意。NEWS.md 含配項。

敗:以 usethis::use_version() 更版(擇 "major"、"minor"、"patch")。加 NEWS.md 項總用面之改。

二:本地 R CMD check

devtools::check()

得:0 誤、0 警、0 注(首投可 1 注「New submission」)。

敗:諸誤警先正乃進。讀 <pkg>.Rcheck/00check.log 詳。注於 cran-comments.md 釋。

三:拼察

devtools::spell_check()

正詞加 inst/WORDLIST(一行一詞、字母序)。

得:無異拼。諸標詞或正或加 inst/WORDLIST

敗:正真拼誤。正技詞加 inst/WORDLIST(一行一詞、字母序)。

四:URL 察

urlchecker::url_check()

得:諸 URL 返 HTTP 200。無斷或重定向。

敗:換斷 URL。DOI 用 \doi{} 而非原 URL。除已不存資。

五:Win-Builder 察

devtools::check_win_devel()
devtools::check_win_release()

待郵果(常 15-30 分)。

得:Win-builder release 與 devel 皆 0 誤 0 警。果於 15-30 分內郵至。

敗:理臺特問。常因:異編譯警、缺系依、路分隔差。本地正而再投 Win-builder。

六:R-hub 察

rhub::rhub_check()

此察多臺(Ubuntu、Windows、macOS)。

得:諸臺皆過 0 誤 0 警。

敗:某臺敗→察 R-hub 構日為臺特誤。為臺依為用 testthat::skip_on_os() 或條件碼。

七:備 cran-comments.md

於包根建或更 cran-comments.md

## R CMD check results
0 errors | 0 warnings | 1 note

* This is a new release.

## Test environments
* local: Windows 11, R 4.5.0
* win-builder: R-release, R-devel
* R-hub: ubuntu-latest (R-release), windows-latest (R-release), macos-latest (R-release)

## Downstream dependencies
There are currently no downstream dependencies for this package.

更時含:

  • 何改(簡)
  • 答前審反饋
  • 反依察果若可

得:cran-comments.md 準總諸臺察果與釋諸注。

敗:察果跨臺異→文諸異。CRAN 審將比此於己測。

八:末前察

# One last check
devtools::check()

# Verify the built tarball
devtools::build()

得:末 devtools::check() 清過。.tar.gz 構於父目。

敗:末刻問現→正之、自步二再行諸察。勿以知敗投。

九:投

devtools::release()

此行交互察而投。誠答諸問。

或於 https://cran.r-project.org/submit.html 手投上傳 tarball。

得:CRAN 確郵分內至。點確接以定投。

敗:察郵拒因。常因:例過緩、缺 \value 標、不可移碼。正而再投、於 cran-comments.md 記何改。

十:投後

受後:

# Tag the release
usethis::use_github_release()

# Bump to development version
usethis::use_dev_version()

得:GitHub 發以受版標建。DESCRIPTION 升至開發版(x.y.z.9000)。

敗:GitHub 發敗→以 gh release create 手建。CRAN 受延→待確郵乃標。

  • R CMD check 本地返 0 誤 0 警
  • Win-builder 過(release + devel)
  • R-hub 諸測臺皆過
  • cran-comments.md 準述察果
  • 諸 URL 效
  • 無拼誤
  • 版號正而增
  • NEWS.md 即時
  • DESCRIPTION 元全準

  • 例過緩:耗例裹 \donttest{}。CRAN 強時限
  • 非標檔/目名:避致 CRAN 注之檔(察 .Rbuildignore
  • 文缺 \value:諸出函需 @return
  • vignette 構敗:確 vignette 於清境構而無 .Renviron
  • DESCRIPTION 題式:必 Title Case、末無點、無「A Package for...」
  • 忘反依察:更時行 revdepcheck::revdep_check()

# Full pre-submission workflow
devtools::spell_check()
urlchecker::url_check()
devtools::check()
devtools::check_win_devel()
rhub::rhub_check()
# Wait for results...
devtools::release()

  • release-package-version - 版升與 git 標
  • write-roxygen-docs - 確文合 CRAN 標
  • setup-github-actions-ci - CI 察反 CRAN 期
  • build-pkgdown-site - 受包文站

Dépôt GitHub

pjt222/agent-almanac
Chemin: i18n/wenyan-ultra/skills/submit-to-cran
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Compétences associées

content-collections

Méta

Cette compétence propose une configuration éprouvée en production pour Content Collections, un outil axé sur TypeScript qui transforme des fichiers Markdown/MDX en collections de données typées de manière sûre avec une validation Zod. Utilisez-la lors de la création de blogs, de sites de documentation ou d'applications Vite + React riches en contenu pour garantir la sécurité de typage et la validation automatique du contenu. Elle couvre tout, de la configuration du plugin Vite et de la compilation MDX à l'optimisation des déploiements et la validation des schémas.

Voir la compétence

polymarket

Méta

Cette compétence permet aux développeurs de créer des applications avec la plateforme de marchés prédictifs Polymarket, incluant l'intégration d'API pour le trading et les données de marché. Elle fournit également une diffusion de données en temps réel via WebSocket pour surveiller les transactions en direct et l'activité du marché. Utilisez-la pour mettre en œuvre des stratégies de trading ou pour créer des outils traitant les mises à jour de marché en direct.

Voir la compétence

creating-opencode-plugins

Méta

Cette compétence aide les développeurs à créer des plugins OpenCode qui s'interconnectent avec plus de 25 types d'événements tels que les commandes, les fichiers et les opérations LSP. Elle fournit la structure du plugin, les spécifications de l'API événementielle et les modèles d'implémentation pour les modules JavaScript/TypeScript. Utilisez-la lorsque vous avez besoin d'intercepter, de surveiller ou d'étendre le cycle de vie de l'assistant IA OpenCode avec une logique personnalisée pilotée par les événements.

Voir la compétence

sglang

Méta

SGLang est un framework de service LLM haute performance spécialisé dans la génération rapide et structurée pour les workflows JSON, regex et agentiques grâce à son cache de préfixe RadixAttention. Il offre une inférence nettement plus rapide, particulièrement pour les tâches avec des préfixes répétés, ce qui le rend idéal pour les sorties complexes et structurées ainsi que les conversations multi-tours. Choisissez SGLang plutôt que des alternatives comme vLLM lorsque vous avez besoin d'un décodage contraint ou que vous construisez des applications avec un partage étendu de préfixes.

Voir la compétence