- The package name is valid and available
pak::pkg_name_check("entsoeapi") - All planned changes merged into
devel -
NEWS.mdupdated — new version header, all changes documented - Version bumped in
DESCRIPTION(follow semver: major.minor.patch) -
RoxygenNoteinDESCRIPTIONmatches installed roxygen2 version - Run
lintr::lint_package()lint the scripts following general formatting rules
- Run
devtools::spell_check()— no spelling errors in docs -
urlchecker::url_check()— no broken URLs in docs - Run
devtools::document()— regenerate all.Rdfiles andNAMESPACE - Run
devtools::build_readme()— locate README.Rmd and build it into a README.md - Check that all exported functions have
@examplesor@examplesIf - README examples still work (copy-paste test)
- Update vignettes if necessary and render without error:
devtools::build_vignettes() - Run
devtools::build_site()locally — build site locally, checking no errors
- Run
devtools::run_examples(fresh = TRUE)— all examples pass, no unexpected errors - Run
devtools::test()— all tests pass, no unexpected skips - Run
devtools::test_coverage()— no significant test coverage regression - Run
semgrep ciin CLI — to check security vulnerabilities
-
devtools::check(cran = TRUE)— 0 errors, 0 warnings, 0 notes - Common notes to fix before CRAN:
LazyDatawithoutLazyDataCompression, missing\valuein.Rdfiles
- Push + merge / merge + push:
develop→main(PR or direct) - Create a git tag:
git tag vX.Y.Z && git push origin vX.Y.Z - Create a GitHub Release with the
NEWS.mdentry as release notes:gh release create vX.Y.Z --title "vX.Y.Z" --notes "See NEWS.md for changes" --repo krose/entsoeapi
- The merge to
maintriggered thepkgdown.yamlworkflow, verify live site at https://krose.github.io/entsoeapi/
- Run
devtools::install()to install package locally - Run
rhub::rhub_check(gh_url = "https://github.com/krose/entsoeapi", platforms = c("windows", "macos-arm64", "linux"), branch = "main", r_versions = "release")— triggers multi-platform check on GitHub - Review CRAN policies
-
devtools::submit_cran()or upload via https://cran.r-project.org/submit.html - Reply promptly to CRAN maintainer emails (within 2 weeks)
- Post on Mastodon with
#rstats— short example showing new functionality - Submit to rweekly.org (open a PR to their repo)
- Close / reference any related GitHub issues in the release notes