executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
submit-to-cranRパッケージをCRANに投稿するための完全な手順。事前チェック(ローカル、 win-builder、R-hub)、cran-comments.mdの準備、URLおよびスペルチェック、 投稿自体を含む。初回投稿および更新版の投稿に対応。パッケージが初回CRAN リリース準備完了時、既存CRANパッケージの更新版投稿時、またはCRANレビュー 担当者のフィードバック後の再投稿時に使用する。
Independent GitHub snapshot · Automated classification · Original documentation governs
事前チェックから投稿まで、CRANへの投稿ワークフロー全体を実行する。
R CMD checkで0エラー・0警告をパスしたRパッケージDESCRIPTIONに正しいバージョンが記載されていることを確認する:
desc::desc_get_version()
NEWS.mdにこのバージョンのエントリがあることを確認する。エントリにはユーザー向けの変更点をまとめること。
期待結果: バージョンがセマンティックバージョニングに従っている。NEWS.mdにこのバージョンに対応するエントリがある。
失敗時: usethis::use_version()でバージョンを更新する("major"、"minor"、または"patch"を選択)。ユーザー向けの変更点をまとめたNEWS.mdエントリを追加する。
devtools::check()
期待結果: 0エラー、0警告、0ノート(新規投稿の場合は「New submission」という1つのノートは許容)。
失敗時: 進む前にすべてのエラーと警告を修正する。詳細は<pkg>.Rcheck/00check.logのチェックログを参照する。ノートはcran-comments.mdで説明すること。
devtools::spell_check()
正当な単語をinst/WORDLISTに追加する(1行1単語、アルファベット順)。
期待結果: 予期しないスペルミスがない。フラグが立てられた単語はすべて修正済み、またはinst/WORDLISTに追加済み。
失敗時: 本当のスペルミスを修正する。正当な技術用語はinst/WORDLISTに追加する(1行1単語、アルファベット順)。
urlchecker::url_check()
期待結果: すべてのURLがHTTP 200を返す。壊れたリンクやリダイレクトされたリンクがない。
失敗時: 壊れたURLを置き換える。DOIリンクには生URLの代わりに\doi{}を使用する。存在しなくなったリソースへのリンクを削除する。
devtools::check_win_devel()
devtools::check_win_release()
メールの結果を待つ(通常15〜30分)。
期待結果: Win-builderのreleaseとdevel両方で0エラー、0警告。結果は15〜30分以内にメールで届く。
失敗時: プラットフォーム固有の問題に対処する。一般的な原因:異なるコンパイラ警告、システム依存関係の欠如、パスセパレータの違い。ローカルで修正してWin-builderに再投稿する。
rhub::rhub_check()
複数のプラットフォーム(Ubuntu、Windows、macOS)でチェックする。
期待結果: すべてのプラットフォームで0エラー・0警告でパス。
失敗時: 特定のプラットフォームが失敗した場合、R-hubのビルドログでプラットフォーム固有のエラーを確認する。プラットフォーム依存の動作にはtestthat::skip_on_os()や条件付きコードを使用する。
パッケージルートに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が親ディレクトリに作成される。
失敗時: 土壇場で問題が発生した場合は修正してステップ2からすべてのチェックを再実行する。既知の失敗がある状態で投稿しないこと。
devtools::release()
対話式チェックを実行して投稿する。すべての質問に正直に答えること。
または、tarballをアップロードして https://cran.r-project.org/submit.html から手動で投稿することもできる。
期待結果: 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警告を返すcran-comments.mdがチェック結果を正確に説明している\donttest{}で囲む。CRANは時間制限を設けている.Rbuildignoreを確認)\valueが欠如: エクスポートされるすべての関数には@returnタグが必要.Renvironなしのクリーンな環境でビネットがビルドされることを確認する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 - 承認済みパッケージのドキュメントサイト