- R 98%
- Makefile 2%
mpmisc
Miscellaneous R functions which I load in my .Rprofile, including functions to
- Increment development version
- Set up multiple git remotes
- Add pre-commit hooks to ensure package version is incremented on each commit
Increment development version
One function increment_dev_version() is an alternative version of
usethis::use_dev_version(),
but adapted to my workflow of incrementing the fourth component of version
numbers for every single commit. I have this function aliased to incr="Rscript -e 'mpmisc::increment_dev_version()'", so simply have to type incr to
automatically increment my version and update codemeta.json (if that file
exists).
Set up git remotes
I mirror many repositories on various git remote services, including
Sourcehut, GitLab,
BitBucket, and GitHub. The
add_git_remotes() function automatically adds the appropriate remote
entries for any locations in which a repository is mirrored. I use a single
git push alias to mirror that command to all listed remotes. This
add_git_remotes() function saves me the trouble of having to manually specify
these for each new repository.
Pre-Commit Hooks
I use the precommit package
to implement pre-commit hooks, including a personalised hook to ensure that the
development version number has been incremented using the above
increment_dev_version() function on each commit. This requires installing the
pre-commit library, and the precommit R
package. This repository then
has both:
- A version of
.pre-commit-config.yamlmodified from the original version in theprecommitR package, primarily through the addition of:
- id: description version
name: Version has been incremented in DESCRIPTION
entry: inst/precommit/description
language: script
- The corresponding
inst/precommit/descriptionfile which checks first thatDESCRIPTIONhas been modified, and secondly that the modification includes a change to"Version".
In practice, my description hook lives in a general location at
~/bin/precommit/description rather than within any particular repo, with the
entry value reflecting this location.