Skip to content

gittargets: data version control for the targets package #486

Closed

Description

@wlandau

Date accepted: 2022-01-12
Submitting Author Name: Will Landau
Submitting Author Github Handle: @wlandau
Repository: https://github.com/wlandau/gittargets
Version submitted: 0.0.0.9000
Submission type: Standard
Editor: @adamhsparks
Reviewers: @smwindecker, @mdneuzerling

Due date for @smwindecker: 2021-12-20

Due date for @mdneuzerling: 2021-12-28
Archive: TBD
Version accepted: TBD
Language: en

  • Paste the full DESCRIPTION file inside a code block below:
Package: gittargets
Title: Data Version Control for the Targets Package
Description: Version control systems such as Git help researchers
  track changes and history in data science projects,
  and the 'targets' package (2021, <doi:10.21105/joss.02959>)
  minimizes the computational cost of keeping the latest results
  reproducible and up to date. The 'gittargets' package
  combines these two capabilities. The 'targets' data store
  becomes a version control repository and stays synchronized
  with the Git repository of the source code.
  Users can switch commits and branches
  without invalidating the 'targets' pipeline.
Version: 0.0.0.9000
License: MIT + file LICENSE
URL: https://wlandau.github.io/gittargets/, https://github.com/wlandau/gittargets
BugReports: https://github.com/wlandau/gittargets/issues
Authors@R: c(
  person(
    given = c("William", "Michael"),
    family = "Landau",
    role = c("aut", "cre"),
    email = "will.landau@gmail.com",
    comment = c(ORCID = "0000-0003-1878-3253")
  ),
  person(
    family = "Eli Lilly and Company",
    role = "cph"
  ))
Depends:
  R (>= 3.5.0)
Imports:
  cli (>= 3.0.0),
  data.table (>= 1.12.8),
  gert (>= 1.0.0),
  processx (>= 3.0.0),
  stats,
  targets (>= 0.8.1.9000),
  tibble (>= 3.0.0),
  utils,
  uuid (>= 1.0.0)
Suggests:
  knitr (>= 1.30),
  markdown (>= 1.1),
  rmarkdown (>= 2.4),
  testthat (>= 3.0.0)
Remotes:
  ropensci/targets
SystemRequirements: Git (>= 2.0.0)
Encoding: UTF-8
Language: en-US
VignetteBuilder: knitr
Config/testthat/edition: 3
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.1.2

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
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
    • text analysis
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):

Version control systems such as Git help researchers track changes and history in data science projects, and the targets package minimizes the computational cost of keeping the latest results reproducible and up to date. The gittargets package combines these two capabilities. The targets data store becomes a version control repository and stays synchronized with the Git repository of the source code. Users can switch commits and branches without invalidating the targets pipeline.

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

gittargets is for people who use targets for reproducible analysis pipelines and Git for tracking the code files of those pipelines.

Packages gh, gert, git2r, and git2rdata all work with Git from R, but in a way that is more general, less opinionated, and less targets-specific than gittargets. gittargets establishes a separate repository for the targets data that is linked to the project's code repository. This allows the code and data to synchronize without affecting the efficiency or the size of the code repository.

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

Technical checks

Confirm each of the following by checking the box.

This package:

Publication options

  • 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
  • [n/a] The package is novel and will be of interest to the broad readership of the journal.
  • [n/a] The manuscript describing the package is no longer than 3000 words.
  • [n/a] 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

Activity

  1. ropensci-review-bot commented on Nov 17, 2021

    @ropensci-review-bot
    Collaborator

    Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type @ropensci-review-bot help for help.

  2. ropensci-review-bot commented on Nov 17, 2021

    @ropensci-review-bot
    Collaborator

    🚀

    Error: Issue template has no 'repourl'

    👋

  3. ropensci-review-bot commented on Nov 17, 2021

    @ropensci-review-bot
    Collaborator

    Missing values: author1, repourl

  4. wlandau commented on Nov 17, 2021

    @wlandau
    MemberAuthor

    Sorry about that, should be fixed now.

  5. ldecicco-USGS commented on Nov 17, 2021

    @ldecicco-USGS

    @ropensci-review-bot check package

  6. ropensci-review-bot commented on Nov 17, 2021

    @ropensci-review-bot
    Collaborator

    Thanks, about to send the query.

  7. ropensci-review-bot commented on Nov 17, 2021

    @ropensci-review-bot
    Collaborator

    🚀

    Editor check started

    👋

  8. ropensci-review-bot commented on Nov 17, 2021

    @ropensci-review-bot
    Collaborator

    Checks for gittargets (v0.0.0.9000)

    git hash: b6eadc4b

    • ✔️ Package name is available
    • ✔️ has a 'CITATION' file.
    • ✔️ has a 'codemeta.json' file.
    • ✔️ has a 'contributing' file.
    • ✔️ uses 'roxygen2'.
    • ✔️ 'DESCRIPTION' has a URL field.
    • ✔️ 'DESCRIPTION' has a BugReports field.
    • ✔️ Package has at least one HTML vignette
    • ✔️ All functions have examples.
    • ✔️ Package has continuous integration checks.
    • ✖️ Package coverage is 13.3% (should be at least 75%).
    • ✔️ R CMD check found no errors.
    • ✔️ R CMD check found no warnings.

    Important: All failing checks above must be addressed prior to proceeding

    Package License: MIT + file LICENSE


    1. Statistical Properties

    This package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing.

    Details of statistical properties (click to open)

    The package has:

    • code in R (100% in 15 files) and
    • 1 authors
    • 1 vignette
    • no internal data file
    • 9 imported packages
    • 9 exported functions (median 23 lines of code)
    • 94 non-exported functions in R (median 6 lines of code)

    Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
    The following terminology is used:

    • loc = "Lines of Code"
    • fn = "function"
    • exp/not_exp = exported / not exported

    The final measure (fn_call_network_size) is the total number of calls between functions (in R), or more abstract relationships between code objects in other languages. Values are flagged as "noteworthy" when they lie in the upper or lower 5th percentile.

    measure value percentile noteworthy
    files_R 15 70.6
    files_vignettes 0 0.0 TRUE
    files_tests 17 94.1
    loc_R 663 53.5
    loc_tests 417 68.5
    num_vignettes 1 60.7
    n_fns_r 103 71.7
    n_fns_r_exported 9 38.9
    n_fns_r_not_exported 94 76.9
    n_fns_per_file_r 4 51.7
    num_params_per_fn 4 54.3
    loc_per_fn_r 7 23.4
    loc_per_fn_r_exp 23 54.1
    loc_per_fn_r_not_exp 6 29.1
    rel_whitespace_R 6 24.3
    rel_whitespace_tests 7 76.1
    doclines_per_fn_exp 62 74.1
    doclines_per_fn_not_exp 0 0.0 TRUE
    fn_call_network_size 123 80.4

    1a. Network visualisation

    Click to see the interactive network visualisation of calls between objects in package


    2. goodpractice and other checks

    Details of goodpractice and other checks (click to open)

    3a. Continuous Integration Badges

    github
    github

    GitHub Workflow Results

    name conclusion sha date
    check success b6eadc 2021-11-17
    cover success b6eadc 2021-11-17
    lint success b6eadc 2021-11-17
    pkgdown success b6eadc 2021-11-17

    3b. goodpractice results

    R CMD check with rcmdcheck

    rcmdcheck found no errors, warnings, or notes

    Test coverage with covr

    Package coverage: 13.35

    The following files are not completely covered by tests:

    file coverage
    R/tar_git_checkout.R 0%
    R/tar_git_init.R 0%
    R/tar_git_log.R 0%
    R/tar_git_ok.R 0%
    R/tar_git_snapshot.R 0%
    R/tar_git_status_code.R 0%
    R/tar_git_status_data.R 0%
    R/tar_git_status_targets.R 0%
    R/tar_git_status.R 0%
    R/utils_assert.R 0%
    R/utils_git.R 30.77%

    Cyclocomplexity with cyclocomp

    No functions have cyclocomplexity >= 15

    Static code analyses with lintr

    lintr found no issues with this package!


    Package Versions

    package version
    pkgstats 0.0.2.72
    pkgcheck 0.0.2.107


    Editor-in-Chief Instructions:

    Processing may not proceed until the items marked with ✖️ have been resolved.

  9. wlandau commented on Nov 17, 2021

    @wlandau
    MemberAuthor

    gittargets requires command line Git in order for git-lfs to work (related: r-lib/gert#160). The majority of tests will automatically be skipped if tar_git_ok() returns FALSE. Is there still a path forward?

  10. ldecicco-USGS commented on Nov 17, 2021

    @ldecicco-USGS

    Yeah, that makes sense. I'll get started on getting this moving.

  11. mpadge commented on Nov 17, 2021

    @mpadge
    Member

    And I'll check out why coverage might have failed tomorrow, although git is definitely installed. @wlandau Nothing you need to worry about, thanks.


    Edit: For the record, @wlandau helped debug there, and the bot checks now give coverage of 100% 🚀 💯

  12. wlandau commented on Nov 17, 2021

    @wlandau
    MemberAuthor

    Thank you both!

    Related: I have not been able to correctly set up Git on the Windows GitHub Actions for gittargets. I tried a bunch of different approaches, but I still get errors claiming I need to configure git config --global user.name and git config --global user.email. The other runners appear to work just fine though, including the one that checks coverage.

  13. ldecicco-USGS commented on Nov 18, 2021

    @ldecicco-USGS

    @ropensci-review-bot assign @adamhsparksas editor

  14. ldecicco-USGS commented on Nov 18, 2021

    @ldecicco-USGS
  15. 49 remaining items

  16. mdneuzerling commented on Jan 12, 2022

    @mdneuzerling

    @adamhsparks Sorry about that! Done.

  17. adamhsparks commented on Jan 12, 2022

    @adamhsparks
    Member

    Well done, @wlandau! Thanks for this new package submission to rOpenSci. I'm guessing you know the drill now. If you need assistance with anything, please let me know.

  18. wlandau commented on Jan 12, 2022

    @wlandau
    MemberAuthor

    Amazing! Thanks @adamhsparks for facilitating the process and thanks @smwindecker and @mdneuzerling for the reviews! gittargets is in much better shape now, especially regarding documentation.

    @adamhsparks, would you be willing to grant me admin permissions at https://github.com/ropensci/gittargets? The rOpenSci transfer process still removes that on my end.

  19. wlandau commented on Jan 12, 2022

    @wlandau
    MemberAuthor

    Ah, sorry I didn't see this:

    After transfer write a comment @ropensci-review-bot finalize transfer of where is the repo/package name. This will give you admin access back.

  20. wlandau commented on Jan 12, 2022

    @wlandau
    MemberAuthor

    @ropensci-review-bot finalize transfer gittargets

  21. wlandau commented on Jan 12, 2022

    @wlandau
    MemberAuthor

    @ropensci-review-bot finalize transfer

  22. wlandau commented on Jan 12, 2022

    @wlandau
    MemberAuthor

    @ropensci-review-bot finalize transfer of gittargets

  23. ropensci-review-bot commented on Jan 12, 2022

    @ropensci-review-bot
    Collaborator

    Transfer completed. The gittargets team is now owner of the repository

  24. wlandau commented on Jan 12, 2022

    @wlandau
    MemberAuthor

    I still do not have admin permissions. Did I need to add myself to the gittargets team in advance?

  25. wlandau commented on Jan 12, 2022

    @wlandau
    MemberAuthor

    Other than that, I believe all the to-dos are now complete.

  26. maelle commented on Jan 13, 2022

    @maelle
    Member

    @wlandau I've now added you to that team. You hadn't received any invitation to it beforehands, correct? Thanks for the bug catching. 🙏

  27. wlandau commented on Jan 13, 2022

    @wlandau
    MemberAuthor

    Thanks, @maelle! I did not receive an invitation before, but I do have admin permissions now.

  28. wlandau commented on Jan 18, 2022

    @wlandau
    MemberAuthor

    Very minor: on my end, it looks like the rOpenSci README badge still says "Under Review". Are these badges still supported?

    Screen Shot 2022-01-18 at 3 03 39 PM

  29. mpadge commented on Jan 18, 2022

    @mpadge
    Member

    Sorry @wlandau, our badge server went to sleep a month ago without anybody realising - I've re-enabled it, so it should update soon.

  30. wlandau commented on Jan 19, 2022

    @wlandau
    MemberAuthor

    Thanks Mark! Looks to be fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions