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

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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tidy-dev-day's Issues

Notes for next time

  • need package stickers for issues wall (maybe make some bigger wall stickers like I have in my office?)
  • yellow = docs, red = bug, green = issue worked well
  • documentation issues ran out pretty quickly
  • should ask people to write their PR number on the post it
  • need to reinforce PR title + description structure
  • stickers need to go at top of post-it
  • have submitters ring the gong, not the merger
  • since process was more efficient, need even more documentation/smaller issues
  • a few table tents to seed collaboration around a package

Pre-work email + office hours

  • Create a repo with some fun file (like praise, or use praise)
  • Every participant should do a PR (if they haven't before)
  • Office hour for folks who get stuck

Elect the adhesive czar

  • Converts issues labelled with TDD to labels
  • Print out labels
  • Bring the post its
  • Find small stickers for labelling related issues
  • Bring the name label stickers
  • Sharpies
  • Something to indicate "no photography"

Post-mortem

Not sure if we are collecting notes about the dev day, but I had a couple so I am putting them here.

Costco snack run

Breakfast and afternoon snacks. Assorted beverages.

Ideally happens on August 11 (Hadley arrives at 12:30). Can assume Jenny will have car.

Fred Hutch logistics

Jotting down specific info that is otherwise just floating around in my email.

  • Sana Hirata (Program Administrator / Fred Hutch Data Science Lab (FH DaSL)) is our main contact. Jenny has their contact info.
  • Reserved spaces:
    • Tidyverse:
      • S1-141/142 (H) O'Mack Symposium Suite) 8:00-5:00pm. Will be set up "classroom style", which was settled after showing photos of a previous dev day and how people work.
      • "The room [O'Mack Symposium Suite] has the following features that can be utilized: PC computer, projector, ceiling speakers, conference camera, counter space in the back of the room, lectern, built-in wireless mic, projection screen, and white boards."
      • S1-104: Work Lounge 8:00-5:00pm
      • "The Work Lounge would work great for coffee and food or having small group meeting sessions. There is also a long counter in the O’Mack Suites that could be suitable for coffee, or food/lunch."
      • "This room [Work Lounge] is located just across the hall from the O’Mack Suites. There are restrooms located between the two locations."
      • We have explicitly discussed the need for folks to power their laptops and the IT folks have confirmed this is recorded as part of our reservation.
      • "S" stands for Steam Plant Building
      • The address for the Steam Plant is 1201 Eastlake Ave. E. Seattle 98102.
    • R Core Dev Event:
      • D1-084 (Classroom format, 25 people) 8:00am-2:30pm
      • "D" stands for Thomas Building, about 10 minute walk from Steam Plant
    • R Core Dev (Remote Participant Collaboration)
      • D1-302 8:00-11:00am
      • D1-302 12:30-3:00pm
      • S3-153 1:00-5:00pm
  • "Folks can connect to Guest wifi – they will just need to accept the terms."

First time PR worksheet

Create a welcome doc that outlines the basic steps to contribute, including a space to stick the post it.

The goal is to create a worksheet that someone who has never done a PR before can work through step-by-step to successful create a documentation PR. It should match our general advice in the readme, but can provide more detail and should provide various places to write in information.

Publish Slide Deck

Currently, the slides explaining the workflow aren't publicly available for reference later in the dev day. A link to them would be handy.

Thank you.

Clarify need for Github PAT for create_from_github()

In the instructions in the README, it says that create_from_github() will fork + clone, but this is only true if you already have your Github PAT in the .Renviron - otherwise it will just clone. This would be good to clarify for total beginners!

This is from an instance where we followed the workflow outlined in the README. It just cloned the repo, without forking, as claimed, and then we couldn't push using pr_push().

Need actual examples of TDD PRs for readme

Upkeep for target packages

For all packages that we're including on TDD need to make sure we're:

  • Documented with CRAN roxygen2
  • No dev versions in remotes
  • Latest use_github_actions() & building cleanly
  • Requires R 4.0.0

Move `master` branch to `main`

The master branch of this repository will soon be renamed to main, as part of a coordinated change across several GitHub organizations (including, but not limited to: tidyverse, r-lib, tidymodels, and sol-eng). We anticipate this will happen by the end of September 2021.

That will be preceded by a release of the usethis package, which will gain some functionality around detecting and adapting to a renamed default branch. There will also be a blog post at the time of this master --> main change.

The purpose of this issue is to:

  • Help us firm up the list of targetted repositories
  • Make sure all maintainers are aware of what's coming
  • Give us an issue to close when the job is done
  • Give us a place to put advice for collaborators re: how to adapt

message id: euphoric_snowdog

Welcomers

Need some one at building entrance greeting folks and making sure people know that they’re in the right place.

You might want to make some kind of sign so folks can identify you

TDD 2025 tasks

So we remember all the tasks that we assigned to folks and can repeat in future years.

  • Plan issue labelling extravaganza (#36)
  • Post it notes (#35)
  • Barista (#34)

Process items for next year

For users:

  • Make sure roxygen2 is the latest version to avoid cluttering project with generated files.

For us:

  • Try not to have development dependencies in packages with TDD issues, if those dev deps are also dependencies of usethis/devtools. Causes install issues on Windows.

Place catering order for lunch

Based on the catering menu, I would propose the signature sandwich buffet with curried chicken wrap, roast beef gorgonzola, and roasted butternut squash (if we can confirm that is indeed vegan)

so 18.5 * 1.1 * 90 = $1831.50 (the 10% is an overestimate of sales tax).

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.