MCP HubMCP Hub
Вернуться к навыкам

submit-to-cran

pjt222
Обновлено 2 days ago
8 просмотров
17
2
17
Посмотреть на GitHub
Метаdesign

О программе

Этот навык автоматизирует полный процесс отправки R-пакета в CRAN, включая предварительные проверки (локальную, win-builder, R-hub), подготовку файла cran-comments.md и обработку процедуры отправки. Он поддерживает первичные выпуски, обновления существующих пакетов и повторные отправки после отзывов рецензентов. Используйте его, когда ваш пакет проходит локальную проверку `R CMD check` и готов к официальной отправке в CRAN.

Быстрая установка

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/submit-to-cran

Скопируйте и вставьте эту команду в Claude Code для установки этого навыка

Документация

投於 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 之 tarball 建於父目。

敗則:若末刻有患,修之而自第二步重察。勿以已知敗投之。

第九步:投

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 建敗:確 vignettes 於淨境(無爾 .Renviron)建之
  • DESCRIPTION Title 之格:必標題式,末無句號,無「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 — 鏡 CRAN 期之 CI 察
  • build-pkgdown-site — 接受之包之文站

GitHub репозиторий

pjt222/agent-almanac
Путь: i18n/wenyan/skills/submit-to-cran
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Похожие навыки

content-collections

Мета

Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.

Просмотреть навык

polymarket

Мета

Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.

Просмотреть навык

creating-opencode-plugins

Мета

Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.

Просмотреть навык

sglang

Мета

SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.

Просмотреть навык