Why should you use checklist?

Vlaanderen is wetenschap
  • QC/QA
    • R code in packages or projects
    • quarto / bookdown documents
  • strict rules
    • defined at the organisation level
  • automated workflows
    • CI/CD pipelines via GitHub Actions

What does checklist check?

Vlaanderen is wetenschap

ER project project code\nstyle code style project--code\nstyle spelling spelling project--spelling citation citation project--citation license license project--license file name file name project--file name folder\nstructure folder structure project--folder\nstructure package package package--code\nstyle package--spelling package--citation package--license package--file name CRAN CRAN package--CRAN DESCRIPTION DESCRIPTION package--DESCRIPTION documentation documentation package--documentation version version package--version NEWS NEWS package--NEWS test\ncoverage test coverage package--test\ncoverage pkgdown pkgdown package--pkgdown

Basic usage

Vlaanderen is wetenschap
Topic Package Project
Start from scratch create_package() create_project()
Apply to existing code setup_package() setup_project()
run checks check_package() check_project()

More details: vignette("getting_started", package = "checklist")

Content of a skeleton

Vlaanderen is wetenschap
  • checklist.yml
  • RStudio project file
  • git repository
  • README.md, DESCRIPTION LICENSE.md
  • pkgdown styling
  • Actions workflow for checklist
  • Issues and PR templates
  • AI agents
  • Code of Conduct and Contributing guidelines

Warning

AI agents are experimental.

Two packages

Vlaanderen is wetenschap

citeme

  • Citation metadata
  • Copyright and license information
  • Settings at the organisation level
  • Functions relevant for other packages requiring author information

checklist

  • Depends on citeme
  • Setup for projects and packages
  • Complete quality control workflows

Enforcing organisational requirements

Vlaanderen is wetenschap
  1. Assumes code under version control (git)
  2. Determines the git organisation based on git remotes
    • https://<git provider>/<git organisation>/<repository>.git
  3. Store organisation requirements in your citeme repository
  4. No citeme repository? Repository rule set applies
  5. No repository rule set? Default rule set applies

Your organisation’s citeme repository

Vlaanderen is wetenschap
  • organisation.yml
  • license texts
  • .lintr style file
  • pkgdown style files

local cache

organisation.yml

Vlaanderen is wetenschap

a list of organisations

  • official name(s) and email
  • allowed licenses + link to license text
  • rules for rightsholders, funders and publishers
  • website, logo, ROR,
    zenodo community,
    ORCID required?

Tip

  • Create interactively with new_org_list()

citeme: potential useful for other packages

Vlaanderen is wetenschap

interactive user input

  • add_individual(), select_individual()
  • ask and validate: email, language, ORCiD, ROR, url
  • with non-interactive default: menu_first() and ask_yes_no()
    • useful for unit testing

Validation

email, ORCiD, ROR, url, language

extend citeme repository

Checklist GitHub Actions

Vlaanderen is wetenschap
  • automatically installed
  • runs check_package() or check_project() on every push to GitHub
  • on package
    • pushes test coverage to https://about.codecov.io
    • on main branch
      • updates GitHub Pages website with pkgdown site
      • creates release based on NEWS.md
      • publishes Zenodo archive with DOI

Questions?

Flanders, state of the art Instituut voor Natuur- en Bosonderzoek