Giter Club home page Giter Club logo

tidy-dev-day's Introduction

Tidyverse developer day

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 [email protected] to request a free registration.

Past Dev Days

You can find out more about how the day feels by reading write ups from previous participants: Ryo Nakagawara, Julia Silge, Angela Li

Workflow

Introduction slides

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.

0. Get ready

  1. install.packages("pak")

  2. pak::pak("devtools")

  3. Set up your GitHub personal access token.

  4. Call usethis::git_sitrep() and check that:

    • Your name and email address appears in "Git config (global)"
    • Your github user name is found under "Github"

1. Find and claim an issue

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.

2. Get the source locally

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

3. Make the change

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

4. Submit your PR

Push and make a PR with usethis::pr_push().

  • Make the title descriptive:

    • Not good: "Working on issue 45"
    • Much better: "Use stricter regexes for package and file name checks"
  • 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!

5. Wait for review

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.

Wrap up

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

Code of Conduct

All attendees are bound by the Code of Conduct. If you have problems please contact Hadley or Jenny in person, via email [email protected]/[email protected], or call/text Hadley: 515-450-8171.

Questions?

Feel free to open an issue here.

tidy-dev-day's People

Contributors

hadley avatar batpigandme avatar mine-cetinkaya-rundel avatar jennybc avatar karawoo avatar emilhvitfeldt avatar robinsones avatar yutannihilation avatar louismpenrod avatar lgibson7 avatar simonpcouch avatar tamimart avatar thomasp85 avatar drorberel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.