Cutting a new release - Biogen-Inc/tidyCDISC GitHub Wiki


  1. Deploy the demo branch again, but name it after the current version. For example, if current release on master is v0.1.0, then publish to
  2. Make a copy of master called last_cran

Work on devel:

  1. Make sure all final PRs are merged into devel
  2. Work on a new PR to the devel branch
    • run run_dev.R to ensure all .Rd files are built
    • increment the pkg version via usethis::use_version() using either "patch", "minor", or "major".
    • make sure the file is up to date and reads clearly for users. Sometimes bullet points are written in a way that users wouldn't easily understand- try to correct those.
    • Read through the README to see if any updates are needed
    • update authorship
    • make sure there are testthat tests for any new functions
    • See For CRAN steps below
    • fix all TODO items (that are within scope of the release)
    • Check all "notes" too. See if there is anything "new" you can prevent or get rid of!
  3. Submit PR to merge devel into master (if it doesn't already exist)
  4. Make sure all flavors of R-CMD-CHECK are passing for the PR from devel to master
    • Check all notes too. See if there is anything "new" you can get rid of
    • Note! The R-CMD-CHECK on PRs into master is NOT based off renv.lock so new issues may arise
  5. Use renv::update() to update renv.lock's packages to the most current versions available on CRAN (since that's what users and the CRAN team will use) to make sure nothing is broken. User needs to test drive all functionality in the app.
  6. Repeat 4, then assign a reviewer (or two) to do thorough testing to find any issues. Follow this testing guide. If bugs are found, you may need to start over at step 1!

After merge into master:

  1. Verify everything looks good on the {tidyCDISC} doc site. Sometimes it doesn't! Note it may need ~ 5 mins after a merge to master before it updates too. Fix any issues that arise.
  2. Go back to the devel branch and run usethis::use_version("dev"), then run git push origin devel
  3. Open a new 'Next Release' PR that compares devel to master
  4. deploy a new demo version of the app to
  5. create cran_vxxx branch based off master, used for submission. Any changes they request should be made on this branch.
    • run usethis::use_cran_comments(open = rlang::is_interactive())
    • When ready, submit to CRAN for the first time devtools::release(check = FALSE, args = "--no-build-vignettes")
    • To re-submit, use devtools::submit_cran()


This section is based off of and ThinkR's prep list

  1. Check for downstream dependencies using usethis::use_revdep()
  2. Update dependencies in DESCRIPTION using attachment::att_amend_desc()
  3. Check content of package for missing tags using tags <- checkhelper::find_missing_tags(); View(tags)
  4. check spelling with spelling::spell_check_package() and after making edits, add uncorrectable words to the wordlist with spelling::update_wordlist()
  5. Check URLs with urlchecker::url_check() and urlchecker::url_update()
  6. Check package via RHub using cran_chk <- rhub::check_for_cran(check_args = c("--as-cran"))