targets and tarchetypes · Issue #401 · ropensci/software-review (original) (raw)
Submitting Author: Name (@wlandau)
Repository:
targets
: https://github.com/wlandau/targetstarchetypes
: https://github.com/wlandau/tarchetypes. (tarchetypes
is a small companion package that only serves to extendtargets
, so thought it appropriate to submit it for review along withtargets
.)- The manual: https://github.com/wlandau/targets-manual. (For https://github.com/ropensci-books.)
Version submitted:
- 0.0.0.9002 (
targets
) - 0.0.0.9000 (
tarchetypes
and the manual)
Editor: @maurolepore
Reviewer 1: @limnoliver
Reviewer 2: @tjmahr
Archive: TBD
Version accepted: TBD
DESCRIPTION files
targets
Package: targets
Title: Dynamic Function-Oriented Make-Like Declarative Pipelines for R
Description: The targets package is a pipeline toolkit that brings together
function-oriented programming and Make-like declarative workflows for
Statistics and data science in R. It implements a workflow as collection of
interconnected tasks, analyzes the dependency relationships among these
tasks, skips steps that are already up to date, runs the necessary
computations with optional parallel workers, abstracts files as
R objects, and provides tangible evidence that the results match
the underlying code and data. The methodology in this package
borrows from GNU Make by Richard Stallman (2015, ISBN:978-9881443519)
and drake by Will Landau (2018) <doi:10.21105/joss.00550>.
Version: 0.0.0.9001
License: MIT + file LICENSE
URL: https://wlandau.github.io/targets/, https://github.com/wlandau/targets
BugReports: https://github.com/wlandau/targets/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"
),
person(
given = c("Matthew", "T."),
family = "Warkentin",
role = "ctb"
))
Depends:
R (>= 3.5.0)
Imports:
callr (>= 3.4.3),
cli (>= 2.0.2),
codetools (>= 0.2.16),
data.table (>= 1.12.8),
digest (>= 0.6.25),
igraph (>= 1.2.5),
R6 (>= 2.4.1),
rlang (>= 0.4.5),
tibble (>= 3.0.1),
tidyselect (>= 1.1.0),
utils,
vctrs (>= 0.2.4),
withr (>= 2.1.2)
Suggests:
aws.s3 (>= 0.3.21),
clustermq (>= 0.8.9),
curl (>= 4.3),
dplyr (>= 1.0.0),
fst (>= 0.9.2),
future (>= 1.17.0),
keras (>= 2.2.5.0),
knitr (>= 1.30),
rmarkdown (>= 2.4),
qs (>= 0.23.2),
rstudioapi (>= 0.11),
testthat (>= 2.3.2),
torch (>= 0.1.0),
usethis (>= 1.6.3),
visNetwork (>= 2.0.9)
Encoding: UTF-8
Language: en-US
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.1.1.9000
VignetteBuilder: knitr
tarchetypes
Package: tarchetypes
Title: Archetypes for Targets
Description: The targets package is a pipeline toolkit that brings together
function-oriented programming and Make-like declarative workflows for
Statistics and data science in R. The tarchetypes package provides
convenient user-side functions to create specialized targets,
making pipelines easier to create and read. The methods in this package
were influenced by the drake R package by Will Landau (2018)
<doi:10.21105/joss.00550>.
Version: 0.0.0.9000
License: MIT + file LICENSE
URL: https://wlandau.github.io/tarchetypes/, https://github.com/wlandau/tarchetypes
BugReports: https://github.com/wlandau/tarchetypes/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:
fs (>= 1.4.2),
rlang (>= 0.4.7),
targets,
tidyselect (>= 1.1.0),
utils,
vctrs (>= 0.3.4),
withr (>= 2.1.2)
Suggests:
digest (>= 0.6.25),
knitr (>= 1.28),
rmarkdown (>= 2.1),
testthat (>= 2.3.2)
Remotes:
wlandau/targets
Encoding: UTF-8
Language: en-US
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.1.1.9000
- Manual
Package: targets.manual
Title: Targets R Package User Manual
Description: This repository contains the source files of the targets R
package user manual.
Version: 0.0.0.9000
License: MIT + file LICENSE
URL: https://wlandau.github.io/targets-manual,
https://github.com/wlandau/targets-manual
BugReports: https://github.com/wlandau/targets-manual/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:
biglm (>= 0.9.2),
bookdown (>= 0.19),
fs (>= 1.4.1),
purrr (>= 0.3.4),
tarchetypes,
targets,
tidyverse (>= 1.3.0),
visNetwork (>= 2.0.9),
withr (>= 2.2.0)
Remotes:
wlandau/tarchetypes,
wlandau/targets
Encoding: UTF-8
Language: en-US
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.1.0
VignetteBuilder: knitr
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):
targets
is an R-focused pipeline toolkit for Make-like declarative workflows. It resolves the dependency relationships among steps of a data analysis workflow and skips steps that are already up to date.
- Who is the target audience and what are scientific applications of this package?
targets
is for R users who maintain computationally intense function-oriented data analysis projects (with large codebases and/or long runtimes). Such projects may include but are not limited to Bayesian statistics, simulation, machine learning, PK/PD, and spatial statistics.
- Are there other R packages that accomplish the same thing? If so, how does yours differ or meet our criteria for best-in-category?
targets
is the long-term successor to drake. After four years of development, drake has improved so much that its insurmountable problems have become its most pressing ones. A new package is necessary to advance the capability further. So while I still believe drake is thriving, and even though I will continue to maintain drake indefinitely, I created targets
to try to break new ground. At https://wlandau.github.io/targets/articles/need.html#drake, I take a detailed dive into the ways that targets
surpasses drake's permanent limitations.
- (If applicable) Does your package comply with our guidance around Ethics, Data Privacy and Human Subjects Research?
N/A
- If you made a pre-submission enquiry, 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.
- I have read the guide for authors and rOpenSci packaging guide.
This package:
- does not violate the Terms of Service of any service it interacts with.
- has a CRAN and OSI accepted license.
- contains a README with instructions for installing the development version.
- includes documentation with examples for all functions, created with roxygen2.
- contains a vignette with examples of its essential functions and uses. To increase modularity and reduce package check time, all the user-side vignettes actually live at https://github.com/wlandau/targets-manual (deployed to https://wlandau.github.io/targets-manual). Repos at https://github.com/wlandau/targets-minimal, https://github.com/wlandau/targets-stan, and https://github.com/wlandau/targets-keras have the complete source code for example use cases. To avoid encumbering core
targets
and to avoid maintaining duplicated documentation, the vignettes of the actual package only include the statement of need and design documents. The README is deliberately short and links to all this existing documentation. - has a test suite. Not all of the tests in
targets
can be automated, especially when it comes to visualization and profiling, so many of the tests live in non-testthat
folders in https://github.com/wlandau/targets/tree/master/tests. Whenever I use a#nocov
block, I always include a comment with a justification and/or a reference to one of these semi-automated tests. - has continuous integration, including reporting of test coverage using services such as Travis CI, Coveralls and/or CodeCov.
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 automatically submit to the Journal of Open Source Software? If so: JOSS Options
- The package has an obvious research application according to JOSS's definition.
- The package contains a
paper.md
matching JOSS's requirements with a high-level description in the package root or ininst/
.I have written a paper.md, but I need to run it through my company's scientific disclosure process before I share it. That could take a few weeks.paper.md
andpaper.bib
now disclosed and included insideinst/
. - The package is deposited in a long-term repository with the DOI:
- (Do not submit your package separately to JOSS)
- The package contains a
- 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
- I agree to abide by rOpenSci's Code of Conduct during the review process and in maintaining my package should it be accepted.