Skip to content

saperlipopette: a risk-free playground for learning more Git #754

@maelle

Description

@maelle

Submitting Author Name: Maëlle Salmon
Submitting Author Github Handle: @maelle
Other Package Authors Github handles: (comma separated, delete if none) @yabellini
Repository: https://github.com/ropensci-training/saperlipopette
Version submitted: 0.1.1
Submission type: Standard
Editor: @robitalec
Reviewers: @jcoliver, @mine-cetinkaya-rundel

Due date for @mine-cetinkaya-rundel: 2026-04-13

Archive: TBD
Version accepted: TBD
Language: en


  • Paste the full DESCRIPTION file inside a code block below:
Package: saperlipopette
Title: Create Example Git Messes
Version: 0.1.0.9000
Authors@R: c(
    person("Maëlle", "Salmon", , "msmaellesalmon@gmail.com", role = c("cre", "aut"),
           comment = c(ORCID = "0000-0002-2815-0399")),
    person("Jim", "Gardner", role = "ctb"),
    person("Yanina Bellini", "Saibene", role = "aut",
           comment = c(ORCID = "0000-0002-4522-7466"))
  )
Description: Holds functions creating Git messes, that users would then
    solve, to follow <https://ohshitgit.com/>.
License: MIT + file LICENSE
URL: https://docs.ropensci.org/saperlipopette/,
    https://github.com/ropensci-training/saperlipopette
BugReports: https://github.com/ropensci-training/saperlipopette/issues
Imports: 
    brio,
    cli,
    fs,
    gert,
    parsedate,
    purrr,
    rlang,
    roxygen2,
    tibble,
    usethis,
    withr
Suggests: 
    knitr,
    quarto,
    testthat (>= 3.0.0)
VignetteBuilder: 
    quarto
Config/Needs/website: rmarkdown, quarto
Config/potools/style: explicit
Config/testthat/edition: 3
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.3.9000
Config/ropensci/maintainer: staff

Scope

  • Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):

    • data retrieval
    • data extraction
    • data munging
    • data deposition
    • data validation and testing
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
    • translation
    • rOpenSci internal tools
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):

This package is used to teach Git during the technical training of rOpenSci champions.

  • Who is the target audience and what are scientific applications of this package?

The target audience of saperlipopette consists of professionals developing software who usually work with R and know basic Git commands such as add, commit, push, and pull, and who understand a bit about branches, but are not yet fluent, and therefore underuse Git’s palette of features. The package is suitable for instructors to use as a safe practice environment during workshops when live-coding and running hands-on exercises, as well for for self-guided learners.

Not to our knowledge. There are online platforms for learning Git, but with saperlipopette you get exercises in your local environment.

N/A

  • If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.

N/A

  • Explain reasons for any pkgcheck items which your package is unable to pass.

Technical checks

Confirm each of the following by checking the box.

This package:

Publication options

We intend to submit a paper about this package to JOSE. https://openjournals.readthedocs.io/en/jose/submitting.html (the process is expedited for packages that have been reviewed for rOpenSci https://openjournals.readthedocs.io/en/jose/editing.html?highlight=ropensci#finding-reviewers, like at JOSS)

  • Do you intend for this package to go on CRAN?

  • Do you intend for this package to go on Bioconductor?

  • Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:

MEE Options
  • The package is novel and will be of interest to the broad readership of the journal.
  • The manuscript describing the package is no longer than 3000 words.
  • You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see MEE's Policy on Publishing Code)
  • (Scope: Do consider MEE's Aims and Scope for your manuscript. We make no guarantee that your manuscript will be within MEE scope.)
  • (Although not required, we strongly recommend having a full manuscript prepared when you submit here.)
  • (Please do not submit your package separately to Methods in Ecology and Evolution)

Code of conduct

AI usage

Some notes on LLM usage! I resumed work on saperlipopette after I got a Claude Code subscription and after we started drafting the AI policy, so I was particularly mindful of my LLM usage.

I used Claude to generate the latest exercises, based on my instructions on their content and on the infrastructure of existing exercises. I reviewed and tested the exercises. The first PR created in this way also added a checklist to the CONTRIBUTING.md file. Those commits have Claude as a co-author:

git log -i --grep="co-authored-by: claude"
commit a35f825b9c77ff82d064e090665e602c9721cf2d
Author: Maëlle Salmon <maelle.salmon@yahoo.se>
Date:   Fri Feb 13 10:37:09 2026 +0100

    feat: blame exercise (#40)
    
    Co-authored-by: Claude Opus 4.6

commit a780263dae95ba2ae90d8ed424fd9fe521e02a4f
Author: Maëlle Salmon <maelle.salmon@yahoo.se>
Date:   Fri Feb 13 10:14:41 2026 +0100

    feat: git log exercises (#39)
    
    Co-authored-by: Claude Opus 4.6

commit 380920fabaf4ceba81bf02b65c29f5b761b71158
Author: Maëlle Salmon <maelle.salmon@yahoo.se>
Date:   Fri Feb 13 09:43:13 2026 +0100

    feat: rev-parse exercise (#38)
    
    Co-authored-by: Claude Opus 4.6

commit 4a997953d4a71fa4853cb5579be7cd758f2e3d98
Author: Maëlle Salmon <maelle.salmon@yahoo.se>
Date:   Fri Feb 13 09:01:42 2026 +0100

    feat: new worktree exercise (#37)
    
    Co-authored-by: Claude Opus 4.6

I also used Claude for light editing of the paper.md (looking for repetitions) but that paper.md was mostly created and reviewed by me, Yanina Bellini Saibene, Steffi LaZerte.

The paper for JOSE is rendered as a vignette, the vignette is updated by running tools/update-paper-qmd.R which is an utility script written by Claude.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions