Check the GitHub actions reports for the revision you want to release. Github Actions R Workflow The output has a "R CMD check" section. Any errors/warnigns here are show stoppers and need to be addressed. NOTEs about package size or the " Note to CRAN Maintainers" are fine, other NOTEs likely indicate problems.
Also, have a look at the CRAN package checks. NOTEs or WARNINGs or anything in red needs to be addressed. Again, the NOTE about the package size is fine.
Next you should run the reverse dependency check, checking if packages on CRAN that depend on DuckDB still work, any issues there will lead to issues with CRAN updates. The policy there is that you should contact package authors "well beforehand". If things fail in this check, you should contact the package authors.
remotes::install_github("r-lib/revdepcheck") # once
revdepcheck::revdep_check(num_workers = 8, env=c(`MAKEVARS`="-j8"))
The R package does not automatically pick up the DuckDB version from the git tag. Make sure the file DESCRIPTION
in the master branch has the Version
entry that you want to create.
It's important that package builds are created from the main
branch of the duckdb/duckdb repository (not of a fork) because otherwise the git revision ids used to install extensions are wrong.
You can get the R source tarball either from the build artifacts (r-package-source) or from a GitHub release after CI finishes (duckdb_[version].tar.gz
).
Next check the package using WinBuilder, upload the source tarball at https://win-builder.r-project.org/upload.aspx, using R-devel. You will get an email at some point. Again, warnings/notes besides the ones mentioned are bad.
Finally, upload the package to CRAN here: https://cran.r-project.org/submit.html
The maintainer (currently Hannes) has to confirm the upload, after which various automatic checks are triggered.
By convention, development versions have a fourth component .9000
. After a successful release, edit DESCRIPTION
to include this, e.g., change 0.8.1
to 0.8.1.9000
.