What? A day of learning and coding to nurture regular contributors to the tidyverse. We'll provide food; you'll bring your laptop and enthusiasm. The tidyverse team and other community helpers will be on hand to help you hit the ground running and/or get over any stumbling blocks that you encounter. Don't have any ideas for something to work on? No problems! We'll be tagging issues in advance to make sure there's lots to do for any- and everyone, regardless of level of expertise.
Who? Anyone who would like to get better at contributing to the tidyverse! Everyone is welcome regardless of whether you've never done a PR before, or if you've already made your 10th package. But you do need a ticket; to provide a fulfilling experience for all attendees we need to carefully manage the ratio of attendees to helpers.
How much? We charge a nominal fee of $10 because we've found that this level of commitment discourages people from taking tickets that they don't use. If the cost would prevent you from attending, please email jenny@posit.co to request a free registration.
You can find out more about how the day feels by reading write ups from previous participants: Ryo Nakagawara, Julia Silge, Angela Li
If you have never done a PR before, feel free to ask for help from any of the designated helpers! Our whole job today is to help YOU.
install.packages("pak")
pak::pak("devtools")
Call usethis::git_sitrep()
and check that:
Browse the post its, looking for something of interest. If you've never done a PR before, we recommend that you start with a documentation issue since there are slightly fewer moving parts. We also encouraged to team up with a (new) friend and tackle something together!
Once you've picked a post-it, open the issue and read the details in full. At this point, you might discover the issue is outside your wheelhouse; if so, no problems, just return the the post-it to the wall and try again.
Fork and clone the repo usethis::create_from_github("{username}/{repo}")
(e.g usethis::create_from_github("tidyverse/ggplot2")
)
pak::pak()
to make sure you've got the necessary packages.
If you're working on a documentation issue, run devtools::document()
to
make sure you have everything necessary to update the docs before you
make any changes.
If you're working on an bug or feature, run devtools::check()
to get
a baseline. If R CMD check
fails, something is probably off with the setup
of your machine and you should seek help.
Create a new branch for your changes to live with
usethis::pr_init("very-brief-description")
Make your change.
If you're writing code, add a test or two.
Iterate quickly with devtools::load_all()
and devtools::test()
.
If you're writing documentation, use devtools::document()
to
update the docs.
devtools::check()
to make sure all is still well.
Commit the change with your git client.
If the feature is user facing (i.e. it adds a new feature or fixes a bug), add a bullet to NEWS. Be concise, link to the issue, and tag yourself.
* `use_circleci()` creates a `.circleci/config.yaml` config file
for CircleCI (#703, @jdblischak).
Push and make a PR with usethis::pr_push()
.
Make the title descriptive:
In the description (not the title), use the magic fixes keyword, e.g. "Fixes #123", to link & close your issue.
Example with descriptive title and description containing magic keywords: r-lib/usethis/#742
Write your PR number on the post it and move it to the review wall.
Ring the gong to celebrate your successful submission!
One of the tidyverse team will try and review your issue as quickly as possible, reading through your PR and offering suggestions for how to improve it. If you want to work on something else while you wait, use pr_pause()
to pause your pull request while you work on other stuff. It's possible the reviewer might make changes directly to your review - if that happens you can use pr_pull()
to get their code back on to your computer.
If you've committed a bigger PR, it might take a bit longer to review, and we might not be able to complete it on the day. Don't worry if this happens to you! We really appreciate your contribution and just need a bit more time to take it in.
At the end of the day, make sure that you've reinstalled the CRAN versions of any packages you might have installed development versions of. You can find a list of dev version with this code:
subset(
pak::lib_status(),
package_version(version)[, 4] >= 9000,
c(package, version)
)
All attendees are bound by the Code of Conduct. If you have problems please contact Hadley or Jenny in person, via email hadley@posit.co/jenny@posit.co, or call/text Hadley: 515-450-8171.
Feel free to open an issue here.