Skip to content

Instantly share code, notes, and snippets.

@peterdesmet
Last active October 11, 2024 12:20
Show Gist options
  • Save peterdesmet/e90a1b0dc17af6c12daf6e8b2f044e7c to your computer and use it in GitHub Desktop.
Save peterdesmet/e90a1b0dc17af6c12daf6e8b2f044e7c to your computer and use it in GitHub Desktop.
My CONTRIBUTING.md template for R packages. Released under CC0, so replace our_package, our_org, and maintainer_email and adapt as you see fit. 😌 For more info, see https://help.github.com/articles/setting-guidelines-for-repository-contributors

Contributing to our_package

First of all, thanks for considering contributing to our_package! πŸ‘ It's people like you that make it rewarding for us - the project maintainers - to work on our_package. 😊

our_package is an open source project, maintained by people who care. We are not directly funded to do so.

Code of conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

How you can contribute

There are several ways you can contribute to this project. If you want to know more about why and how to contribute to open source projects like this one, see this Open Source Guide.

Share the love ❀️

Think our_package is useful? Let others discover it, by telling them in person, via Twitter or a blog post.

Using our_package for a paper you are writing? Consider citing it.

Ask a question ⁉️

Using our_package and got stuck? Browse the documentation to see if you can find a solution. Still stuck? Post your question as an issue on GitHub. While we cannot offer user support, we'll try to do our best to address it, as questions often lead to better documentation or the discovery of bugs.

Want to ask a question in private? Contact the package maintainer by [email][mailto:email].

Propose an idea πŸ’‘

Have an idea for a new our_package feature? Take a look at the documentation and issue list to see if it isn't included or suggested yet. If not, suggest your idea as an issue on GitHub. While we can't promise to implement your idea, it helps to:

  • Explain in detail how it would work.
  • Keep the scope as narrow as possible.

See below if you want to contribute code for your idea as well.

Report a bug πŸ›

Using our_package and discovered a bug? That's annoying! Don't let others have the same experience and report it as an issue on GitHub so we can fix it. A good bug report makes it easier for us to do so, so please include:

  • Your operating system name and version (e.g. Mac OS 10.13.6).
  • Any details about your local setup that might be helpful in troubleshooting.
  • Detailed steps to reproduce the bug.

Improve the documentation πŸ“–

Noticed a typo on the website? Think a function could use a better example? Good documentation makes all the difference, so your help to improve it is very welcome!

The website

This website is generated with pkgdown. That means we don't have to write any html: content is pulled together from documentation in the code, vignettes, Markdown files, the package DESCRIPTION and _pkgdown.yml settings. If you know your way around pkgdown, you can propose a file change to improve documentation. If not, report an issue and we can point you in the right direction.

Function documentation

Functions are described as comments near their code and translated to documentation using roxygen2. If you want to improve a function description:

  1. Go to R/ directory in the code repository.
  2. Look for the file with the name of the function.
  3. Propose a file change to update the function documentation in the roxygen comments (starting with #').

Contribute code πŸ“

Care to fix bugs or implement new functionality for our_package? Awesome! πŸ‘ Have a look at the issue list and leave a comment on the things you want to work on. See also the development guidelines below.

Development guidelines

We try to follow the GitHub flow for development.

  1. Fork this repo and clone it to your computer. To learn more about this process, see this guide.
  2. If you have forked and cloned the project before and it has been a while since you worked on it, pull changes from the original repo to your clone by using git pull upstream main.
  3. Open the RStudio project file (.Rproj).
  4. Make your changes:
    • Write your code.
    • Test your code (bonus points for adding unit tests).
    • Document your code (see function documentation above).
    • Check your code with devtools::check() and aim for 0 errors and warnings.
  5. Commit and push your changes.
  6. Submit a pull request.
@danielvartan
Copy link

danielvartan commented Jan 11, 2021

Thanks, this is very useful! πŸ‘πŸ‘πŸ‘

I suggest updating the text by adding the new discussion tab, directing the user to it instead of the issues tab for questions and feature requests.

Example: https://gist.github.com/danielvartan/7bf27a55a6a4da1f33188037fef9a3d1/revisions

@peterdesmet
Copy link
Author

Thanks @danielvartan, I wasn't aware of the new discussions feature. Since many existing repos will (opt to) not have a discussion tab, I'll leave it with issues. But good for anyone using this template that that is an option πŸ‘.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment