software-review
software-review copied to clipboard
forcis: An R client to access the FORCIS database
Submitting Author Name: Nicolas Casajus Submitting Author Github Handle: @ahasverus Other Package Authors Github handles: (comma separated, delete if none) @MatGreco90, @ChaabaneS, @xgiraud Repository: https://github.com/frbcesab/forcis Version submitted: 0.1.0 Submission type: Standard Editor: @beatrizmilz Reviewers: TBD
Archive: TBD Version accepted: TBD Language: en
- Paste the full DESCRIPTION file inside a code block below:
Package: forcis
Type: Package
Title: An R Client to Access the FORCIS Database
Version: 0.1.0
Authors@R: c(
person(given = "Nicolas",
family = "Casajus",
role = c("aut", "cre", "cph"),
email = "[email protected]",
comment = c(ORCID = "0000-0002-5537-5294")),
person(given = "Mattia",
family = "Greco",
role = "aut",
email = "[email protected]",
comment = c(ORCID = "0000-0003-2416-6235")),
person(given = "Sonia",
family = "Chaabane",
role = "aut",
email = "[email protected]",
comment = c(ORCID = "0000-0002-4653-8610")),
person(given = "Xavier",
family = "Giraud",
role = "aut",
email = "[email protected]",
comment = c(ORCID = "0000-0001-5067-8176")),
person(given = "Thibault",
family = "de Garidel-Thoron",
role = "aut",
email = "[email protected]",
comment = c(ORCID = "0000-0001-8983-9571")),
person(given = "Khalil",
family = "Hammami",
role = "ctb",
email = "[email protected]"))
Description: Provides an interface to the FORCIS database
(<https://zenodo.org/doi/10.5281/zenodo.7390791>) on global foraminifera
distribution. This package allows to download and to handle FORCIS data.
It is part of the FRB-CESAB working group FORCIS.
<https://www.fondationbiodiversite.fr/en/the-frb-in-action/programs-and-projects/le-cesab/forcis/>.
URL: https://frbcesab.github.io/forcis
BugReports: https://github.com/FRBCesab/forcis/issues
License: GPL (>= 2)
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.2
VignetteBuilder: knitr
Depends:
R (>= 2.10)
Imports:
dplyr,
ggplot2,
jsonlite,
rlang,
sf,
tidyr,
utils,
vroom
Suggests:
fs,
knitr,
rmarkdown,
testthat (>= 3.0.0),
withr
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.):
- [x] data retrieval
- [ ] data extraction
- [x] 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):
This package is designed to download the FORCIS data files hosted on Zenodo. It includes functions to download (data retrieval), select, filter, reshape, and visualize data (data munging).
- Who is the target audience and what are scientific applications of this package?
This package should be of interest to scientists working on Foraminifera species distribution and interested in the FORCIS database (spatial analyses, time series analyses, etc.). The package have been developed to facilitate the data wrangling to avoid some pitfalls and to easily get data ready to be analyzed/visualized.
- Are there other R packages that accomplish the same thing? If so, how does yours differ or meet our criteria for best-in-category?
No other package exists to handle the FORCIS database. Note that we are authors of the database and already published a Data paper describing the database.
- (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.
Pre-submission inquiry: #655 Editor: @adamhsparks
- Explain reasons for any
pkgcheckitems which your package is unable to pass.
The function
pkgcheck::pkgcheck()returns the following report:── forcis 0.1.0 ──────────────────────────────────────────── ✔ 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 97.4%. ✔ R CMD check found no errors. ✔ R CMD check found no warnings. ℹ Current status: ✔ This package may be submitted.The package
goodpracticereturns warnings:
- Write unit tests: some functions are difficult to test (HTTP requests)
- Avoid calling
setwd(): this function is used in unit tests in combination withwithr::defer()
Technical checks
Confirm each of the following by checking the box.
- [x] I have read the rOpenSci packaging guide.
- [x] I have read the author guide and I expect to maintain this package for at least 2 years or to find a replacement.
This package:
- [x] does not violate the Terms of Service of any service it interacts with.
- [x] has a CRAN and OSI accepted license.
- [x] contains a README with instructions for installing the development version.
- [x] includes documentation with examples for all functions, created with roxygen2.
- [x] contains a vignette with examples of its essential functions and uses.
- [x] has a test suite.
- [x] has continuous integration, including reporting of test coverage.
Publication options
-
[x] Do you intend for this package to go on CRAN?
-
[ ] Do you intend for this package to go on Bioconductor?
-
[x] Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:
MEE Options
- [x] The package is novel and will be of interest to the broad readership of the journal.
- [x] The manuscript describing the package is no longer than 3000 words.
- [x] 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
- [x] I agree to abide by rOpenSci's Code of Conduct during the review process and in maintaining my package should it be accepted.
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:
Checks for forcis (v0.1.0)
git hash: e80b91c5
- :heavy_check_mark: Package name is available
- :heavy_check_mark: has a 'codemeta.json' file.
- :heavy_check_mark: has a 'contributing' file.
- :heavy_check_mark: uses 'roxygen2'.
- :heavy_check_mark: 'DESCRIPTION' has a URL field.
- :heavy_check_mark: 'DESCRIPTION' has a BugReports field.
- :heavy_check_mark: Package has at least one HTML vignette
- :heavy_check_mark: All functions have examples.
- :heavy_check_mark: Package has continuous integration checks.
- :heavy_check_mark: Package coverage is 97.4%.
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
Package License: GPL (>= 2)
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 | 105 |
| internal | forcis | 66 |
| internal | graphics | 3 |
| imports | utils | 56 |
| imports | sf | 12 |
| imports | vroom | 10 |
| imports | jsonlite | 3 |
| imports | dplyr | NA |
| imports | ggplot2 | NA |
| imports | rlang | NA |
| imports | tidyr | NA |
| suggests | fs | NA |
| suggests | knitr | NA |
| suggests | rmarkdown | NA |
| suggests | testthat | 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
file.path (11), c (7), which (7), data.frame (6), for (6), seq_len (6), suppressWarnings (6), length (5), list.files (5), rbind (5), unique (5), as.numeric (4), colnames (3), tryCatch (3), url (3), drop (2), file (2), format (2), lapply (2), months (2), paste0 (2), strsplit (2), unlist (2), as.Date (1), gsub (1), nrow (1), options (1), readline (1), readLines (1), which.max (1)
forcis
get_species_names (11), data_to_sf (5), species_list (5), get_available_versions (3), get_metadata (3), cpr_north_filename (2), cpr_south_filename (2), get_current_version (2), get_latest_version (2), add_data_type (1), check_field_in_data (1), check_if_character (1), check_if_df (1), check_if_path_exists (1), check_if_valid_taxonomy (1), check_required_columns (1), check_unique_taxonomy (1), check_version (1), compute_abundances (1), compute_concentrations (1), compute_frequencies (1), convert_to_long_format (1), crs_robinson (1), data_types (1), date_format (1), download_file (1), download_forcis_db (1), filter_by_bbox (1), filter_by_month (1), filter_by_ocean (1), filter_by_polygon (1), filter_by_species (1), filter_by_year (1), geom_basemap (1), get_data_type (1), get_required_columns (1), get_version_metadata (1), plankton_net_filename (1), pump_filename (1), sediment_trap_filename (1)
utils
data (55), download.file (1)
sf
st_intersects (6), st_bbox (3), st_crs (2), st_as_sf (1)
vroom
vroom (10)
graphics
polygon (3)
jsonlite
read_json (3)
NOTE: Some imported packages appear to have no associated function calls; please ensure with author that these 'Imports' are listed appropriately.
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 33 files) and
- 5 authors
- 6 vignettes
- no internal data file
- 8 imported packages
- 31 exported functions (median 27 lines of code)
- 81 non-exported functions in R (median 16 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 | 33 | 90.1 | |
| files_vignettes | 6 | 96.8 | |
| files_tests | 35 | 98.0 | |
| loc_R | 1549 | 76.5 | |
| loc_vignettes | 418 | 71.2 | |
| loc_tests | 1200 | 86.4 | |
| num_vignettes | 6 | 97.7 | TRUE |
| n_fns_r | 112 | 77.5 | |
| n_fns_r_exported | 31 | 78.2 | |
| n_fns_r_not_exported | 81 | 77.6 | |
| n_fns_per_file_r | 2 | 31.7 | |
| num_params_per_fn | 2 | 8.2 | |
| loc_per_fn_r | 19 | 57.7 | |
| loc_per_fn_r_exp | 27 | 58.8 | |
| loc_per_fn_r_not_exp | 16 | 53.2 | |
| rel_whitespace_R | 48 | 92.5 | |
| rel_whitespace_vignettes | 68 | 89.5 | |
| rel_whitespace_tests | 55 | 95.6 | TRUE |
| doclines_per_fn_exp | 38 | 46.8 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 157 | 84.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
GitHub Workflow Results
| id | name | conclusion | sha | run_number | date |
|---|---|---|---|---|---|
| 11082922089 | pages build and deployment | success | 702763 | 164 | 2024-09-28 |
| 11082912111 | pkgdown | success | e80b91 | 199 | 2024-09-28 |
| 11082809930 | R CMD Check | success | e80b91 | 198 | 2024-09-28 |
| 11082809923 | Test coverage | success | e80b91 | 94 | 2024-09-28 |
| 11082912112 | Update CITATION.cff | success | e80b91 | 23 | 2024-09-28 |
3b. goodpractice results
R CMD check with rcmdcheck
R CMD check generated the following check_fail:
- no_import_package_as_a_whole
Test coverage with covr
Package coverage: 97.38
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found the following 7 potential issues:
| message | number of times |
|---|---|
| Avoid changing the working directory, or restore it in on.exit | 2 |
| Avoid library() and require() calls in packages | 5 |
Package Versions
| package | version |
|---|---|
| pkgstats | 0.1.6.17 |
| pkgcheck | 0.1.2.58 |
Editor-in-Chief Instructions:
This package is in top shape and may be passed on to a handling editor
@ropensci-review-bot assign @beatrizmilz as editor
Assigned! @beatrizmilz is now the editor
Hi @ahasverus! I'm Beatriz, and I'll be the editor for your submission. 👋
Editor checks:
- [x] 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,
- [x] Is the case for the package well made?
- [x] Is the reference index page clear (grouped by topic if necessary)?
- [x] Are vignettes readable, sufficiently detailed and not just perfunctory?
- [x] Fit: The package meets criteria for fit and overlap.
- [x] 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?
- [x] Contributing information: Is the documentation for contribution clear enough e.g. tokens for tests, playgrounds?
- [x] License: The package has a CRAN or OSI accepted license.
- [x] 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? (there are no open issues)
Editor comments
Hi @ahasverus ! Congratulations for you and the team for this great package, and also for the [publication of the data paper on Nature] (https://www.nature.com/articles/s41597-023-02264-2).
The comments below are related to the Editor Checks above.
- (1) In the vignette "Database versions", there is a paragraph that is not clear to me:
A good practice to ensure that the user works with the latest version of the database might be to add this line at the beginning of the script:
download_forcis_db(version = NULL, ...)
- (2) In the vignette Select, reshape, and filter data: it's not clear to me what the required columns mean. I saw the page for the function
get_required_columns(), and there is a list of columns. But could it be possible to describe a bit more? Why are they required? Is that because these columns are the most important for basic analysis?
- (3) In the vignettes (for example Select, reshape, and filter data): The names of the sections are the names of functions. I think it's best to name sections with a description of the task. You can see some examples in vignettes of other packages in rOpenSci: magick, tabulapdf, etc.
For example:
How it is now:
On this page
Setup
select_taxonomy()
select_forcis_columns()
filter_by_month()
filter_by_year()
filter_by_bbox()
filter_by_ocean()
filter_by_polygon()
filter_by_species()
convert_to_long_format()
Idea: (this is just an example)
Setup
Selecting columns
Selecting columns by taxonomy
Selecting required columns
Filtering rows
Filter by month of data collection
Filter by year of data collection
Filter by location (bounding box)
Filter by ocean
Filter by polygon
Filter by species
Reshaping
Convert to long format
- (4) About tests for fuctions that creates plots, in the dev guide is said:
For testing your functions creating plots, we suggest using vdiffr, an extension of the testthat package that relies on testthat snapshot tests.
From what I checked in some tests (eg. test-plot_record_by_month.R), the tests verify the class of the plot created. Could you improve the tests for the functions that create plots using vdiffr?
- (5) About testing the download functions: I looked up the tests for the download function but I'm not sure if it follows the best practices. I need some time to read more about testing functions that access resources on the web (eg. the dev guide recommends the book HTTP testing in R). As you wrote in the submission, "some functions are difficult to test (HTTP requests)". I'll be back with that feedback soon!
- (6) This is more of a question. In the package webpage, it says that the package has been developed for the Centre for the Synthesis and Analysis of Biodiversity. Does this mean that they are the funder? If so, they can be added as
fndin the authors list. This post can be useful to understand these three-letter-code used in the authors list on DESCRIPTION.
Hi @beatrizmilz!
Thank you for this first round of comments. I will start looking into them in the next few days and come back to you as soon as possible.
Hi @beatrizmilz!
Thank you for this first round of comments. I will start looking into them in the next few days and come back to you as soon as possible.
Hi! I hope the comments are helpful. Most of the comments are suggestions, feel free to work on the ones that makes sense for you.
The comments about testing are the most important, since they are recommendations from the dev guide!
Hi @beatrizmilz!
No, all your comments are very useful. I have started to work on some of them.
- (1) In the vignette "Database versions", there is a paragraph that is not clear to me:
A good practice to ensure that the user works with the latest version of the database might be to add this line at the beginning of the script:
download_forcis_db(version = NULL, ...)
Answer: Thanks for reporting the lack of clarity of this section. I have added a few sentences to clarify this paragraph in the vignette Database versions (commit 3ab5baa). I hope it's clearer.
- (2) In the vignette Select, reshape, and filter data: it's not clear to me what the required columns mean. I saw the page for the function get_required_columns(), and there is a list of columns. But could it be possible to describe a bit more? Why are they required? Is that because these columns are the most important for basic analysis?
Answer: I have added a few sentences to explain why these columns are required in the vignette Select, reshape, and filter data and in the documentation of the function get_required_columns() (commit 06a053b).
- (3) In the vignettes (for example Select, reshape, and filter data): The names of the sections are the names of functions. I think it's best to name sections with a description of the task. You can see some examples in vignettes of other packages in rOpenSci: magick, tabulapdf, etc.
Answer: Thanks for this suggestion. I have modified the section names in the vignettes Select, reshape, and filter data and Data visualization (commit 81db6ae).
- (6) This is more of a question. In the package webpage, it says that the package has been developed for the Centre for the Synthesis and Analysis of Biodiversity. Does this mean that they are the funder? If so, they can be added as fnd in the authors list. This post can be useful to understand these three-letter-code used in the authors list on
DESCRIPTION.
Answer: Indeed, the research group FORCIS has been funded by the FRB-CESAB. I have added it to the DESCRIPTION file with the role fnd (commit 6bd6e2b).
Regarding your comments (4) and (5), I need to read more about the packages vdiffr and httptest to improve and implement unit tests for plotting functions and HTTP requests.
I will come back to you very soon. Thanks again.
Hi @beatrizmilz!
I finally had to time to improve unit tests for plotting functions as you recommended here:
- (4) About tests for fuctions that creates plots, in the dev guide is said: [...] From what I checked in some tests (eg. test-plot_record_by_month.R), the tests verify the class of the plot created. Could you improve the tests for the functions that create plots using vdiffr?
Answer: Done in commit d0f1636.
Still trying to understand how to use the httptest package for testing HTTP requests.
Nicolas
Dear @ahasverus FYI I just started my EiC rotation. I see you responded to many of @beatrizmilz's comments. Is there anything else you would like to do before @beatrizmilz considers your changes and moves on to seeking reviewers?
Hi @maurolepore I still need to improve unit tests for API requests. I plan to do this today or tomorrow.
Hi @maurolepore
I have just adapted unit tests for HTTP requests as suggested in this comment:
(5) About testing the download functions: I looked up the tests for the download function but I'm not sure if it follows the best practices. I need some time to read more about testing functions that access resources on the web (eg. the dev guide recommends the book HTTP testing in R). As you wrote in the submission, "some functions are difficult to test (HTTP requests)". I'll be back with that feedback soon!
Answer: Done in commit 15383d8 using the httptest2 package.
I think we've answered all the comments raised by @beatrizmilz and we'are ready for the next steps of the review.
Thanks! Nicolas
@ahasverus that's great news, thanks! You'll continue with @beatrizmilz as the handling editor.
@ahasverus just to let you know I'll reach out to @beatrizmilz to check availability. Feel free to ping me if you feel we need a reminder.
Hi @maurolepore
I have just adapted unit tests for HTTP requests as suggested in this comment:
(5) About testing the download functions: I looked up the tests for the download function but I'm not sure if it follows the best practices. I need some time to read more about testing functions that access resources on the web (eg. the dev guide recommends the book HTTP testing in R). As you wrote in the submission, "some functions are difficult to test (HTTP requests)". I'll be back with that feedback soon!
Answer: Done in commit 15383d8 using the httptest2 package.
I think we've answered all the comments raised by @beatrizmilz and we'are ready for the next steps of the review.
Thanks! Nicolas
Great! @ahasverus Sorry for the delay, Nicolas. And thank you for improvements! I will move forward with the review process.
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Wonderful! Thanks @beatrizmilz
@ropensci-review-bot seeking reviewers
Please add this badge to the README of your package repository:
[](https://github.com/ropensci/software-review/issues/660)
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 @ahasverus I don't know why the check package results didn't appear there. The logs seems to indicate a glitch with the GitHub cli. I'll re-trigger them manually ...
Checks for forcis (v0.1.0.9000)
git hash: 053a879d
- :heavy_check_mark: Package name is available
- :heavy_check_mark: has a 'codemeta.json' file.
- :heavy_check_mark: has a 'contributing' file.
- :heavy_check_mark: uses 'roxygen2'.
- :heavy_check_mark: 'DESCRIPTION' has a URL field.
- :heavy_check_mark: 'DESCRIPTION' has a BugReports field.
- :heavy_check_mark: Package has at least one HTML vignette
- :heavy_check_mark: All functions have examples.
- :heavy_check_mark: Package has continuous integration checks.
- :heavy_check_mark: Package coverage is 98.8%.
- :heavy_multiplication_x: Default GitHub branch of 'master' is not acceptable.
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
Important: All failing checks above must be addressed prior to proceeding
Package License: GPL (>= 2)
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 | 124 |
| internal | forcis | 67 |
| internal | graphics | 3 |
| imports | utils | 58 |
| imports | sf | 12 |
| imports | vroom | 10 |
| imports | httr2 | 4 |
| imports | dplyr | NA |
| imports | ggplot2 | NA |
| imports | rlang | NA |
| imports | tidyr | NA |
| suggests | fs | NA |
| suggests | httptest2 | NA |
| suggests | knitr | NA |
| suggests | rmarkdown | NA |
| suggests | testthat | NA |
| suggests | vdiffr | 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
data.frame (14), file.path (11), lapply (8), c (7), which (7), for (6), seq_len (6), suppressWarnings (6), length (5), list.files (5), rbind (5), unique (5), as.numeric (4), colnames (3), url (3), drop (2), file (2), format (2), ifelse (2), is.null (2), months (2), paste0 (2), strsplit (2), unlist (2), version (2), as.Date (1), gsub (1), mode (1), nrow (1), options (1), q (1), readline (1), readLines (1), which.max (1)
forcis
get_species_names (11), data_to_sf (5), species_list (5), get_available_versions (3), get_metadata (3), cpr_north_filename (2), cpr_south_filename (2), get_current_version (2), get_latest_version (2), add_data_type (1), check_field_in_data (1), check_if_character (1), check_if_df (1), check_if_path_exists (1), check_if_valid_taxonomy (1), check_required_columns (1), check_unique_taxonomy (1), check_version (1), compute_abundances (1), compute_concentrations (1), compute_frequencies (1), convert_to_long_format (1), crs_robinson (1), data_types (1), date_format (1), download_file (1), download_forcis_db (1), filter_by_bbox (1), filter_by_month (1), filter_by_ocean (1), filter_by_polygon (1), filter_by_species (1), filter_by_year (1), geom_basemap (1), get_data_type (1), get_required_columns (1), get_version_metadata (1), plankton_net_filename (1), pump_filename (1), sediment_trap_filename (1), zenodo_id (1)
utils
data (57), download.file (1)
sf
st_intersects (6), st_bbox (3), st_crs (2), st_as_sf (1)
vroom
vroom (10)
httr2
req_url_query (2), req_perform (1), request (1)
graphics
polygon (3)
NOTE: Some imported packages appear to have no associated function calls; please ensure with author that these 'Imports' are listed appropriately.
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 34 files) and
- 5 authors
- 6 vignettes
- no internal data file
- 8 imported packages
- 31 exported functions (median 27 lines of code)
- 81 non-exported functions in R (median 16 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 | 33 | 90.2 | |
| files_inst | 1 | 95.8 | |
| files_vignettes | 6 | 96.9 | |
| files_tests | 35 | 98.0 | |
| loc_R | 1570 | 76.7 | |
| loc_inst | 32 | 27.4 | |
| loc_vignettes | 419 | 71.5 | |
| loc_tests | 1214 | 86.3 | |
| num_vignettes | 6 | 97.6 | TRUE |
| n_fns_r | 112 | 77.7 | |
| n_fns_r_exported | 31 | 78.4 | |
| n_fns_r_not_exported | 81 | 77.6 | |
| n_fns_per_file_r | 2 | 31.6 | |
| num_params_per_fn | 2 | 8.2 | |
| loc_per_fn_r | 19 | 57.5 | |
| loc_per_fn_r_exp | 27 | 58.8 | |
| loc_per_fn_r_not_exp | 16 | 52.8 | |
| rel_whitespace_R | 49 | 92.8 | |
| rel_whitespace_inst | 34 | 34.8 | |
| rel_whitespace_vignettes | 69 | 89.9 | |
| rel_whitespace_tests | 56 | 95.8 | TRUE |
| doclines_per_fn_exp | 38 | 46.9 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 156 | 84.8 |
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
GitHub Workflow Results
| id | name | conclusion | sha | run_number | date |
|---|---|---|---|---|---|
| 13134754740 | pages build and deployment | success | 7bd9cf | 171 | 2025-02-04 |
| 13134709729 | pkgdown | success | 053a87 | 206 | 2025-02-04 |
| 13134709726 | R CMD Check | success | 053a87 | 205 | 2025-02-04 |
| 13134709722 | Test coverage | success | 053a87 | 101 | 2025-02-04 |
| 13134112815 | Update CITATION.cff | success | 15383d | 26 | 2025-02-04 |
3b. goodpractice results
R CMD check with rcmdcheck
R CMD check generated the following check_fail:
- no_import_package_as_a_whole
Test coverage with covr
Package coverage: 98.79
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found the following 7 potential issues:
| message | number of times |
|---|---|
| Avoid changing the working directory, or restore it in on.exit | 2 |
| Avoid library() and require() calls in packages | 5 |
Package Versions
| package | version |
|---|---|
| pkgstats | 0.2.0.54 |
| pkgcheck | 0.1.2.119 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
@beatrizmilz @ahasverus I don't know why the
check packageresults didn't appear there. The logs seems to indicate a glitch with the GitHub cli. I'll re-trigger them manually ...
Thank you Mark!
(Note also that the check for default "master" branch has been implemented since the previous checks were issues; this should be addressed. We're working on updating our Dev Guide to describe that, but in the meantime, this blog post might help.)
Hi @ahasverus ! I have started inviting reviewers yesterday, and I'm waiting for their responses.
The check for the package returned things that needs to be adressed:
✖️ Default GitHub branch of 'master' is not acceptable.
Can you rename the default branch to main?
@mpadge have already written a note about it: https://github.com/ropensci/software-review/issues/660#issuecomment-2703633910
About the lint messages:
Avoid library() and require() calls in packages 5
I have done a search in the files, but seems like library() is only used in examples/documentation, and are not executed. Is that correct? In this case, I don't see it as a problem.
Hi @beatrizmilz & @mpadge !
I've renamed the default branch master to main.
Regarding the comment on the lint message, I confirm that the call to library() only appears in function documentations (example sections), vignettes, README, and tests.
Hi @beatrizmilz & @mpadge !
I've renamed the default branch
mastertomain.Regarding the comment on the lint message, I confirm that the call to
library()only appears in function documentations (example sections), vignettes, README, and tests.
Thank you @ahasverus !