Gestió de Projectes en R (2) - Github, Contrasenyes i iniciar projecte per equips
Curs R Avançat Equips - Sessió 3
Avui
Coneixerem les diferències de github, i per què també és adequat diposar d'un compte a github.
Seguirem un tutorial (en R) de Git i RStudio, centrat en Github, l'ús segur de credencials i contrasenyes, tokens, acces keys, ...
Al tutorial aprendreu a:
- gestionar contrasenyes d'accés o TOKENS, de forma segura, des de l'RStudio
- creant un Personal Access Token (o "PAT") per accedir al vostre compte de github, i a connectar-vos amb Github a través del PAT des de l'RStudio
- guardant el PAT amb el gestor de contrasenyes del sistema operatiu, o bé amb un sistema que funciona de forma similar a tots els sistemes operatius: guardar el PAT o les credencials d'accés que necessitem emprar a la sessió d'R en l'arxiu .Renviron de l'usuari en aquell ordinador
- trobar i editar fàcilment l'arxiu .Renviron del projecte posteriorment, amb
usethis::edit_r_environ()
, - protegir la informació del .Renviron a través d'afegir aquest nom d'arxiu al .gitignore del projecte, per a que no s'enviï mai al repositori remot del codi sinò que el tingueu en local només a la vostra màquina.
Farem projectes per equips.
1. Tutorial de Git i RStudio amb Github
Es pot seguir el tutorial base del paquet xavidp/aprendeR
:
if (!require("remotes")) install.packages("remotes") remotes::install_github("xavidp/aprendeR") library("aprendeR") if (!require("learnr")) install.packages("learnr") learnr::run_tutorial("080-rstudio-y-github", package = "aprendeR")
Treballar:
- en local amb git local
- en local amb git remot
-
en posit.cloud
O també es poden seguir les instruccions que veure-ho aquí:
https://gitlab.com/radup/curs-r-avancat-equips/-/blob/main/sessio_03/Sessio_03_Exercici_git_github.Rmd?ref_type=heads#passos-per-treballar-remotament-amb-github
2. Elaboració col·laborativa amb git de manual de bones pràctiques
Projecte pràctic de treball col·laboratiu amb el mètode escaient: modificar un informe en equip, gestionar la versió nova, controlar els canvis. Addicionalment, si dona temps, fer proves amb llibreries com testthat
.
Per a això, anirem a fer repositori nou, per cada equip de treball, dins l'espai del gitlab.com/radup. Cal:
- Fer login a https://gitlab.com amb les teves credencials d'usuària.
Totes les persones del curs han estat afegides com a membres del group "radup" amb el rol de developers (menys l'organitzador del curs, que ha estat afegit com a maintainer) - Anar a https://gitlab.com/radup
- i clicar a "New project"
Això us hauria de portar a:
https://gitlab.com/projects/new?namespace_id=3945489 - escolliu "Create Blank Project"
- i clicar a "New project"
Per exemple, a:
- https://gitlab.com/radup/bones-practiques-amb-r-dg_tributs_i_joc
- https://gitlab.com/radup/bones-practiques-amb-r-dg2_la_que_sigui
- https://gitlab.com/radup/bones-practiques-amb-r-dep_xxx
- ...
Fonts d'informació/inspiració:
- Software Carpentry > Programming with R > Best Practices for Writing R Code
https://swcarpentry.github.io/r-novice-inflammation/06-best-practices-R.html
- R Code – Best practices. The R Trader, in R bloggers. 2018-09-01
https://www.r-bloggers.com/2018/09/r-code-best-practices/
- Best Coding Practices for R. Vikram Singh Rawat. 2022-04-04
https://bookdown.org/content/d1e53ac9-28ce-472f-bc2c-f499f18264a3/
- Goolgle Style guide.
https://google.github.io/styleguide/Rguide.html
- Tidyverse Style guide
https://style.tidyverse.org/
Treballar:
- en local amb git remot (a Gitlab o Github)
3. Iniciar projecte per equips
Al llarg d'aquest curs se us anima a crear un projecte col·laboratiu de codi R per cada equip natural de persones que veniu del mateix centre/dependències de la Generalitat.
Amb la resolució d'un problema/projecte real que teniu in mente desenvolupar, ja sigui d'anàlisi de dades, informes automatitzats, o aplicació interactiva (en html interactiu).
Els darrers dos dies del curs seguiment amb el desenvolupament del projecte, en el que se us anima a:
- Crear un repositori remot on allotjar el codi. Per exemple, a gitlab.com
- A afegir-vos com a membres mantenidors del repositori git remot tots els integrants de l'equip
- Crear un projecte de RStudio al vostre ordinador local, clonant el repositori git remot com a font d'informació i arxius inicial
- Editar l'arxiu .gitignore per no enviar els arxius *.Rproj o .Renviron al repositori remot.
- Afegir codi R en arxius .Rmd o .R per fer la feina que necessitis fer.
- Si no teniu cap projecte real in mente factible per realitzar aquests dies, podeu agafar com a base la feina feta fins a la segona sessió d'aquest curs a l'arxiu:
https://gitlab.com/radup/curs-r-avancat-equips/-/blob/main/sessio_02/Sessio_02_Exercici_Llista_Centres_Joc.Rmd?ref_type=heads
i fer-la evolucionar amb noves presentacions de les dades treballades, o afegint-hi noves anàlisis amb altres arxius, com aquests per exemple:- Dades en Excel - exemple 1:
https://economia.gencat.cat/web/.content/70_tributs/Publicacions-estadistiques/Est-ingr-tributaris/drets_liquidat_90-22_PG23_web_DEF.xlsx - Dades en Excel - exemple 2:
https://analisi.transparenciacatalunya.cat/Hisenda/La-recaptaci-tribut-ria-a-Catalunya/8arf-n4a4/about_data
https://economia.gencat.cat/web/.content/70_analisi_finances_publiques_estadistiques_indicadors_financers/arxius/base-de-dades-recaptacio.xlsx
- Dades en Excel - exemple 1:
- Si no teniu cap projecte real in mente factible per realitzar aquests dies, podeu agafar com a base la feina feta fins a la segona sessió d'aquest curs a l'arxiu:
- Fer commit amb els canvis dels arxius
- Fer push al repositori remot.
- Fer pull de canvis per incorporar els canvis que han afegit els vostres companys d'equip
- Resoldre els conflictes que hi surtin si és el cas.
- Veure els apunts del primer dia:
https://gitlab.com/radup/curs-r-avancat-equips/-/blob/main/sessio_01/Sessio_01_Compartir_via_git.Rmd
- Veure els apunts del primer dia:
Noms alias d'aquest pàgina: CursRAvancatEquipsS3