started checklist for easy new projects

This commit is contained in:
Andreas Gammelgaard Damsbo 2024-02-07 20:55:29 +01:00
parent 7554f91e34
commit 2e8f3374f4

145
vignettes/new_projects.Rmd Normal file
View File

@ -0,0 +1,145 @@
---
title: "New project checklist"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{New project checklist}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
## Creating and starting a new project
This is very much started as a personal reference checklist when starting new *R*-projects.
Much of it is based on work from [ROSTOOLS](), but I have added a few personal preferences.
### Init renv
After initiating renv, do
```{r eval=FALSE}
usethis::edit_r_profile()
```
Copy the following to the profile-file:
```
options(
renv.settings.snapshot.type = "explicit",
renv.config.auto.snapshot = TRUE,
renv.config.pak.enabled = TRUE
)
source("renv/activate.R")
if (interactive()) {
suppressMessages(require(usethis))
}
```
### Publishing the project
Run in terminal:
```
quarto publish gh-pages
```
This will create a new `gh-pages` branches in the repository.
Then run
```{r eval=FALSE}
edit_file(".github/workflows/build-website.yaml")
```
And then copy/paste this content to that file:
```
on:
push:
branches:
- main
- master
workflow_dispatch:
name: Render and Publish
permissions:
contents: write
pages: write
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Quarto
uses: quarto-dev/quarto-actions/setup@v2
with:
# To install LaTeX to build PDF book
tinytex: true
# uncomment below and fill to pin a version
# version: 0.9.600
# The next two steps are used to setup the project when renv is used. Just uncomment and away you go!
# - uses: r-lib/actions/setup-r@v2
# - uses: r-lib/actions/setup-renv@v2
# From https://github.com/r-lib/actions/tree/v2-branch/setup-r
- name: Publish to GitHub Pages (and render)
uses: quarto-dev/quarto-actions/publish@v2
with:
target: gh-pages
env:
# this secret is always available for github actions
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
# New CRAN release checklist
- Commit all changes to GIT
- Checks for publishing with RHUB
```{r eval=FALSE}
results <- rhub::check_for_cran()
```
Let it run. Takes some hours.
Check results:
```{r eval=FALSE}
results$cran_summary()
```
Copy results to `cran-comments.md`
```{r eval=FALSE}
usethis::use_cran_comments()
```
- Release on CRAN
```{r eval=FALSE}
devtools::release()
```
Follow instruction on e-mail to confirm upload
- When approved, release to GitHub (this also publishes newest version to Zenodo if setup)
```{r eval=FALSE}
usethis::use_github_release()
```