Chapter 14 Contributing Guide
This chapter outlines how you can contribute to the rOpenSci project as a user or developer.
So you want to contribute to rOpenSci? Fantastic! First of all, maybe contributing code or documentation to a package is not the (only) way you’ll want to get involved. Check out our community page to find out all the ways to participate in the project, from reading about our packages to volunteering to review them.
We strive to make contributing to our suite a constructive and positive experience and we welcome participation that adheres to our code of conduct.
If you wish to contribute to this guide itself, please report any suggestions via this GitHub repository.
14.1 Why contributing to rOpenSci packages?
In general, as explained by Kara Woo in her talk at the CascadiaR conference, contributing to R packages allows to make things work the way you want (by adding some functionality to your favorite package), can lead to opportunities and allows you to learn about package development.
Contributing to rOpenSci packages is great if you believe in rOpenSci’s mission, and also because of our efforts striving to make contribution a good experience.
14.2 Non code contributions
14.2.1 Reporting use cases
It’s valuable to both users and developers of a package to see how it has been used “in the wild”. If you see a use case of one of our packages, please post the link to our discussion forum in the Use Cases category and tag Scott Chamberlain (
@sckott) for inclusion in the rOpenSci biweekly newsletter. Let the package author know by opening an issue in the GitHub repository for that package, perhaps suggesting they create a “use cases in the wild” section in the README, and maybe even tag them in a tweet about the use case. This goes a long way to encouraging people to keep up development knowing there are others who appreciate and build on their work.
14.2.2 Reporting issues or Requesting features
If you already have a package in mind, head to its issue tracker to report a bug or a feature request you might have. E.g. if you have a feature request for
magick, the place to fill it is https://github.com/ropensci/magick/issues
When reporting a bug try to include a reproducible example (“reprex”) to help the package author help you.
14.2.3 Asking other questions
You can use our discussion forum about questions related to the usage of our packages, even when you don’t know yet which of our packages could help you.
14.3 Code contributions
14.3.1 Prerequisites for package development
Before contributing to one of our packages, you might want to read a bit more about package development in general and our guidelines.
188.8.131.52 Learning about package development
Hilary Parker’s famous blog post Writing an R package from scratch or its updated version by Tomas Westlake that shows how to do the same more efficiently using
There is a Coursera specialization corresponding to the book by Roger Peng, Sean Kross and Brooke Anderson, with a course specifically about R packages.
184.108.40.206 Reading about our guidelines
See the whole first section of this book: Building Your Package
14.3.2 Finding where to contribute code or documentation
Our packages are developed on GitHub. We have two organizations:
https://github.com/ropenscilabs for experiments and packages that are not ready for release yet.
If you already know what package you’d like to contribute to, have a look at its issue tracker and comment in one of the issues to ask the maintainer whether they’d be interested in your help. E.g. if you like
taxize, the place to look is https://github.com/ropensci/taxize/issues
If you’re not sure which package you’d like to contribute to, you can start by browsing our packages page. To browse issues targeted at beginners you could try the
contributr Shiny app by Lucy D’Agostino McGowan or use an advanced GitHub search such as this one that gets all issues from “ropensci” or “ropenscilabs” organizations that are open and labelled “beginner”.
Still not sure how you can contribute? Tell us about your expertise and interests and we’ll try to match you with a package that could use your help.