First of all, thanks for considering contributing to pkgmatch
! 👍 It's
people like you that make it rewarding for us - the project maintainers - to
work on pkgmatch
. 😊
pkgmatch
is an open source project, maintained by people who care.
- repo: https://github.com/ropensci-review-tools/pkgmatch
- issues: https://github.com/ropensci-review-tools/pkgmatch/issues
- new_issue: https://github.com/ropensci-review-tools/pkgmatch/issues/new
- website: https://docs.ropensci.org/pkgmatch/
- citation: https://ropensci-review-tools.github.io/pkgmatch/authors.html
- email: mailto:[email protected]
Please note that this package is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
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.
Think pkgmatch
is useful? Let others discover it, by telling them in person,
via Twitter or a blog post.
Using pkgmatch
for a paper you are writing? Consider citing
it.
Using pkgmatch
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.
Have an idea for a new pkgmatch
feature? Take a look at the
documentation and issues
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.
Using pkgmatch
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:
- Use the
reprex
package to create a reproducible example. - Include the version of
pkgmatch
with the following line in yourreprex
code:packageVersion("pkgmatch")
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!
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.
Functions are described as comments near their code and translated to
documentation using roxygen2
. If you
want to improve a function description:
- Go to
R/
directory in the code repository. - Look for the file with the name of the function.
- Propose a file
change
to update the function documentation in the roxygen comments (starting with
#'
).
Care to fix bugs or implement new functionality for pkgmatch
? 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.
We try to follow the GitHub flow for development.
- Fork this repo and clone it to your computer. To learn more about this process, see this guide.
- 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 master
. - Open the RStudio project file (
.Rproj
). - 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.
- Commit and push your changes.
- Submit a pull request.
The pkgmatch
coding style diverges somewhat from the commonly used tidyverse
style guide, primarily
through judicious use of
whitespace, which aims to improve code readability. Code references in
pkgmatch
are separated by whitespace, just like words of text. Just like it
is easier to understand "these three words" than "thesethreewords", code is
formatted like this:
these <- three (words (x))
and not like this:
these <- three(words(x))
The position of brackets is then arbitrary, and we could also write
these <- three( words (x))
pkgmatch
code opts for the former style, with the natural result that one
ends up writing
this <- function ()
with a space between function
and ()
. You can easily (re-)format your code
to accord with this style by installing the spaceout
package and running:
styler::style_pkg (style = spaceout::spaceout_style)