We’re well pleased to announce the release of
roxygen2 7.3.0. roxygen2 allows you to write specially formatted R comments that generate R documentation files (man/*.Rd
) and the NAMESPACE
file. roxygen2 is used by over 13,000 CRAN packages.
You can install it from CRAN with:
install.packages("roxygen2")
There are four major improvements in this release:
-
The
NAMESPACE
roclet now reports if you have S3 methods that are missing an@export
tag. All S3 methods need to be@export
ed even if the generic is not. This avoids rare, but hard to debug, problems. If you think this is giving a false positive, please file an issue and suppress the warning with@exportS3Method NULL
.I’ve also considerably revamped the documentation for S3 methods in
vignette("namespace")
. The docs now discuss what exporting an S3 method really means, and why it would be technically better to call it registering the method. -
Finally, the
NAMESPACE
roclet once again regenerates imports before loading package code and parsing roxygen blocks. This has been the goal for a long time, but we accidentally broke it when adding support for code execution in markdown blocks. This change resolves a family of problems where you somehow bork yourNAMESPACE
and can’t easily get fix it because you can’t re-document the package because you can’t load your package because yourNAMESPACE
is borked. -
@docType package
now works like"_PACKAGE"
, including creating a{packagename}-package
alias automatically. This resolves a bug introduced in roxygen2 7.0.0 that meant that many packages lacked the correct alias for their package documentation topic. -
"_PACKAGE"
does a better job of automatically generating aliases. In particular, it will no longer generate a duplicate alias if you have a function with the same name as your package (likeglue::glue()
orreprex::reprex()
). If you’ve previously had to hack around this bug, you can now delete any custom@aliases
tags associated with the"_PACKAGE"
docs.
You can see a full list of other minor improvements and bug fixes in the release notes.
Acknowledgements
A big thanks to the 46 folks who helped make this release possible through their thoughtful questions and carefully crafted code! @andrewmarx, @ashbythorpe, @ateucher, @bahadzie, @bastistician, @beginb, @brodieG, @bryanhanson, @cbielow, @daattali, @DanChaltiel, @dpprdan, @dsweber2, @espinielli, @hadley, @hughjonesd, @jeroen, @jmbarbone, @johnbaums, @jonocarroll, @kathi-munk, @krlmlr, @kylebutts, @lionel-, @LouisLeNezet, @maelle, @MaximilianPi, @MichaelChirico, @moodymudskipper, @msberends, @multimeric, @musvaage, @neshvig10, @olivroy, @ralmond, @RMHogervorst, @Robinlovelace, @rossellhayes, @rsbivand, @sbgraves237, @schradj, @sebffischer, @simonpcouch, @stemangiola, @tau31, and @trusch139.