I am not a productive R package author, at least not for public / CRAN packages. For a very long time the only package I had on CRAN was newscatcheR - a package that really required almost zero maintenance.
However, as things happen, I had an itch, and created shinyds. This is a package that is potentially mostly useful to users in Norway, where I currently work, though, given that the design system is a Digital Public Good, people elsewhere may find it useful too.
At more or less the same time when I started working on shinyds, I tried to help someone with their package and fast forward to today I am maintaining ParBayesianOptimization.
I suddenly had two packages to maintain. I had some GitHub actions workflows on shinyds, that I wanted to use on ParBayesianOptimization. They were useful and carried what I’ve learned about CI/CD over the years and how I want it to work. So I started copy/pasting, but then I would makes some changes in the workflow in one package and had to go back to make the same in the other, and so on. It was becoming a chore.
Then I had this idea to revisit an old ggplot2 extension demo, and suddenly had a third package - ggindex.
At that point I decided that maybe it is a good idea to have the workflows in a separate repository to maintain and copy from it to all the other places where I now use it, nd potentially to new places as well.
And it is on GitHub - R package CI template. Creating a repository from the template carries the workflows and the user can just start adding R code. Additionally, if a package already exists, a user can run tools/apply.sh and get is set up.
The workflows are slightly different from what usethis provides. In particular I like to use release-please and have the NEWS.md written automatically by parsing the CHANGELOG.md. Conventional commits are expected and the Pull Request title is also checked for that.
The template also has an issue template, a PR template, a CITATION file, and jarl and air configuration, and some other bells and whistles. And it is another thing to maintain.
Sharing in hope it will be useful to another person with an AI agent.