uncoast-unconf / uu-2019-day-zero

Planning for day-zero training and whatnot
https://uncoast-unconf.github.io/uu-2019-day-zero
MIT License
6 stars 4 forks source link

Topic-Zero: Prep #8

Open ijlyttle opened 5 years ago

ijlyttle commented 5 years ago

Just a placeholder for now, but this will be where I try to set out what we would like participants to have accomplished in advance of arrival at Des Moines.

This will be focused on git and GitHub setup, perhaps also to strongly encourage folks to be using the preview version (1.2) of the RStudio IDE.

I plan to make a couple of screencast videos (macOS + Windows), then to offer to arrange for help beforehand if folks run into problems.

ijlyttle commented 5 years ago

Like most things for day-zero, will be basing this off of Jenny's materials, in this case: https://happygitwithr.com

When we get together for the Unconf, we will work together on a number of projects suggested by the group. The place where our code will come together is GitHub; the goal of this set of videos is to help you get your computer setup to work with git and GitHub, so you'll be ready to collaborate as soon as you arrive.

If you get well-and-truly stuck somewhere, please let one of the organizers know; we'll do our best to help you get it sorted out. As well, we will be there to help when you get to the Unconf.

  1. Make sure you have RStudio IDE v1.2 (preview)
    • motivation is to have uniform access to the terminal tab
  2. Make sure you have a GitHub account
    • if you have a GitHub account, make sure you can sign in
  3. Make sure you have git installed (variants for macOS, Windows)
    • verify using git --version from the terminal tab
  4. install.packages("devtools"), remotes::install_github("r-lib/usethis")
    • dev version of usethis has all the goodies
  5. usethis::use_git_config() (set user.name and user.email)
  6. usethis::git_vaccinate()
  7. Get a GitHub PAT:
    • usethis::browse_github_pat() to get to GH page to create PAT
    • usethis::edit_r_environ() to install PAT
  8. usethis::git_sitrep()

Optional: set up .Rprofile to use devtools, usethis, reprex, as you see fit:

usethis::use_devtools() and friends can be useful.

if (interactive()) {
  # packages
  suppressMessages(require("devtools"))
  suppressMessages(require("usethis"))
  suppressMessages(require("reprex"))
}

Bonus: set up options(usethis.description) in your .Rprofile

.First <- function() {

  # adapt these entries to your situation
  options(
    repos = c(
      CRAN = "https://cloud.r-project.org/"
    ),
    devtools.name = "Ian Lyttle",
    usethis.description = list(
      `Authors@R` = 'person("Ian", "Lyttle", email = "ian.lyttle@se.com", role = c("aut", "cre"),
                            comment = c(ORCID = "<your-orcid-here>"))'
    )
  )

}

jennybc commented 5 years ago

Participants should know -- and verify that they know! -- their GitHub username and password.

A substantial fraction of the people I helped with git snafus at tidyverse dev day struggled to put their hands on this info. So as soon as we needed to provide to some new piece of s/w, vs. relying on browser cache, etc., we were stuck.

sctyner commented 5 years ago

@ijlyttle Keep in mind many participants don't have a Github account right now. (See the avatars on the site) I know this is mostly your brain dump for now, so maybe you were already planning on this. Another note: when the final "prep" info gets sent out, it would be nice if there were some explanation of why we're telling them to do all these things, not just tell them to do all these things. If they feel like they don't understand the purpose of Github, I am afraid they will lose motivation & excitement. I don't want anyone feel like they don't belong because they are new to Github.

ijlyttle commented 5 years ago

Thanks @jennybc and @sctyner!

Jenny - I would not have thought that, I'll be sure to keep that in mind!

Sam - you're right, this is brain-dump for now, but I hope to turn it into a demo screencast by the end of the weekend. I'll keep in mind that some folks will need to sign-up for GitHub. I will be mindful to talk about motivation and how our goal is to get everyone "on the boat". As you know, I can use all the help I can get to make sure I hit the right notes :)

My plan is to make a demo screencast this weekend on Mac, then demo it for whomever might be interested to give feedback. My goal is to (eventually?) get it "right" then cut in a few things from a Windows machine (which I trust will relate only to the git installation).

ijlyttle commented 5 years ago

Proposing a revision to the plan: it may help things, not least (perhaps least) my sanity, if we break up the prep into four stages, one each week with a brief (🙏) screencast:

Week of Mar. 17:

Week of Mar. 24:

Week of Mar. 30:

Week of Apr. 7:

Hypothesis: If there is someone who ends up "stuck", they could, in theory, use RStudio Cloud, then they would need only install a PAT in their RStudio Cloud .Renviron.

jennybc commented 5 years ago

For Windows users, Rtools. I'm embarrased to ask if we need to do anything analogous on macOS.

It's mostly covered by installing the Xcode command line tools, which is the recommended way to install git on macOS (previous week), so there's a "two birds with one stone" thing going on here. Contrary to the official advice, lots of people successfully build R packages with this dev environment vs. installing CRAN's custom toolchain. This is not enough if you need to compile packages with fortran, but that doesn't come up very often (for me, only when doing revdep checks).

ijlyttle commented 5 years ago

Thanks @jennybc! Very comforting that Xcode handles (just about) everything - I am happy to propose to exclude fortran from our supported environment 😀

jennybc commented 5 years ago

Make sure you recommend Xcode command line tools and not Xcode itself, which is enormous and overkill.

https://whattheyforgot.org/set-up-an-r-dev-environment.html