changer
Changing the name of an existing R package is annoying but common task in the early stages of package development (at least for me). Package changer tries to automate this task:
Validity and availability of the new package name is checked by using
availablefrom available).All complete words matching the package name are replaced in all R scripts, C/C++/Fortran/Stan source codes, markdown files, and typical files in R packages, i.e. files with extension
.R,.cpp,.c,.h,.f,.f90,.f95,.stan,.md,.Rmd,.Rnw,.html,.yaml,.yml, and.bib, as well as filesDESCRIPTION,NAMESPACEinst/CITATION,.Rbuildignore, andgitignore.Change file names containing the package name. Only checks files with extensions listed above, as well as files
[oldname].Rproj,[oldname]-package.R,[oldname]-defunct.R, and[oldname]-deprecated.R.If
run_roxygenisTRUE(default), oldRdfiles are removed.All files with extensions
.o,.so, and.dllin/srcare removed to force a rebuild of the package.Name of the package directory is changed.
If
change_gitisTRUE(default), the remote url of the git repository is changed to match the new name. Note that you still need to change the name of the repository in Github/Bitbucket etc manually. For example in Github: Go to the URL of your Github package, click Settings near the top-right, change the name under Repository name, and click Rename.If
run_roxygenisTRUE, update documentation and rebuild package.
Inspired by back-and-forth naming of the package particlefield) and Nick Tierney's blog post.
Additional issues (read above as well)
If the package is already published in CRAN, then you should first consult folks at CRAN whether they will accept the name change.
It is strongly recommended to have a backup backup before proceeding.
Note that if the old package name is a common word, it will be replaced in the docs etc as well!
Installation
You can install the developed version of changer from Github with:
devtools::install_github("helske/changer")Usage
There is just one function in the package:
changer("../mypackagewithlongandboringname", "Rbitary")News
May 2022
- Fixed a major bug, now actually replaces the package name in the
.Rfiles! - With additional argument
replace_allyou can now replace also partial matches instead of just the whole word matches.
February 2022
changernow tests that the supplied path actually contains an R package by checking the existence of theDESCRIPTIONfile.- yaml files are also checked, and warning is given regarding the rda files, thanks to Mahmoud Ahmed.