Skip to content

Commit

Permalink
#32 renv setup
Browse files Browse the repository at this point in the history
  • Loading branch information
pr130 authored and selinaZitrone committed Apr 8, 2023
1 parent ffc7aac commit 4168bdf
Show file tree
Hide file tree
Showing 6 changed files with 3,548 additions and 0 deletions.
1 change: 1 addition & 0 deletions .Rprofile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
source("renv/activate.R")
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,34 @@ Die Lernplattform basiert auf dem CRAN [learnr-Package](https://cran.r-project.o
## Technische Details
Entwickler:innen finden Informationen zu den technischen Anforderungen (R-Versionen und benötigte Packages) unter "requirements.txt". In der Datei "lernplattform.Rmd" fließen die einzelnen Kapitel zusammen. Dort sind auch sämtliche Einstellungen zum "Set-Up" enthalten. Sollen R-Objekte über mehrere Kapitel/Übungen zugreifbar sein, müssen sie im Set-Up Code Chunk definiert werden.
! Achtung: Die Spracheinstellungen bitte immer prüfen. !

# Developer Information
## `renv`: Paketverwaltung
[`renv`](https://rstudio.github.io/renv/articles/renv.html) bringt lokales R-Dependency Management in unser Projekt, d.h. es erkennt und verwaltet die benötigten R Pakete. `renv` verwendet ein Lockfile (`renv.lock`), um den Zustand der lokalen R Library zu einem bestimmten Zeitpunkt zu erfassen.
Basierend auf Präsenz von `renv.lock` sollte RStudio automatisch erkennen, dass es benötigt wird und die entsprechende Version von `renv` in die Library herunterladen und installieren. Nachdem dies abgeschlossen ist, kann `renv::restore()` verwendet werden, um die Projektbibliothek lokal auf dem Rechner wiederherzustellen.
Wenn neue Pakete verwendet werden, installiert `install.packages()` die Pakete nicht global, sondern in einer Umgebung ("environment"), die nur für unser Projekt verwendet wird. Diese lokale Library befindet sich in `renv/library` finden (es sollte nicht nötig sein, diese Dateien zu editieren).
Wenn `renv` fehlschlägt, wird ein Fehler angezeigt. Das kann z.B. der Fall sein wenn R zum ersten Mal gestartet wird, nachdem das Repository geklont wurde:


```
renv::restore()
This project has not yet been activated. Activating this project will ensure the project library is used during restore. Please see ?renv::activate for more details. Would you like to activate this project before restore? [Y/n]:
```


Bestätige den Prompt mit "Y" und R wird `renv::restore()` ausführen und somit alle Pakete herunterladen und installieren.

`renv` benutzt ein lokales `.Rprofile` und `renv/activate.R` Skript, um unsere Dependencies zu verwalten.

### Hinzufügen eines neuen Packages
Wenn du ein neues Package hinzufügen möchtest, kannst du es wie üblich installieren (`install.packages` usw.).
Dann fügst du mithilfe der `snapshot` Funktion das Package zu `renv.lock` hinzu:

```
renv::snapshot()
```

Committe und pushe das `renv.lock` zu GitHub.

Andere Teammitglieder können dann wiederum `renv::restore()` ausführen, um die hinzugefügten Packages auf ihrem Laptop zu installieren.

Loading

0 comments on commit 4168bdf

Please # to comment.