Closed grwhumphries closed 1 year ago
Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type @ropensci-review-bot help
for help.
:rocket:
Editor check started
:wave:
Hi @grwhumphries ! Thank you for making a full submission. We may experience a slight delay as @mpadge is offline next week and it appears we may need assistance with the editor check bot.
In the meantime, could you please edit your message to link your to your presubmission inquiry in #506 for record-keeping?
Thanks!
Hi @emilyriederer - thanks for that and no worries - just updated with the link to issue #506
git hash: e8f8f24f
Package License: GPL (>= 3) + file LICENSE
srr
package)This package is in the following categories:
:heavy_check_mark: All applicable standards [v0.1.0] have been documented in this package (47 complied with; 21 N/A standards)
Click to see the report of author-reported standards compliance of the package with links to associated lines of code, which can be re-generated locally by running the srr_report()
function from within a local clone of the repository.
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 | 285|
|internal |stochLAB | 56|
|internal |methods | 2|
|internal |utils | 2|
|imports |magrittr | 41|
|imports |stats | 37|
|imports |tidyr | 12|
|imports |rlang | 11|
|imports |dplyr | 8|
|imports |purrr | 7|
|imports |glue | 5|
|imports |tibble | 5|
|imports |logr | 4|
|imports |pracma | 3|
|imports |cli | NA|
|imports |data.table | NA|
|imports |foreach | NA|
|imports |msm | NA|
|suggests |rmarkdown | NA|
|suggests |knitr | NA|
|suggests |spelling | NA|
|suggests |testthat | NA|
|suggests |covr | 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(
c (33), mean (25), list (21), message (18), paste0 (16), for (15), pi (10), nrow (7), length (6), month.abb (6), rep (6), replace (6), deparse (5), if (5), round (5), seq (5), substitute (5), apply (4), beta (4), eval (4), names (4), sum (4), which (4), by (3), cos (3), data.frame (3), missing (3), return (3), sqrt (3), abs (2), colnames (2), data.matrix (2), dim (2), dirname (2), ifelse (2), intersect (2), match (2), matrix (2), min (2), months (2), ncol (2), numeric (2), pmin (2), sample (2), sapply (2), sin (2), array (1), as.integer (1), atan (1), ceiling (1), diff (1), findInterval (1), floor (1), is.null (1), max (1), mode (1), order (1), Reduce (1), switch (1), sys.call (1), t (1)
format_months (6), Day_Length (4), collide_length (3), generate_rotor_grids (3), get_avg_prob_collision (3), get_fhd_rotor (3), get_lac_factor (3), get_pcoll_grid (3), sampler_hd (3), band_crm (2), get_flux_factor (2), get_mig_flux_factor (2), get_phi_grid (2), get_prop_crh_fhd (2), get_x_grid (2), seq_months (2), check_fhd_vs_maxtip (1), crm_opt1 (1), crm_opt2 (1), crm_opt3 (1), crm_opt4 (1), get_collisions_basic (1), get_collisions_extended (1), get_risk_y (1), get_y_grid (1), sample_parameters (1), sample_turbine_mCRM (1)
%>% (41)
median (18), quantile (9), df (5), dt (2), rbeta (2), runif (1)
pivot_wider (4), separate (4), pivot_longer (2), replace_na (2)
expr (4), sym (4), format_error_bullets (2), fn_fmls_names (1)
filter (2), rename_with (2), slice_sample (2), mutate (1), select (1)
map (4), imap (1), iwalk (1), pmap (1)
glue_collapse (5)
add_column (4), tribble (1)
log_open (4)
interp1 (3)
is (2)
data (2)
base
stochLAB
magrittr
stats
tidyr
rlang
dplyr
purrr
glue
tibble
logr
pracma
methods
utils
This package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing.
The package has: - code in R (100% in 31 files) and - 2 authors - 1 vignette - 10 internal data files - 14 imported packages - 31 exported functions (median 22 lines of code) - 56 non-exported functions in R (median 26 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](https://docs.ropensci.org/pkgcheck/reference/checks_to_markdown.html) 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 | 31| 89.9| | |files_vignettes | 1| 68.4| | |files_tests | 32| 98.2| | |loc_R | 2175| 85.7| | |loc_vignettes | 326| 66.5| | |loc_tests | 880| 85.1| | |num_vignettes | 1| 64.8| | |data_size_total | 4622918| 99.7|TRUE | |data_size_median | 2018| 68.7| | |n_fns_r | 87| 72.8| | |n_fns_r_exported | 31| 79.2| | |n_fns_r_not_exported | 56| 70.6| | |n_fns_per_file_r | 2| 30.6| | |num_params_per_fn | 6| 79.0| | |loc_per_fn_r | 24| 67.9| | |loc_per_fn_r_exp | 22| 50.8| | |loc_per_fn_r_not_exp | 26| 73.5| | |rel_whitespace_R | 27| 90.8| | |rel_whitespace_vignettes | 21| 49.2| | |rel_whitespace_tests | 15| 77.5| | |doclines_per_fn_exp | 51| 64.2| | |doclines_per_fn_not_exp | 0| 0.0|TRUE | |fn_call_network_size | 156| 85.6| | ---
Click to see the interactive network visualisation of calls between objects in package
goodpractice
and other checks
#### 3a. Continuous Integration Badges
[![test-coverage.yaml](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions/workflows/test-coverage.yaml/badge.svg)](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions)
[![pkgdown.yaml](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions/workflows/pkgdown.yaml/badge.svg)](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions)
[![R-CMD-check.yaml](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions)
[![pkgcheck.yaml](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions/workflows/pkgcheck.yaml/badge.svg)](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions)
**GitHub Workflow Results**
| id|name |conclusion |sha | run_number|date |
|----------:|:--------------------------|:----------|:------|----------:|:----------|
| 2749423525|pages build and deployment |success |409934 | 50|2022-07-27 |
| 2749399803|pkgcheck |success |e8f8f2 | 11|2022-07-27 |
| 2749399805|pkgdown |success |e8f8f2 | 22|2022-07-27 |
| 2749399804|R-CMD-check |success |e8f8f2 | 26|2022-07-27 |
| 2749399802|test-coverage |success |e8f8f2 | 25|2022-07-27 |
---
#### 3b. `goodpractice` results
#### `R CMD check` with [rcmdcheck](https://r-lib.github.io/rcmdcheck/)
R CMD check generated the following notes:
1. checking installed package size ... NOTE
installed size is 6.8Mb
sub-directories of 1Mb or more:
data 6.3Mb
2. checking dependencies in R code ... NOTE
Namespaces in Imports field not imported from:
‘data.table’ ‘foreach’
All declared Imports should be used.
3. checking R code for possible problems ... NOTE
band_crm: no visible binding for global variable ‘Month’
band_crm: no visible binding for global variable ‘month’
mig_stoch_crm: no visible binding for global variable ‘RotorRadius’
mig_stoch_crm: no visible binding for global variable ‘BladeWidth’
mig_stoch_crm: no visible binding for global variable ‘RotorSpeed’
mig_stoch_crm: no visible binding for global variable ‘Pitch’
mig_stoch_crm: no visible global function definition for ‘contains’
sample_parameters: no visible binding for global variable ‘.’
sample_parameters: no visible binding for global variable ‘month’
sample_parameters: no visible binding for global variable ‘p’
sample_turbine_mCRM: no visible binding for global variable ‘month’
stoch_crm: no visible global function definition for ‘!<-’
stoch_crm: no visible binding for global variable ‘Month’
stoch_crm :
|package |version | |:--------|:---------| |pkgstats |0.1.1.4 | |pkgcheck |0.0.3.77 | |srr |0.0.1.167 |
This package is in top shape and may be passed on to a handling editor
Thanks for the submission @grwhumphries, and for bearing with us while we use submissions to refine our system. In your case, the above "srr" section reveals a bug which we didn't anticipate. I can now appreciate that our Guide for Authors of statistical packages isn't clear enough, and needs a sentence at the outset along the lines of:
All packages submitted for software peer review must document compliance with both General Standards, and at least one set of our category-specific standards.
Your package only documents compliance with the general standards, and needs to include statements of compliance with at least one specific category of standards. Updates to our checking system in response to your submission would now generate the following message:
srr
package):heavy_multiplication_x: Error: Package documents compliance only with general standards. Statistical packages must document compliance with at least one set of category-specific standards as well.
I'll leave you to discuss with @emilyriederer whether you might need to put a "Holding" label on this submission while you address the missing standards. Please accept our apologies for any confusion.
Thanks, @mpadge
Hi @grwhumphries - per Mark's comment, please let us know what sort of timeline you prefer for addressing the standards. I can put a holding
label in this issue in the meantime if you don't expect it to be a short-term priority. Whatever works best for you!
Hi @emilyriederer and @mpadge - sorry about the delay. I think I can address this within the week - I just need to get my head back into it. Hope that's okay?
Sounds great @grwhumphries ! No timeline pressure on our side. Only wanted to know about the tag for repo / issue-log hygiene but not a big deal either way.
@mpadge and @emilyriederer okay the latest version of stochLAB
(v1.1.1) has just been pushed and I think that covers out the standards for EDA and PD.
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Oops, something went wrong with our automatic package checks. Our developers have been notified and package checks will appear here as soon as we've resolved the issue. Sorry for any inconvenience.
@emilyriederer @mpadge - I just realized that the package check failed because the PD standards aren't merged into the package check yet. How do you want me to handle that?
Cheers G
git hash: d7d7034f
Important: All failing checks above must be addressed prior to proceeding
Package License: GPL (>= 3)
srr
package)This package is in the following category:
:heavy_check_mark: All applicable standards [v0.1.0] have been documented in this package (78 complied with; 38 N/A standards)
Click to see the report of author-reported standards compliance of the package with links to associated lines of code, which can be re-generated locally by running the srr_report()
function from within a local clone of the repository.
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 | 285|
|internal |stochLAB | 56|
|internal |methods | 2|
|internal |utils | 2|
|depends |tidyverse | NA|
|imports |magrittr | 41|
|imports |stats | 37|
|imports |tidyr | 12|
|imports |dplyr | 11|
|imports |rlang | 11|
|imports |purrr | 7|
|imports |glue | 5|
|imports |tibble | 5|
|imports |logr | 4|
|imports |pracma | 3|
|imports |cli | NA|
|imports |msm | NA|
|suggests |rmarkdown | NA|
|suggests |knitr | NA|
|suggests |spelling | NA|
|suggests |testthat | NA|
|suggests |covr | 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(
c (33), mean (25), list (21), message (18), paste0 (16), for (15), pi (10), nrow (7), length (6), month.abb (6), rep (6), replace (6), deparse (5), if (5), round (5), seq (5), substitute (5), apply (4), beta (4), eval (4), names (4), sum (4), which (4), by (3), cos (3), data.frame (3), missing (3), return (3), sqrt (3), abs (2), colnames (2), data.matrix (2), dim (2), dirname (2), ifelse (2), intersect (2), match (2), matrix (2), min (2), months (2), ncol (2), numeric (2), pmin (2), sample (2), sapply (2), sin (2), array (1), as.integer (1), atan (1), ceiling (1), diff (1), findInterval (1), floor (1), is.null (1), max (1), mode (1), order (1), Reduce (1), switch (1), sys.call (1), t (1)
format_months (6), Day_Length (4), collide_length (3), generate_rotor_grids (3), get_avg_prob_collision (3), get_fhd_rotor (3), get_lac_factor (3), get_pcoll_grid (3), sampler_hd (3), band_crm (2), get_flux_factor (2), get_mig_flux_factor (2), get_phi_grid (2), get_prop_crh_fhd (2), get_x_grid (2), seq_months (2), check_fhd_vs_maxtip (1), crm_opt1 (1), crm_opt2 (1), crm_opt3 (1), crm_opt4 (1), get_collisions_basic (1), get_collisions_extended (1), get_risk_y (1), get_y_grid (1), sample_parameters (1), sample_turbine_mCRM (1)
%>% (41)
median (18), quantile (9), df (5), dt (2), rbeta (2), runif (1)
pivot_wider (4), separate (4), pivot_longer (2), replace_na (2)
everything (2), filter (2), rename_with (2), slice_sample (2), (1), mutate (1), select (1)
expr (4), sym (4), format_error_bullets (2), fn_fmls_names (1)
map (4), imap (1), iwalk (1), pmap (1)
glue_collapse (5)
add_column (4), tribble (1)
log_open (4)
interp1 (3)
is (2)
data (2)
base
stochLAB
magrittr
stats
tidyr
dplyr
rlang
purrr
glue
tibble
logr
pracma
methods
utils
This package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing.
The package has: - code in R (100% in 31 files) and - 2 authors - 1 vignette - 10 internal data files - 12 imported packages - 31 exported functions (median 22 lines of code) - 56 non-exported functions in R (median 26 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](https://docs.ropensci.org/pkgcheck/reference/checks_to_markdown.html) 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 | 31| 89.9| | |files_vignettes | 1| 68.4| | |files_tests | 32| 98.2| | |loc_R | 2184| 85.8| | |loc_vignettes | 326| 66.5| | |loc_tests | 948| 86.1| | |num_vignettes | 1| 64.8| | |data_size_total | 4622918| 99.7|TRUE | |data_size_median | 2018| 68.7| | |n_fns_r | 87| 72.8| | |n_fns_r_exported | 31| 79.2| | |n_fns_r_not_exported | 56| 70.6| | |n_fns_per_file_r | 2| 30.6| | |num_params_per_fn | 6| 79.0| | |loc_per_fn_r | 24| 67.9| | |loc_per_fn_r_exp | 22| 50.8| | |loc_per_fn_r_not_exp | 26| 73.5| | |rel_whitespace_R | 27| 90.9| | |rel_whitespace_vignettes | 21| 49.2| | |rel_whitespace_tests | 15| 79.3| | |doclines_per_fn_exp | 51| 64.2| | |doclines_per_fn_not_exp | 0| 0.0|TRUE | |fn_call_network_size | 156| 85.6| | ---
Click to see the interactive network visualisation of calls between objects in package
goodpractice
and other checks#### 3a. Continuous Integration Badges [![test-coverage.yaml](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions/workflows/test-coverage.yaml/badge.svg)](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions) [![pkgdown.yaml](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions/workflows/pkgdown.yaml/badge.svg)](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions) [![R-CMD-check.yaml](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions) [![pkgcheck.yaml](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions/workflows/pkgcheck.yaml/badge.svg)](https://github.com/HiDef-Aerial-Surveying/stochLAB/actions) **GitHub Workflow Results** | id|name |conclusion |sha | run_number|date | |----------:|:--------------------------|:----------|:------|----------:|:----------| | 2934839587|pages build and deployment |success |43af2a | 56|2022-08-26 | | 2934816348|pkgcheck |failure |d7d703 | 16|2022-08-26 | | 2934816354|pkgdown |success |d7d703 | 28|2022-08-26 | | 2934816353|R-CMD-check |success |d7d703 | 31|2022-08-26 | | 2934816352|test-coverage |success |d7d703 | 30|2022-08-26 | --- #### 3b. `goodpractice` results #### `R CMD check` with [rcmdcheck](https://r-lib.github.io/rcmdcheck/) R CMD check generated the following notes: 1. checking installed package size ... NOTE installed size is 6.8Mb sub-directories of 1Mb or more: data 6.3Mb 2. checking dependencies in R code ... NOTE Package in Depends field not imported from: ‘tidyverse’ These packages need to be imported from (in the NAMESPACE file) for when this namespace is loaded but not attached. 3. checking R code for possible problems ... NOTE mig_stoch_crm: no visible global function definition for ‘as_tibble’ Undefined global functions or variables: as_tibble R CMD check generated the following check_fails: 1. cyclocomp 2. no_description_depends 3. no_import_package_as_a_whole 4. rcmdcheck_depends_not_imported_from 5. rcmdcheck_undefined_globals 6. rcmdcheck_reasonable_installed_size #### Test coverage with [covr](https://covr.r-lib.org/) Package coverage: 75.68 #### Cyclocomplexity with [cyclocomp](https://github.com/MangoTheCat/cyclocomp) The following functions have cyclocomplexity >= 15: function | cyclocomplexity --- | --- validate_inputs | 99 stoch_crm | 51 band_crm | 33 sample_parameters | 26 mig_stoch_crm | 24 val_df_columns | 23 val_pars_df | 17 #### Static code analyses with [lintr](https://github.com/jimhester/lintr) [lintr](https://github.com/jimhester/lintr) found the following 414 potential issues: message | number of times --- | --- Avoid 1:length(...) expressions, use seq_len. | 1 Avoid 1:nrow(...) expressions, use seq_len. | 4 Avoid length(...):1 expressions, use seq_len. | 1 Avoid library() and require() calls in packages | 1 Avoid using sapply, consider vapply instead, that's type safe | 2 Lines should not be more than 80 characters. | 405
|package |version | |:--------|:---------| |pkgstats |0.1.1.20 | |pkgcheck |0.1.0.21 | |srr |0.0.1.180 |
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
@emilyriederer One of the statistical categories this package complies with is "Probability Distributions", which is currently in draft-mode only. I've implemented a corresponding "dev" branch of the srr
package which the above checks use. These dev branches should be merged by mid-September 2022. Until then please note the following:
remotes::install_github("ropensci-review-tools/srr@dev")
All checks will then be re-directed to current "dev" branch of standards including the new categories;
Thanks both, and great to have submissions really pushing our system along! :rocket: :bullettrain_side:
@emilyriederer and @mpadge I've just re-run the package check with the srr dev branch and that seems to have passed. I also fixed the issue above (no returns documented) - which I guess is a new check as that wasn't picked up in previous checks? It should be ready to go again now
Thanks @grwhumphries ! This is all great news. We will begin looking for an editor and hope to connect you shortly
Hi @grwhumphries - I'm delighted to introduce @stephaniehicks as the handling editor for this submission. Thank you both for your work on this!
@ropensci-review-bot assign @stephaniehicks as editor
Assigned! @stephaniehicks is now the editor
@stephaniehicks - nice to meet you and looking forward to working with you
@ropensci-review-bot seeking reviewers
I'm sorry @stephaniehicks, I'm afraid I can't do that. That's something only editors are allowed to do.
Hi @grwhumphries, great to meet you too. I apologize for my slow response on this. I'm working on identifying reviewers.
@mpadge can you confirm that I have access to @ropensci-review-bot seeking reviewers
. At the moment, it looks like I don't have access to it and will need you or another editor's help here to initiate the bot. Thanks!
@stephaniehicks Sorry about that, an oversight on our part. You should now be able to access all bot commands.
@ropensci-review-bot seeking reviewers
Please add this badge to the README of your package repository:
[![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/551_status.svg)](https://github.com/ropensci/software-review/issues/551)
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
@mpadge Thanks! It looks like it is working now. Appreciate the help.
@grwhumphries, feel free to add the badge to the README of your package 👆
@ropensci-review-bot add @kstreet13
I'm sorry human, I don't understand that. You can see what commands I support by typing:
@ropensci-review-bot help
@ropensci-review-bot assign @kstreet13 as reviewer
@kstreet13 added to the reviewers list. Review due date is 2022-11-01. Thanks @kstreet13 for accepting to review! Please refer to our reviewer guide.
rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more.
@kstreet13: If you haven't done so, please fill this form for us to update our reviewers records.
@mpadge just a small note about the stats dev guide:
The Handling Editor Checklist (https://stats-devguide.ropensci.org/pkgsubmission.html#handling-editor-checklist) says to use @ropensci-review-bot add <@GITHUB_USERNAME> to reviewers
to add a reviewer, but following @ropensci-review-bot help
, I noticed it is @ropensci-review-bot assign xxxxx as reviewer
(i.e. need to replace add
with assign
).
Hi everyone, I'd like to introduce Kelly Street (@kstreet13) (https://kellystreet.org) who is an Assistant Professor at UCS. He has kindly agreed to be a reviewer here. However, I wanted to mention that he will need some time to review the guide to go through the content there first. Just a heads up! Thank you again @kstreet13 and let me know if you have any questions!
Sorry for confusion @stephaniehicks! The bot should recognise any one of "add to reviewers" "add as reviewer", "assign as reviewer", or "assign to reviewers". I think the preceding glitch was because of missing "to reviewers". Happy that all now seems good :smile:
Ah! that makes sense. Thanks for the clarification!
:calendar: @kstreet13 you have 2 days left before the due date for your review (2022-11-01).
Apologies for the delay, everybody. I was unclear on the expectations for reviewers and ended up wasting some effort checking various standards in great detail. I will have a review for you as soon as I can!
Thank you @kstreet13! Please let me know if there's anything I can do to help support you in the review process. We greatly appreciate your time and effort on this.
@ropensci-review-bot assign @clairemas0n as reviewer
@clairemas0n added to the reviewers list. Review due date is 2022-11-24. Thanks @clairemas0n for accepting to review! Please refer to our reviewer guide.
rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more.
@clairemas0n: If you haven't done so, please fill this form for us to update our reviewers records.
Hi everyone, I'd like to welcome Claire Mason (@clairemas0n) to the thread! She has kindly agreed to be a reviewer here. Thank you again @clairemas0n and let me know if you have any questions!
Sorry again for the delay! As I said, this was my first time reviewing for ROpenSci and I was a little unclear on the expectations.
The following standards currently deemed non-applicable (through tags of @srrstatsNA
) could potentially be applied to future versions of this software:
stoch_crm
and band_crm
.validate_inputs
scripts, but this is not explicitly tested, as far as I can tell (ie. by having unit tests that give invalid inupts and checking for the correct error message).Please also comment on any standards which you consider either particularly well, or insufficiently, documented.
validate_inputs
)For packages aiming for silver or gold badges:
The package includes all the following forms of documentation:
How well are algorithms encoded?
The overall structure looks good to me, though some of the details (both of the method and the implementation) are lost on me. I'm guessing the big for
loop that runs the model a bunch of times with different parameters is the most time-consuming part, so one potential future improvement would be to run those in parallel rather than sequentially.
Is the choice of computer language appropriate for that algorithm, and/or envisioned use of package? Definitely. This is a stats-heavy model, so R seems like a natural choice.
Are aspects of algorithmic scaling sufficiently documented and tested? I'm not sure this question is relevant. It (presumably) scales linearly with the number of iterations, but most functions parameters (that may or may not be inferred from data) rather than directly using any data.
Are there any aspects of algorithmic implementation which could be improved? The parallelization mentioned above could help in cases where users want to run more iterations or try more models. But overall, the examples run pretty quickly, so it seems to be pretty well optimized (and I'm not qualified to comment on the correctness of the implementation, but that seems to checked by the tests).
Regardless of actual coverage of tests, are there any fundamental software operations which are not sufficiently expressed in tests?
I might be missing something, but I don't see any code coverage statistics. That said, tests seem to focus on assessing the correctness of the implementation. This is very important, but misses some of the more granular stuff like making sure every error/warning message works (as in G5.8). test-validate_inputs.R
has some of this (and then some more, commented out), but given that there are SO MANY inputs to the main functions in this package, it definitely seems like these tests should be more extensive.
Is there a need for extended tests, or if extended tests exists, have they been implemented in an appropriate way, and are they appropriately documented? I think there need to be more tests, but not an explicit set of "extended tests". The additional checks for appropriate warnings/errors, while numerous, should be relatively quick to run.
Do visualisations aid the primary purposes of statistical interpretation of results? N/A
Are there any aspects of visualisations which could risk statistical misinterpretation? N/A
Is the package well designed for its intended purpose? Mostly. It enables the usage of a few different models for a common purpose and while there are a lot of exported functions, most users will probably only interact with a few. The main issue is the complexity of those functions.
In relation to External Design: Do exported functions and the relationships between them enable general usage of the package?
The functions listed on the main documentation page (stoch_crm
and band_crm
) are extrememly complex and I think this makes them difficult to use. stoch_crm
has 31 arguments, which actually hides the number of parameters in the model, as many of these arguments expect data frames containing multiple parameters. I recognize that this isn't the authors' fault (it's a complex model and they have worked to make it more accessible), but the resulting code is still fairly intimidating. I don't know how familiar users will be with some of these specific arguments, but if it is at all possible to provide more reasonable default values, I think that would help.
In relation to External Design: Do exported functions best serve inter-operability with other packages? I'm not familiar with any other packages that handle similar questions.
In relation to Internal Design: Are algorithms implemented appropriately in terms of aspects such as efficiency, flexibility, generality, and accuracy? I think so.
In relation to Internal Design: Could ranges of admissible input structures, or form(s) of output structures, be expanded to enhance inter-operability with other packages?
A little bit, yes. All of the `_parsarguments expect a one-row data frame with column names
"mean"and
"sd", but I think these could accept numeric vectors, as well. You could require names (as in
c(mean = 0, sd = 1)`), or just make it clear in the documentation of these arguments that the first element is assumed to be the mean and the second is the SD.*
Estimated hours spent reviewing: 20
The guidelines don't seem too concerned about this, but my biggest concern with the package is the vignette. This is usually where I start when I want to use a new package, but it's very sparse and doesn't explain much. I would like for the vignette to provide more background and explanation, like the main package documentation. Also, none of the code is actually executed and some of it doesn't even run (there's a stray "messages" that should have been commented out in the Multiscenario Example. This is also present in the README).
I also want to reiterate that if there's anything the authors can do to reduce the number of arguments, provide more suggested default values, or in any way simplify the user experience, that would be greatly appreciated and make the package more approachable.
Some other minor notes:
if(missing(bird_dens_opt)){
bird_dens_opt <- "tnorm"
}
but should probably look like this:
bird_dens_opt <- match.arg(bird_dens_opt)
and match.arg
will automatically treat the first possible value as the default.
stoch_crm
has two checks for out_period
, but I'm guessing the second one was supposed to be out_format
.log_file = paste0(getwd(), "scrm_example.log")
. Since this doesn't include a separator it's creating something with the name [currentdirectory]scrm_example.log
in the parent of the current directory. If that's not the intended behavior, it might be safer to replace this with file.path(getwd(), "scrm_example.log")
.validate_inputs.R
that could probably be removed@kstreet13 - thank you very much for the extensive review of our package! All of your comments are greatly appreciated and we owe you one.
@stephaniehicks @mpadge - what are the next steps for us?
:calendar: @clairemas0n you have 2 days left before the due date for your review (2022-11-24).
Date accepted: 2023-02-03
Submitting Author Name: Grant Humphries Submitting Author Github Handle: !--author1-->@grwhumphries<!--end-author1-- Other Package Authors Github handles: (comma separated, delete if none) !--author-others-->@bcaneco<!--end-author-others-- Repository: https://github.com/HiDef-Aerial-Surveying/stochLAB Version submitted: 1.1.1 Submission type: Stats Badge grade: gold Editor: !--editor-->@stephaniehicks<!--end-editor-- Reviewers: @kstreet13, @clairemas0n
Due date for @kstreet13: 2022-11-01 Due date for @clairemas0n: 2022-11-24Archive: TBD Version accepted: TBD Language: en
Pre-submission Inquiry
General Information
Who is the target audience and what are scientific applications of this package? This package is designed for consultants or scientists working in the offshore windfarm industry who are looking to quantify the risks of collision to seabirds
Paste your responses to our General Standard G1.1 here, describing whether your software is:
Core calculations follow the work developed by Masden (2015)
Badging
What grade of badge are you aiming for? (bronze, silver, gold) Gold
If aiming for silver or gold, describe which of the four aspects listed in the Guide for Authors chapter the package fulfils (at least one aspect for silver; three for gold) Compliance with a good number of standards beyond those identified as minimally necessary. This will require reviewers and authors to agree on identification of both a minimal subset of necessary standards, and a full set of potentially applicable standards. This aspect may be considered fulfilled if at least one quarter of the additional potentially applicable standards have been met, and should definitely be considered fulfilled if more than one half have been met.
Technical checks
Confirm each of the following by checking the box.
autotest
checks on the package, and ensured no tests fail.srr_stats_pre_submit()
function confirms this package may be submitted.pkgcheck()
function confirms this package may be submitted - alternatively, please explain reasons for any checks which your package is unable to pass.This package:
Publication options
Code of conduct