brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
submit-to-cranComplete proc → submit R pkg to CRAN. Pre-sub checks (local, win-builder, R-hub), cran-comments.md prep, URL + spell checks, sub itself. Covers first sub + updates. Use → pkg ready for initial CRAN release, sub updated ver of existing CRAN pkg, re-sub after CRAN reviewer feedback.
Independent GitHub snapshot · Automated classification · Original documentation governs
Full CRAN sub workflow: pre-flight checks → submission.
R CMD check w/ 0 err + 0 warnVerify DESCRIPTION ver:
desc::desc_get_version()
Verify NEWS.md has entry. Summarize user-facing changes.
Got: Ver follows semver. NEWS.md has matching entry.
If err: Update ver usethis::use_version() (major/minor/patch). Add NEWS.md entry.
devtools::check()
Got: 0 err, 0 warn, 0 notes (1 note OK new sub: "New submission").
If err: Fix all err+warn before. Read log <pkg>.Rcheck/00check.log. Notes → explain in cran-comments.md.
devtools::spell_check()
Add legit words → inst/WORDLIST (one per line, sorted).
Got: No unexpected misspellings. All flagged corrected | added.
If err: Fix genuine misspellings. Tech terms → inst/WORDLIST sorted.
urlchecker::url_check()
Got: All URLs HTTP 200. No broken/redirected.
If err: Replace broken. \doi{} for DOI links not raw URLs. Remove dead links.
devtools::check_win_devel()
devtools::check_win_release()
Wait email (~15-30 min).
Got: 0 err + 0 warn on both release + devel. Email in 15-30 min.
If err: Address platform-specific. Common: diff compiler warns, missing sys deps, path sep diffs. Fix local + re-sub.
rhub::rhub_check()
Multi-platform (Ubuntu, Windows, macOS).
Got: All platforms pass 0 err + 0 warn.
If err: Specific platform fails → check R-hub log. Use testthat::skip_on_os() | conditional code for platform-dep behavior.
Create | update in pkg root:
## 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.
Updates → include:
Got: Accurate summary across all envs, explains notes.
If err: Results differ across platforms → doc all variations. CRAN reviewers check vs own tests.
# One last check
devtools::check()
# Verify the built tarball
devtools::build()
Got: Final check passes clean. .tar.gz built in parent dir.
If err: Last-min issue → fix + re-run all from Step 2. Don't sub w/ known fails.
devtools::release()
Interactive checks + sub. Answer honest.
Alt: manual at https://cran.r-project.org/submit.html, upload tarball.
Got: Confirmation email from CRAN in min. Click link → finalize.
If err: Check email for rejection reasons. Common: examples too slow, missing \value tags, non-portable code. Fix + re-sub, note in cran-comments.md what changed.
Post-acceptance:
# Tag the release
usethis::use_github_release()
# Bump to development version
usethis::use_dev_version()
Got: GitHub release created w/ accepted ver tag. DESCRIPTION bumped to dev (x.y.z.9000).
If err: GH release fails → manual gh release create. CRAN acceptance delayed → wait email before tag.
R CMD check 0 err + 0 warn localcran-comments.md accurate\donttest{}. CRAN enforces time limits..Rbuildignore)\value in docs: All exported fns need @return tag.Renvironrevdepcheck::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 — ver bumping + git taggingwrite-roxygen-docs — docs meet CRAN standardssetup-github-actions-ci — CI mirroring CRAN expectationsbuild-pkgdown-site — docs site for accepted pkgs