Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chopin: Computation for Climate and Health research On Parallelized INfrastructure #638

Closed
12 of 29 tasks
sigmafelix opened this issue Apr 24, 2024 · 87 comments
Closed
12 of 29 tasks
Assignees

Comments

@sigmafelix
Copy link

sigmafelix commented Apr 24, 2024

Date accepted: 2024-09-24

Submitting Author Name: Insang Song
Submitting Author Github Handle: @sigmafelix
Other Package Authors Github handles: (comma separated, delete if none) @kyle-messier
Repository: https://github.com/NIEHS/chopin
Version submitted: 0.6.2.20240423
Submission type: Standard
Editor: @beatrizmilz
Reviewers: @robitalec, @Aariq

Archive: TBD
Version accepted: TBD
Language: en


  • Paste the full DESCRIPTION file inside a code block below:
Package: chopin
Title: CHOPIN: Computation for Climate and Health research On Parallelized INfrastructure
Version: 0.6.2.20240423
Authors@R: c(
    person("Insang", "Song", , "[email protected]", role = c("aut", "cre"),
           comment = c(ORCID = "0000-0001-8732-3256")),
    person("Kyle", "Messier", role = c("aut", "ctb"),
           comment = c(ORCID = "0000-0001-9508-9623"))
  )
Description: It enables users with basic understanding on geospatial data
    and sf and terra functions to parallelize geospatial operations for
    geospatial exposure assessment modeling and covariate computation.
    Parallelization is done by dividing large datasets into sub-regions
    with regular grids and data's own hierarchy. A computation over the
    large number of raster files can be parallelized with a chopin
    function as well.
License: MIT + file LICENSE
URL: https://github.com/NIEHS/chopin
BugReports: https://github.com/NIEHS/chopin/issues
Depends: 
    R (>= 4.1)
Encoding: UTF-8
LazyData: true
LazyDataCompression: xz
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.1
Imports: 
    anticlust,
    dplyr (>= 1.1.0),
    exactextractr (>= 0.8.2),
    future.apply,
    igraph,
    methods,
    rlang (>= 0.4.9),
    sf (>= 1.0-10),
    stars (>= 0.6-0),
    terra (>= 1.7-18)
Suggests: 
    callr,
    covr,
    DiagrammeR,
    doFuture,
    doParallel,
    future,
    future.batchtools,
    future.callr,
    knitr,
    rmarkdown,
    spatstat.random,
    testthat (>= 3.0.0),
    units,
    withr
VignetteBuilder: knitr
Config/testthat/edition: 3

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
    • text analysis
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):
    : chopin supports parallel processing for functions in popular spatial data manipulation packages sf and terra on a high-level parallelization framework future. This feature fits to the geospatial data category.

  • Who is the target audience and what are scientific applications of this package?
    : Our first target audience group is spatial epidemiologists and health geographers who want to calculating spatial covariates from spatial and spatiotemporal datasets including climate, transportation, demographics, topography, hydrography, and others. We expect that users are cognizant of basic geographic information system/science. The wider audience could take advantage of the flexibility of this package for expediting spatial operations.

  • Are there other R packages that accomplish the same thing? If so, how does yours differ or meet our criteria for best-in-category?
    : A selection of functions in terra (e.g., *app and predict) supports internal parallelization, where a single dataset is accepted. To the best of our knowledge, no packaged solution exists for parallelization of spatial operations where two datasets are involved. sprawl (GitHub-only; not maintained) partially overlaps this package's functionality in that it includes convenience functions connecting multiple basic spatial operations. Besides the R functions, a handful of teaching or demonstration materials briefly covered parallelization of spatial data applications ([1], [2], [3]).

  • (If applicable) Does your package comply with our guidance around Ethics, Data Privacy and Human Subjects Research?
    : Not applicable

  • 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.
    : Presubmission inquiry of the previous version of this package -- Presubmission inquiry: chopin #630 commented by @ldecicco-USGS

  • Explain reasons for any pkgcheck items which your package is unable to pass.
    : Coverage rate (99%) and installation size (25.7 MB; of which data (2.0 MB) and extdata (23.1 MB) exceeded recommended sizes) resulted in notes.

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
  • 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

Thank you very much for your consideration!

@ropensci-review-bot
Copy link
Collaborator

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

@ropensci-review-bot
Copy link
Collaborator

🚀

Editor check started

👋

@ropensci-review-bot
Copy link
Collaborator

Checks for chopin (v0.6.2.20240423)

git hash: 26153abb

  • ✔️ Package name is available
  • ✔️ has a 'codemeta.json' file.
  • ✖️ does not have a 'contributing' file.
  • ✖️ The following function has no documented return value: [clip_ras_ext]
  • ✔️ 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 99.6%.
  • ✔️ 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. Package Dependencies

Details of Package Dependency Usage (click to open)

The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.

type package ncalls
internal base 123
internal chopin 33
internal graphics 8
internal stats 6
internal utils 2
imports terra 38
imports sf 20
imports dplyr 5
imports methods 5
imports exactextractr 3
imports future.apply 3
imports rlang 3
imports igraph 2
imports anticlust 1
imports stars 1
suggests callr NA
suggests covr NA
suggests DiagrammeR NA
suggests doFuture NA
suggests doParallel NA
suggests future NA
suggests future.batchtools NA
suggests future.callr NA
suggests knitr NA
suggests rmarkdown NA
suggests spatstat.random NA
suggests testthat NA
suggests units NA
suggests withr NA
linking_to NA NA

Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.

base

list (9), switch (9), lapply (7), c (6), unlist (6), split (5), which (5), names (4), grepl (3), if (3), mapply (3), nrow (3), abs (2), any (2), as.integer (2), ceiling (2), class (2), data.frame (2), expand.grid (2), log10 (2), mode (2), paste (2), round (2), rownames (2), seq (2), seq_len (2), sum (2), t (2), tryCatch (2), unique (2), args (1), as.data.frame (1), as.logical (1), as.numeric (1), as.vector (1), by (1), exp (1), for (1), formals (1), ifelse (1), intersect (1), lengths (1), pi (1), rbind (1), Reduce (1), search (1), seq_along (1), sort (1), sprintf (1), strsplit (1), suppressWarnings (1), table (1), try (1), vector (1)

terra

buffer (9), crop (8), ext (4), rast (4), distance (3), crs (2), nearby (2), project (2), crds (1), intersect (1), is.lonlat (1), nlyr (1)

chopin

dep_check (15), any_class_args (4), dep_switch (4), datamod (2), get_clip_ext (2), clip_ras_ext (1), clip_vec_ext (1), crs_check (1), ext2poly (1), extract_at_buffer_kernel (1), par_group_balanced (1)

sf

st_crs (3), st_relate (3), st_as_sf (2), st_area (1), st_as_sfc (1), st_bbox (1), st_centroid (1), st_coordinates (1), st_covered_by (1), st_geometry_type (1), st_intersection (1), st_intersects (1), st_make_grid (1), st_transform (1), st_within (1)

graphics

points (8)

stats

dist (3), quantile (3)

dplyr

n (2), left_join (1), mutate (1), summarize (1)

methods

is (3), el (2)

exactextractr

exact_extract (3)

future.apply

future_lapply (3)

rlang

inject (3)

igraph

graph_from_edgelist (2)

utils

combn (2)

anticlust

balanced_clustering (1)

stars

st_as_stars (1)


2. 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 7 files) and
  • 2 authors
  • 3 vignettes
  • 2 internal data files
  • 10 imported packages
  • 33 exported functions (median 17 lines of code)
  • 34 non-exported functions in R (median 29 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

All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown() function

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 7 45.7
files_vignettes 3 92.4
files_tests 9 89.6
loc_R 1163 72.0
loc_vignettes 652 83.8
loc_tests 1193 89.2
num_vignettes 3 94.2
data_size_total 2100956 97.8 TRUE
data_size_median 1050478 98.5 TRUE
n_fns_r 67 65.5
n_fns_r_exported 33 80.4
n_fns_r_not_exported 34 56.6
n_fns_per_file_r 7 77.9
num_params_per_fn 3 33.6
loc_per_fn_r 21 62.0
loc_per_fn_r_exp 17 40.3
loc_per_fn_r_not_exp 29 77.1
rel_whitespace_R 12 61.7
rel_whitespace_vignettes 32 85.6
rel_whitespace_tests 17 85.6
doclines_per_fn_exp 37 45.3
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 59 69.7

2a. Network visualisation

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


3. goodpractice and other checks

Details of goodpractice checks (click to open)

3a. Continuous Integration Badges

check-standard.yaml

GitHub Workflow Results

id name conclusion sha run_number date
8817187321 pages build and deployment success a8aaed 33 2024-04-24
8817133786 pkgdown success 26153a 69 2024-04-24
8817133742 R-CMD-check success 26153a 149 2024-04-24
8817133730 test-coverage-local success 26153a 17 2024-04-24

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following notes:

  1. checking installed package size ... NOTE
    installed size is 25.6Mb
    sub-directories of 1Mb or more:
    data 2.0Mb
    extdata 23.1Mb
  2. checking re-building of vignette outputs ... NOTE
    Error(s) in re-building vignettes:
    ...
    --- re-building ‘v00_good_practice_parallelization.Rmd’ using rmarkdown
    --- finished re-building ‘v00_good_practice_parallelization.Rmd’

--- re-building ‘v01_par_make_gridset.Rmd’ using rmarkdown
File figures/nc-load-1.png not found in resource path
Error: processing vignette 'v01_par_make_gridset.Rmd' failed with diagnostics:
pandoc document conversion failed with error 99
--- failed re-building ‘v01_par_make_gridset.Rmd’

--- re-building ‘v02_climate_examples.Rmd’ using rmarkdown
File figures/climate-se-states.png not found in resource path
Error: processing vignette 'v02_climate_examples.Rmd' failed with diagnostics:
pandoc document conversion failed with error 99
--- failed re-building ‘v02_climate_examples.Rmd’

SUMMARY: processing the following files failed:
‘v01_par_make_gridset.Rmd’ ‘v02_climate_examples.Rmd’

Error: Vignette re-building failed.
Execution halted

R CMD check generated the following check_fail:

  1. rcmdcheck_reasonable_installed_size

Test coverage with covr

Package coverage: 99.65

Cyclocomplexity with cyclocomp

No functions have cyclocomplexity >= 15

Static code analyses with lintr

lintr found the following 1 potential issues:

message number of times
Lines should not be more than 80 characters. 1


Package Versions

package version
pkgstats 0.1.3.13
pkgcheck 0.1.2.21


Editor-in-Chief Instructions:

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

@sigmafelix
Copy link
Author

@ropensci-review-bot check package

@ropensci-review-bot
Copy link
Collaborator

Thanks, about to send the query.

@ropensci-review-bot
Copy link
Collaborator

🚀

Editor check started

👋

@ropensci-review-bot
Copy link
Collaborator

Checks for chopin (v0.6.2.20240423)

git hash: c0e53b6e

  • ✔️ Package name is available
  • ✔️ 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 99.6%.
  • ✔️ R CMD check found no errors.
  • ✔️ R CMD check found no warnings.

Package License: MIT + file LICENSE


1. Package Dependencies

Details of Package Dependency Usage (click to open)

The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.

type package ncalls
internal base 123
internal chopin 33
internal graphics 8
internal stats 6
internal utils 2
imports terra 38
imports sf 20
imports dplyr 5
imports methods 5
imports exactextractr 3
imports future.apply 3
imports rlang 3
imports igraph 2
imports anticlust 1
imports stars 1
suggests callr NA
suggests covr NA
suggests DiagrammeR NA
suggests doFuture NA
suggests doParallel NA
suggests future NA
suggests future.batchtools NA
suggests future.callr NA
suggests knitr NA
suggests rmarkdown NA
suggests spatstat.random NA
suggests testthat NA
suggests units NA
suggests withr NA
linking_to NA NA

Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.

base

list (9), switch (9), lapply (7), c (6), unlist (6), split (5), which (5), names (4), grepl (3), if (3), mapply (3), nrow (3), abs (2), any (2), as.integer (2), ceiling (2), class (2), data.frame (2), expand.grid (2), log10 (2), mode (2), paste (2), round (2), rownames (2), seq (2), seq_len (2), sum (2), t (2), tryCatch (2), unique (2), args (1), as.data.frame (1), as.logical (1), as.numeric (1), as.vector (1), by (1), exp (1), for (1), formals (1), ifelse (1), intersect (1), lengths (1), pi (1), rbind (1), Reduce (1), search (1), seq_along (1), sort (1), sprintf (1), strsplit (1), suppressWarnings (1), table (1), try (1), vector (1)

terra

buffer (9), crop (8), ext (4), rast (4), distance (3), crs (2), nearby (2), project (2), crds (1), intersect (1), is.lonlat (1), nlyr (1)

chopin

dep_check (15), any_class_args (4), dep_switch (4), datamod (2), get_clip_ext (2), clip_ras_ext (1), clip_vec_ext (1), crs_check (1), ext2poly (1), extract_at_buffer_kernel (1), par_group_balanced (1)

sf

st_crs (3), st_relate (3), st_as_sf (2), st_area (1), st_as_sfc (1), st_bbox (1), st_centroid (1), st_coordinates (1), st_covered_by (1), st_geometry_type (1), st_intersection (1), st_intersects (1), st_make_grid (1), st_transform (1), st_within (1)

graphics

points (8)

stats

dist (3), quantile (3)

dplyr

n (2), left_join (1), mutate (1), summarize (1)

methods

is (3), el (2)

exactextractr

exact_extract (3)

future.apply

future_lapply (3)

rlang

inject (3)

igraph

graph_from_edgelist (2)

utils

combn (2)

anticlust

balanced_clustering (1)

stars

st_as_stars (1)


2. 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 7 files) and
  • 2 authors
  • 3 vignettes
  • 2 internal data files
  • 10 imported packages
  • 33 exported functions (median 17 lines of code)
  • 34 non-exported functions in R (median 29 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

All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown() function

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 7 45.7
files_vignettes 3 92.4
files_tests 9 89.6
loc_R 1163 72.0
loc_vignettes 652 83.8
loc_tests 1193 89.2
num_vignettes 3 94.2
data_size_total 2100956 97.8 TRUE
data_size_median 1050478 98.5 TRUE
n_fns_r 67 65.5
n_fns_r_exported 33 80.4
n_fns_r_not_exported 34 56.6
n_fns_per_file_r 7 77.9
num_params_per_fn 3 33.6
loc_per_fn_r 21 62.0
loc_per_fn_r_exp 17 40.3
loc_per_fn_r_not_exp 29 77.1
rel_whitespace_R 12 61.7
rel_whitespace_vignettes 32 85.6
rel_whitespace_tests 17 85.6
doclines_per_fn_exp 37 45.3
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 59 69.7

2a. Network visualisation

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


3. goodpractice and other checks

Details of goodpractice checks (click to open)

3a. Continuous Integration Badges

check-standard.yaml

GitHub Workflow Results

id name conclusion sha run_number date
8818976584 pages build and deployment success 1b88a2 36 2024-04-24
8818927586 pkgdown success f8c659 71 2024-04-24
8818927598 R-CMD-check success f8c659 151 2024-04-24
8818927585 test-coverage-local success f8c659 19 2024-04-24

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following notes:

  1. checking installed package size ... NOTE
    installed size is 25.6Mb
    sub-directories of 1Mb or more:
    data 2.0Mb
    extdata 23.1Mb
  2. checking re-building of vignette outputs ... NOTE
    Error(s) in re-building vignettes:
    ...
    --- re-building ‘v00_good_practice_parallelization.Rmd’ using rmarkdown
    --- finished re-building ‘v00_good_practice_parallelization.Rmd’

--- re-building ‘v01_par_make_gridset.Rmd’ using rmarkdown
File figures/nc-load-1.png not found in resource path
Error: processing vignette 'v01_par_make_gridset.Rmd' failed with diagnostics:
pandoc document conversion failed with error 99
--- failed re-building ‘v01_par_make_gridset.Rmd’

--- re-building ‘v02_climate_examples.Rmd’ using rmarkdown
File figures/climate-se-states.png not found in resource path
Error: processing vignette 'v02_climate_examples.Rmd' failed with diagnostics:
pandoc document conversion failed with error 99
--- failed re-building ‘v02_climate_examples.Rmd’

SUMMARY: processing the following files failed:
‘v01_par_make_gridset.Rmd’ ‘v02_climate_examples.Rmd’

Error: Vignette re-building failed.
Execution halted

R CMD check generated the following check_fail:

  1. rcmdcheck_reasonable_installed_size

Test coverage with covr

Package coverage: 99.65

Cyclocomplexity with cyclocomp

No functions have cyclocomplexity >= 15

Static code analyses with lintr

lintr found the following 1 potential issues:

message number of times
Lines should not be more than 80 characters. 1


Package Versions

package version
pkgstats 0.1.3.13
pkgcheck 0.1.2.21


Editor-in-Chief Instructions:

This package is in top shape and may be passed on to a handling editor

@sigmafelix
Copy link
Author

@ropensci-review-bot help

@ropensci-review-bot
Copy link
Collaborator

Hello @sigmafelix, here are the things you can ask me to do:


# Add an author's response info to the ROpenSci logs
@ropensci-review-bot submit response <AUTHOR_RESPONSE_URL>

# List all available commands
@ropensci-review-bot help

# Show our Code of Conduct
@ropensci-review-bot code of conduct

# Invite the author of a package to the corresponding rOpenSci team. This command should be issued by the author of the package.
@ropensci-review-bot invite me to ropensci/package-name

# Adds package's repo to the rOpenSci team. This command should be issued after approval and transfer of the package.
@ropensci-review-bot finalize transfer of package-name

# Various package checks
@ropensci-review-bot check package

# Checks srr documentation for stats packages
@ropensci-review-bot check srr

@sigmafelix
Copy link
Author

@ropensci-review-bot submit response #638 (comment)

@ropensci-review-bot
Copy link
Collaborator

Couldn't find entry for chopin in the packages log

@ldecicco-USGS
Copy link

@ropensci-review-bot assign @beatrizmilz as editor

@ropensci-review-bot
Copy link
Collaborator

Assigned! @beatrizmilz is now the editor

@beatrizmilz
Copy link

Hello @sigmafelix !
Thank you for your submission. I am the editor who will be working with you on this package.

Editor checks:

  • Documentation: The package has sufficient documentation available online (README, pkgdown docs) to allow for an assessment of functionality and scope without installing the package. In particular,
    • Is the case for the package well made?
    • Is the reference index page clear (grouped by topic if necessary)?
    • Are vignettes readable, sufficiently detailed and not just perfunctory?
  • Fit: The package meets criteria for fit and overlap.
  • Installation instructions: Are installation instructions clear enough for human users?
  • Tests: If the package has some interactivity / HTTP / plot production etc. are the tests using state-of-the-art tooling?
  • Contributing information: Is the documentation for contribution clear enough e.g. tokens for tests, playgrounds?
  • License: The package has a CRAN or OSI accepted license.
  • Project management: Are the issue and PR trackers in a good shape, e.g. are there outstanding bugs, is it clear when feature requests are meant to be tackled?

Editor comments

    1. Seems like the package was created in the organization called Spatiotemporal-Exposures-and-Toxicology and then was transfered to NIEHS, and some of the links in the documentation are still pointing to the old organization. Can you update them to point to the new organization, please? This might help: https://github.com/search?q=repo%3ANIEHS%2Fchopin%20Spatiotemporal-Exposures-and-Toxicology&type=code
    1. The vignette Extracting Weather/Climate Geospatial Data with chopin is well detailed and informative. However, the vignette Generate computational grids can be more detailed. It would be great if you could improve that vignette with more text explaining the code and the steps.
    1. I ran devtools::test() and all the tests passed. However, I noticed that there is a lot of messages from dplyr joins, because aparently there are some joins that are being done without declaring which are the key columns. This is not a problem, but it would be nice if you could add the by argument to the dplyr::**_join() functions in the code. Here is part of the messages that I got:
✔ |         41 | processing [8.1s]                                             
⠏ |          0 | tests                                                         Joining with `by = join_by(from_id)`
Joining with `by = join_by(to_id)`
Joining with `by = join_by(from_id, to_id)`
⠴ |          6 | tests                                                         Joining with `by = join_by(from_id)`
Joining with `by = join_by(to_id)`
Joining with `by = join_by(from_id, to_id)`
Joining with `by = join_by(from_id)`
Joining with `by = join_by(to_id)`
Joining with `by = join_by(from_id, to_id)`
⠙ |         12 | tests                                                         Joining with `by = join_by(from_id)`
Joining with `by = join_by(to_id, FIPS)`
Joining with `by = join_by(from_id, to_id)`
✔ |         13 | tests
    1. The package has >99% of code covered by tests. 🎉
      Screenshot 2024-05-06 at 11-54-27 Screenshot

Can you please address these comments?
Thank you!

@sigmafelix
Copy link
Author

@beatrizmilz I appreciate your time to review our package. I will address all your points in the revision on top of fixing some bugs we identified in the meantime and respond to you soon. Thank you.

@sigmafelix
Copy link
Author

@beatrizmilz Thank you for your patience. I think I addressed all comments in the current version available in main. Please let me know if you have additional comments.

@beatrizmilz
Copy link

Thank you @sigmafelix !

@beatrizmilz
Copy link

@ropensci-review-bot seeking reviewers

@ropensci-review-bot
Copy link
Collaborator

Please add this badge to the README of your package repository:

[![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/638_status.svg)](https://github.com/ropensci/software-review/issues/638)

Furthermore, if your package does not have a NEWS.md file yet, please create one to capture the changes made during the review process. See https://devguide.ropensci.org/releasing.html#news

@beatrizmilz
Copy link

@ropensci-review-bot check package

@ropensci-review-bot
Copy link
Collaborator

Thanks, about to send the query.

@ropensci-review-bot
Copy link
Collaborator

🚀

Editor check started

👋

@ropensci-review-bot
Copy link
Collaborator

Checks for chopin (v0.6.3.20240515)

git hash: 094a6460

  • ✔️ Package name is available
  • ✔️ 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 99.7%.
  • ✖️ R CMD check found 1 error.
  • ✔️ R CMD check found no warnings.

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

Package License: MIT + file LICENSE


1. Package Dependencies

Details of Package Dependency Usage (click to open)

The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.

type package ncalls
internal base 133
internal chopin 33
internal graphics 8
internal stats 6
internal utils 2
imports terra 38
imports sf 20
imports dplyr 10
imports methods 5
imports exactextractr 3
imports future.apply 3
imports rlang 3
imports igraph 2
imports anticlust 1
imports stars 1
suggests callr NA
suggests covr NA
suggests DiagrammeR NA
suggests doFuture NA
suggests doParallel NA
suggests future NA
suggests future.batchtools NA
suggests future.callr NA
suggests knitr NA
suggests rmarkdown NA
suggests spatstat.random NA
suggests testthat NA
suggests units NA
suggests withr NA
linking_to NA NA

Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.

base

list (9), switch (9), c (7), lapply (7), by (6), data.frame (6), unlist (6), split (5), which (5), names (4), grepl (3), if (3), mapply (3), nrow (3), abs (2), any (2), as.integer (2), ceiling (2), class (2), expand.grid (2), log10 (2), mode (2), paste (2), round (2), rownames (2), seq (2), seq_len (2), sum (2), t (2), tryCatch (2), unique (2), args (1), as.data.frame (1), as.logical (1), as.numeric (1), as.vector (1), exp (1), for (1), formals (1), ifelse (1), intersect (1), lengths (1), pi (1), rbind (1), Reduce (1), search (1), seq_along (1), sort (1), sprintf (1), strsplit (1), suppressWarnings (1), table (1), try (1), vector (1)

terra

buffer (9), crop (8), ext (4), rast (4), distance (3), crs (2), nearby (2), project (2), crds (1), intersect (1), is.lonlat (1), nlyr (1)

chopin

dep_check (15), any_class_args (4), dep_switch (4), datamod (2), get_clip_ext (2), clip_ras_ext (1), clip_vec_ext (1), crs_check (1), ext2poly (1), extract_at_buffer_kernel (1), par_group_balanced (1)

sf

st_crs (3), st_relate (3), st_as_sf (2), st_area (1), st_as_sfc (1), st_bbox (1), st_centroid (1), st_coordinates (1), st_covered_by (1), st_geometry_type (1), st_intersection (1), st_intersects (1), st_make_grid (1), st_transform (1), st_within (1)

dplyr

left_join (6), n (2), mutate (1), summarize (1)

graphics

points (8)

stats

dist (3), quantile (3)

methods

is (3), el (2)

exactextractr

exact_extract (3)

future.apply

future_lapply (3)

rlang

inject (3)

igraph

graph_from_edgelist (2)

utils

combn (2)

anticlust

balanced_clustering (1)

stars

st_as_stars (1)


2. 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 7 files) and
  • 2 authors
  • 3 vignettes
  • 2 internal data files
  • 10 imported packages
  • 33 exported functions (median 17 lines of code)
  • 34 non-exported functions in R (median 29 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

All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown() function

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 7 45.7
files_vignettes 3 92.4
files_tests 9 89.6
loc_R 1176 72.3
loc_vignettes 831 88.0
loc_tests 1289 90.2
num_vignettes 3 94.2
data_size_total 2100956 97.8 TRUE
data_size_median 1050478 98.5 TRUE
n_fns_r 67 65.5
n_fns_r_exported 33 80.4
n_fns_r_not_exported 34 56.6
n_fns_per_file_r 7 77.9
num_params_per_fn 3 33.6
loc_per_fn_r 21 62.0
loc_per_fn_r_exp 17 40.3
loc_per_fn_r_not_exp 29 77.1
rel_whitespace_R 12 61.7
rel_whitespace_vignettes 33 90.4
rel_whitespace_tests 16 85.6
doclines_per_fn_exp 37 45.3
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 61 70.3

2a. Network visualisation

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


3. goodpractice and other checks

Details of goodpractice checks (click to open)

3a. Continuous Integration Badges

check-standard.yaml

GitHub Workflow Results

id name conclusion sha run_number date
9116757038 pages build and deployment success 9e3af8 43 2024-05-16
9116716549 pkgdown success 094a64 77 2024-05-16
9116716555 R-CMD-check success 094a64 157 2024-05-16
9116716552 test-coverage-local success 094a64 25 2024-05-16

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following error:

  1. checking re-building of vignette outputs ... ERROR
    Error(s) in re-building vignettes:
    ...
    --- re-building ‘v00_good_practice_parallelization.Rmd’ using rmarkdown
    --- finished re-building ‘v00_good_practice_parallelization.Rmd’

--- re-building ‘v01_par_make_gridset.Rmd’ using rmarkdown
File figures/nc-gen-points-1.png not found in resource path
Error: processing vignette 'v01_par_make_gridset.Rmd' failed with diagnostics:
pandoc document conversion failed with error 99
--- failed re-building ‘v01_par_make_gridset.Rmd’

--- re-building ‘v02_climate_examples.Rmd’ using rmarkdown
File figures/climate-se-states.png not found in resource path
Error: processing vignette 'v02_climate_examples.Rmd' failed with diagnostics:
pandoc document conversion failed with error 99
--- failed re-building ‘v02_climate_examples.Rmd’

SUMMARY: processing the following files failed:
‘v01_par_make_gridset.Rmd’ ‘v02_climate_examples.Rmd’

Error: Vignette re-building failed.
Execution halted

R CMD check generated the following note:

  1. checking installed package size ... NOTE
    installed size is 25.8Mb
    sub-directories of 1Mb or more:
    data 2.0Mb
    extdata 23.1Mb

R CMD check generated the following check_fail:

  1. rcmdcheck_reasonable_installed_size

Test coverage with covr

Package coverage: 99.65

Cyclocomplexity with cyclocomp

No functions have cyclocomplexity >= 15

Static code analyses with lintr

lintr found the following 2 potential issues:

message number of times
Avoid using sapply, consider vapply instead, that's type safe 1
Lines should not be more than 80 characters. This line is 81 characters. 1


Package Versions

package version
pkgstats 0.1.5.2
pkgcheck 0.1.2.34


Editor-in-Chief Instructions:

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

@beatrizmilz
Copy link

Hi @sigmafelix !
There was one error on the R CMD check: #638 (comment) .
Could you please verify that, before we proceed to add the reviewers?

Thank you!

@beatrizmilz
Copy link

Thank you both @robitalec and @Aariq for the second review and suggestions.

@sigmafelix Congratulations on the package approval! @robitalec and @Aariq gave more suggestions, and I would like to know if you plan to address those, and if yes, if you prefer to do it before or after transferring the repository to the account of rOpenSci.

The following comment from @Aariq seems really important to be addressed:

When I install or load_all() the package, I get the following message printed: in method for ‘[’ with signature ‘x="SpatVector",i="bbox",j="missing"’: no definition for class “bbox”. Something might be wrong with how this method is implemented.

@ropensci-review-bot approve chopin

@beatrizmilz
Copy link

@ropensci-review-bot approve chopin

@ropensci-review-bot
Copy link
Collaborator

Approved! Thanks @sigmafelix for submitting and @robitalec, @Aariq for your reviews! 😁

To-dos:

  • Transfer the repo to rOpenSci's "ropensci" GitHub organization under "Settings" in your repo. I have invited you to a team that should allow you to do so. You will need to enable two-factor authentication for your GitHub account.
    This invitation will expire after one week. If it happens write a comment @ropensci-review-bot invite me to ropensci/<package-name> which will re-send an invitation.
  • After transfer write a comment @ropensci-review-bot finalize transfer of <package-name> where <package-name> is the repo/package name. This will give you admin access back.
  • Fix all links to the GitHub repo to point to the repo under the ropensci organization.
  • Delete your current code of conduct file if you had one since rOpenSci's default one will apply, see https://devguide.ropensci.org/collaboration.html#coc-file
  • If you already had a pkgdown website and are ok relying only on rOpenSci central docs building and branding,
    • deactivate the automatic deployment you might have set up
    • remove styling tweaks from your pkgdown config but keep that config file
    • replace the whole current pkgdown website with a redirecting page
    • replace your package docs URL with https://docs.ropensci.org/package_name
    • In addition, in your DESCRIPTION file, include the docs link in the URL field alongside the link to the GitHub repository, e.g.: URL: https://docs.ropensci.org/foobar, https://github.com/ropensci/foobar
  • Skim the docs of the pkgdown automatic deployment, in particular if your website needs MathJax.
  • Fix any links in badges for CI and coverage to point to the new repository URL.
  • Increment the package version to reflect the changes you made during review. In NEWS.md, add a heading for the new version and one bullet for each user-facing change, and each developer-facing change that you think is relevant.
  • We're starting to roll out software metadata files to all rOpenSci packages via the Codemeta initiative, see https://docs.ropensci.org/codemetar/ for how to include it in your package, after installing the package - should be easy as running codemetar::write_codemeta() in the root of your package.
  • You can add this installation method to your package README install.packages("<package-name>", repos = "https://ropensci.r-universe.dev") thanks to R-universe.

Should you want to acknowledge your reviewers in your package DESCRIPTION, you can do so by making them "rev"-type contributors in the Authors@R field (with their consent).

Welcome aboard! We'd love to host a post about your package - either a short introduction to it with an example for a technical audience or a longer post with some narrative about its development or something you learned, and an example of its use for a broader readership. If you are interested, consult the blog guide, and tag @ropensci/blog-editors in your reply. They will get in touch about timing and can answer any questions.

We maintain an online book with our best practice and tips, this chapter starts the 3d section that's about guidance for after onboarding (with advice on releases, package marketing, GitHub grooming); the guide also feature CRAN gotchas. Please tell us what could be improved.

Last but not least, you can volunteer as a reviewer via filling a short form.

@sigmafelix
Copy link
Author

@beatrizmilz Thank you very much for approving our package! We are excited to see that chopin is included in ROpenSci packages. We sincerely appreciate the reviewers @Aariq and @robitalec for extremely helpful comments for improving chopin.

For the recent comment, we are aware of the bbox class detection error in S4 context as being pointed out by @Aariq. I speculate that this error might come from different mechanisms of setting a class to an object between S3 and S4. I think I will consult sf maintainers about this issue further before I make changes.

library(sf)
dd <- st_bbox(c(xmin = 16.1, xmax = 16.6, ymax = 48.6, ymin = 47.9), crs = st_crs(4326))
class(dd)
[1] "bbox"

setGeneric("detect_bbox", function(x){})
[1] "detect_bbox"
setMethod("detect_bbox", signature = c(x = "bbox"), function(x){class(x)})
# in method for ‘detect_bbox’ with signature ‘x="bbox"’: no definition for class “bbox”

@kyle-messier
Copy link

kyle-messier commented Oct 3, 2024

@ropensci-review-bot invite me to ropensci/chopin

@ropensci-review-bot
Copy link
Collaborator

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@ropensci-review-bot help

@kyle-messier
Copy link

@ropensci-review-bot invite me to ropensci/chopin

@ropensci-review-bot
Copy link
Collaborator

Could not invite, you are not the author of the package

@sigmafelix
Copy link
Author

@beatrizmilz Could you invite @kyle-messier as the co-author of the package? He has the administrator privilege of the repository to finalize the transfer of the repository to ropensci. Thank you!

@kyle-messier
Copy link

@ropensci-review-bot invite me to ropensci/chopin

@ropensci-review-bot
Copy link
Collaborator

Could not invite, you are not the author of the package

@beatrizmilz
Copy link

@beatrizmilz Could you invite @kyle-messier as the co-author of the package? He has the administrator privilege of the repository to finalize the transfer of the repository to ropensci. Thank you!

Hi @sigmafelix ! I saw your message this morning but was not sure how to proceed. I asked other editors and I'll write back soon, ok?

@sigmafelix
Copy link
Author

@ropensci-review-bot invite @kyle-messier to ropensci/chopin

@ropensci-review-bot
Copy link
Collaborator

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@ropensci-review-bot help

@maelle
Copy link
Member

maelle commented Oct 10, 2024

@sigmafelix I've now invited @kyle-messier.

Sorry for the lack of automation, it's tracked (ropensci/dev_guide#466)

@sigmafelix
Copy link
Author

@maelle Thank you for figuring it out for us. I'm glad to hear that the automated invitation will be available in the future.

@kyle-messier
Copy link

@ropensci-review-bot invite me to ropensci/chopin

@ropensci-review-bot
Copy link
Collaborator

Could not invite, you are not the author of the package

@sigmafelix
Copy link
Author

@maelle Could you check if the invitation was sent or processed? I couldn't find @kyle-messier on the member list of ropensci/chopin team.

@kyle-messier
Copy link

@maelle @beatrizmilz I am still not able to transfer the repository. It could be due to setting on our NIEHS GitHub enterprise. Before I ping our enterprise managers, could you confirm whether I should be able to see github.com/ropensci/chopin ? It is currently 404 not found for me.

@maelle
Copy link
Member

maelle commented Oct 10, 2024

@kyle-messier you should have received an invitation to https://github.com/orgs/ropensci/teams/chopin, I still see you as pending member. Can you check your email inbox?

On another hand it might be the case that you have to first transfer the repo to your personal account then to ropensci. Repo transfers are sometimes clunky in this way. In any case, official docs https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository#transferring-a-repository-owned-by-your-organization

@kyle-messier
Copy link

I apologize @maelle but I do not see an invitation email nor anything on my github account

@maelle
Copy link
Member

maelle commented Oct 11, 2024

I've just deleted the invitation and regenerated it, did it help at all?

@kyle-messier
Copy link

Yes, I received that invitation, thank you! It appears the repo transfer is now in process!

@maelle
Copy link
Member

maelle commented Oct 11, 2024

Yay, thanks for your patience 🎉

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

No branches or pull requests

8 participants