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 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.

See examples of README’s listing use cases in the wild here and here.

14.3 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.4 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.

14.4.2 Reading about our guidelines

See the whole first section of this book: Building Your Package

14.5 Finding where to contribute code or documentation

Our packages are developed on GitHub. We have two organizations:

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.