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

mbquartR: Finding Manitoba Quarter Sections #658

Open
12 of 29 tasks
alex-koiter opened this issue Sep 22, 2024 · 30 comments
Open
12 of 29 tasks

mbquartR: Finding Manitoba Quarter Sections #658

alex-koiter opened this issue Sep 22, 2024 · 30 comments

Comments

@alex-koiter
Copy link

alex-koiter commented Sep 22, 2024

Submitting Author Name: Alexander Koiter
Submitting Author Github Handle: @alex-koiter
Other Package Authors Github handles: (comma separated, delete if none)
Repository: https://github.com/alex-koiter/mbquartR
Version submitted: 0.0.0.9000
Submission type: Standard
Editor: @jhollist
Reviewers: @sheilasaia, @EmilyMarkowitz-NOAA

Due date for @sheilasaia: 2024-11-29

Due date for @EmilyMarkowitz-NOAA: 2024-12-11
Archive: TBD
Version accepted: TBD
Language: en


  • Paste the full DESCRIPTION file inside a code block below:

Package: mbquartR
Title: Finding Manitoba Quarter Sections
Version: 0.0.0.9000
Authors@R:
person("Alex", "Koiter", , "[email protected]", role = c("aut", "cre"),
comment = c(ORCID = "0000-0002-9355-9561"))
Description: This package has three main functions: 1) find the coordinates of a quarter sections given the legal land description (e.g., "NE-11-33-29W"); 2) find the legal land description using coordinates (lat and long); and 3) plot these points on a map.
License: MIT + file LICENSE
URL: http://alexkoiter.ca/mbquartR/, https://github.com/alex-koiter/mbquartR
BugReports: https://github.com/alex-koiter/mbquartR/issues
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.1
Suggests:
testthat (>= 3.0.0),
curl (>= 5.2.1),
knitr,
rmarkdown
Config/testthat/edition: 3
Imports:
dplyr (>= 1.1.4),
purrr (>= 1.0.2),
sf (>= 1.0.16),
tibble (>= 3.2.1),
tidyr (>= 1.3.1),
stringr (>= 1.5.1),
units (>= 0.8.5),
mapview (>= 2.11.2),
readr (>= 2.1.4),
crayon (>= 1.5.2),
rlang
VignetteBuilder: knitr


Scope

  • Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):

    • data retrieval
    • data extraction
    • data munging
    • data deposition
    • 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 enables users to download the Manitoba Original Survey Legal Descriptions data from the Manitoba government geoportal. It includes functions that allow users to easily search for parcels of land (i.e., quarter sections) by either the legal land description or by coordinates and plot them on an interactive map.

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

The target audience are those who work with geospatial data in Manitoba, particularly those who are working with rural or farm parcels of land where the legal land description is commonly used as the method of identifying the location. Also anyone who needs to quickly go back and forth between geographic coordinates and the legal land description. Currently, there are a few web-based tools (https://geoportal.gov.mb.ca/datasets/11fa11f9015b45438d6493dcb3d8071c/, https://www.masc.mb.ca/masc.nsf/land_parcel_info.html, https://legallandconverter.com/p4.html) that allow users to locate land parcels but do not allow for batch processing, do not return coordinates, and/or are fee based. Being able to convert back and forth is also helpful for scientist preparing outreach materials.

No

NA. This package provides access to publicly available data.

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

#649

  • Explain reasons for any pkgcheck items which your package is unable to pass.

pkgcheck passes fully with github actions but fails locally because it doesn't think I have CI (but I do).

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

@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 mbquartR (v0.0.0.9000)

git hash: 49820566

  • ✔️ 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 88%.
  • ✔️ 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 15
internal mbquartR 15
internal utils 4
internal stats 2
imports dplyr 9
imports sf 7
imports tibble 2
imports readr 2
imports purrr 1
imports mapview 1
imports tidyr NA
imports stringr NA
imports units NA
imports crayon NA
imports rlang NA
suggests testthat NA
suggests curl NA
suggests knitr NA
suggests rmarkdown 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

c (7), getOption (2), by (1), curlGetHeaders (1), force (1), paste0 (1), search (1), url (1)

mbquartR

cache_file (3), cache_dir (2), cache_load (2), centroid (2), cache_check (1), cache_dl (1), closest_centoid (1), map_quarter (1), quarters_dl (1), search_coord (1)

dplyr

mutate (2), select (2), (1), join_by (1), last_col (1), rename (1), right_join (1)

sf

st_as_sf (5), st_transform (2)

utils

data (2), menu (2)

readr

read_csv (2)

stats

dist (2)

tibble

rowid_to_column (1), tibble (1)

mapview

mapview (1)

purrr

map2 (1)

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 5 files) and
  • 1 authors
  • 1 vignette
  • no internal data file
  • 11 imported packages
  • 4 exported functions (median 19 lines of code)
  • 21 non-exported functions in R (median 7 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 5 31.6
files_vignettes 1 62.0
files_tests 5 76.5
loc_R 176 20.2
loc_vignettes 52 9.3
loc_tests 110 39.4
num_vignettes 1 59.0
n_fns_r 25 34.3
n_fns_r_exported 4 20.0
n_fns_r_not_exported 21 41.1
n_fns_per_file_r 3 45.9
num_params_per_fn 2 8.2
loc_per_fn_r 9 24.9
loc_per_fn_r_exp 20 46.4
loc_per_fn_r_not_exp 7 18.9
rel_whitespace_R 28 33.0
rel_whitespace_vignettes 54 19.0
rel_whitespace_tests 25 41.2
doclines_per_fn_exp 29 31.1
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 16 40.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

R-CMD-check.yaml
pkgcheck

GitHub Workflow Results

id name conclusion sha run_number date
10967106383 pages build and deployment success 284672 9 2024-09-20
10967082710 pkgcheck success 498205 3 2024-09-20
10967082712 pkgdown success 498205 10 2024-09-20
10967082708 R-CMD-check success 498205 17 2024-09-20
10967082707 test-coverage success 498205 17 2024-09-20

3b. goodpractice results

R CMD check with rcmdcheck

rcmdcheck found no errors, warnings, or notes

Test coverage with covr

Package coverage: 87.97

Cyclocomplexity with cyclocomp

No functions have cyclocomplexity >= 15

Static code analyses with lintr

lintr found the following 1 potential issues:

message number of times
Avoid library() and require() calls in packages 1


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

@adamhsparks
Copy link
Member

Hi @alex-koiter, the rOpenSci bot says this is all good, but when I run checks locally, I get an error.

> devtools::check()
══ Documenting ════════════════════════════════════════════════════════════════════════════
ℹ Installed roxygen2 version (7.3.2) doesn't match required (7.3.1)
✖ `check()` will not re-document this package
══ Building ═══════════════════════════════════════════════════════════════════════════════
Setting env vars:
• CFLAGS    : -Wall -pedantic -fdiagnostics-color=always
• CXXFLAGS  : -Wall -pedantic -fdiagnostics-color=always
• CXX11FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX14FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX17FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX20FLAGS: -Wall -pedantic -fdiagnostics-color=always
── R CMD build ────────────────────────────────────────────────────────────────────────────
✔  checking for file ‘/Users/adamsparks/tmp/mbquartR/DESCRIPTION’ ...
─  preparing ‘mbquartR’:
✔  checking DESCRIPTION meta-information ...
─  installing the package to build vignettes
E  creating vignettes (1.5s)
   --- re-building ‘mbquartR.Rmd’ using rmarkdown
   
   Quitting from lines 69-71 [example] (mbquartR.Rmd)
   Error: processing vignette 'mbquartR.Rmd' failed with diagnostics:
   Data doesn't exist, please download with `quarters_dl()` first
   --- failed re-buildingmbquartR.RmdSUMMARY: processing the following file failed:mbquartR.RmdError: Vignette re-building failed.
   Execution halted
Error:
! ! System command 'R' failed
Show Traceback

Please ignore the roxygen2 comment, I'm concerned about the Error creating vignettes.

@alex-koiter
Copy link
Author

Thanks @adamhsparks! The issue was that the vignette needed to access data that hadn't been downloaded yet. I have now created some sample data that the vignette uses. Also found some additional typos and made a few other small changes. It should work now.

@adamhsparks
Copy link
Member

Looks good, @alex-koiter. Thanks, I'll proceed from here.

@adamhsparks
Copy link
Member

@ropensci-review-bot assign @jhollist as editor

@ropensci-review-bot
Copy link
Collaborator

Assigned! @jhollist is now the editor

@jhollist
Copy link
Member

@alex-koiter I will take some time today/tomorrow to dig into this a bit and will get back to you with any suggestions. Looking forward to the review process!

@jhollist
Copy link
Member

jhollist commented Oct 1, 2024

@alex-koiter I am just now starting to look at this (apologies!!) I still get the the same error as @adamhsparks with the vignette build. I have cloned and attempted to build https://github.com/alex-koiter/mbquartR and get the error. Perhaps the fix wasn't pushed?

Also I see no documentation on your non-exported functions (Statistical Properties in #658 (comment)). While not technically required, it would be an easy area of improvement to add documentation on these non-exported functions.

@alex-koiter
Copy link
Author

@jhollist It turns out that I only partially resolved the issue (or fixed a different one). I have resolved the error so you should be able to clone and build the package now. I will take me a few days to get the documentation for the internal functions completed and I will let you know once that is done.
Thanks!

@jhollist
Copy link
Member

jhollist commented Oct 3, 2024

And FYI, check runs now on my machine! I did see this:


─ checking examples ... [43s] OK (43.4s)
Examples with CPU (user + system) or elapsed time > 5s
user system elapsed
map_quarter 23.53 2.08 28.48
search_coord 10.39 0.65 8.47

I know this is system specific so might not be a real issue, but if there is an easy way to have the example run a bit faster that would be good.

@alex-koiter
Copy link
Author

@jhollist The internal function documentation is now complete. As for the run time, I think this may be an artifact of how the functions are written. This is where the reviewers may be able to provide some suggestions.
Thanks!

@jhollist
Copy link
Member

@alex-koiter Thanks! Looks good on my end. Will start looking for reviewers now.

@jhollist
Copy link
Member

jhollist commented Nov 8, 2024

@ropensci-review-bot assign @sheilasaia as reviewer

@ropensci-review-bot
Copy link
Collaborator

@sheilasaia added to the reviewers list. Review due date is 2024-11-29. Thanks @sheilasaia 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.

@ropensci-review-bot
Copy link
Collaborator

@sheilasaia: If you haven't done so, please fill this form for us to update our reviewers records.

@jhollist
Copy link
Member

@ropensci-review-bot assign @EmilyMarkowitz-NOAA as reviewer

@ropensci-review-bot
Copy link
Collaborator

@EmilyMarkowitz-NOAA added to the reviewers list. Review due date is 2024-12-11. Thanks @EmilyMarkowitz-NOAA 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.

@ropensci-review-bot
Copy link
Collaborator

@EmilyMarkowitz-NOAA: If you haven't done so, please fill this form for us to update our reviewers records.

@ropensci-review-bot
Copy link
Collaborator

📆 @sheilasaia you have 2 days left before the due date for your review (2024-11-29).

@sheilasaia
Copy link

Sorry that I'm a couple of days late in submitting my review. I blame the recent US holidays. 😄

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

  • Briefly describe any working relationship you have (had) with the package authors.
  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (if you are unsure whether you are in conflict, please speak to your editor before starting your review).

Documentation

The package includes all the following forms of documentation:

  • A statement of need: clearly stating problems the software is designed to solve and its target audience in README
  • Installation instructions: for the development version of package and any non-standard dependencies in README
  • Vignette(s): demonstrating major functionality that runs successfully locally
  • Function Documentation: for all exported functions
  • Examples: (that run successfully locally) for all exported functions
  • Community guidelines: including contribution guidelines in the README or CONTRIBUTING, and DESCRIPTION with URL, BugReports and Maintainer (which may be autogenerated via Authors@R).

Additional notes: Please see my comments below for more info on the community guidelines.

Functionality

  • Installation: Installation succeeds as documented.
  • Functionality: Any functional claims of the software have been confirmed.
  • Performance: Any performance claims of the software have been confirmed.
  • Automated tests: Unit tests cover essential functions of the package and a reasonable range of inputs and conditions. All tests pass on the local machine.
  • Packaging guidelines: The package conforms to the rOpenSci packaging guidelines.

Additional notes: I was having trouble using the pkgcheck() function; kept getting "Error: Unauthorized (HTTP 401)". I retried directly with devtools and pasted the results at the end of this review. There were a couple of tests that failed so please see those sections below. The author appears to have followed all the packaging guidelines listed here (https://devguide.ropensci.org/pkg_building.html), but I've never developed a package before and there are a lot of guidelines, so I'm not 100% of that all the guidelines were met. This is why I left that review section unchecked.

Estimated hours spent reviewing: 3

  • Should the author(s) deem it appropriate, I agree to be acknowledged as a package reviewer ("rev" role) in the package DESCRIPTION file.

That's not necessary, but thank you for asking.


Review Comments

I was able to install the R package, download the dataset using quarters_dl(), and get the three main functions (search_coord(), search_legal(), and map_quarter()) to run as expected. I'm on a MacOS with M2 ARM chip. Provided my session info below just in case that's helpful.

Overall, I thought the package worked well and was well documented. While the application has a very specific audience, it makes sense to me that this would be useful for people working on geospatial projects in the the Manitoba region. Especially, for folks trying to automate the identification of Manitoba quarters. I had a few suggestions which I describe generally below and then provide detailed comments on below.

First, I recommend the author include more details in the package README and website introduction page on the use cases and intended users. The information provided in the rOpenSci package application was very helpful and could be repeated here. In a similar vain, it would be great to have more information in the package README and website about the Manitoba quarter sections themselves. Can the author provide an overview with this and show a map of all the sections in the introduction of this package? I'm guessing they are polygons used to denote various regions of Manitoba. More information on this would be helpful.

Second, there are a few cases where the error messages could be revised to provide more information to the user. I gave some suggestions for this in the detailed comments below.

Third, I see only one person listed as a maintainer on this package. Is there anyone else that can also be listed for redundancy? How often do the Manitoba sections get updated? If not very frequently, then I understand this might not be a priority, but thought it might be an important to ask about how this would be maintained into the future. The author doesn't include a CONTRIBUTING.md file in the R package on GitHub to explain how folks can submit issues or suggest addtional features, which is something that I recommend adding and is part of the community guidelines.

Thanks for the opportunity to review this interesting new R package and please reach out if you have any follow up questions or need any further clarification!

Detailed Comments:

  1. In the main README and package website an example coordinate is given. I recommend the author noting that a negative sign must be used in front of of the longitude value sign to designate western hemisphere and positive sign must be used in front of the latitude value sign to designate northern hemisphere due to the purpose of the R package. I suggest this because the user might use another way to represent their coordinate that is not compatible with the input. This specification can also be added to the search_coord() function documentation.

  2. Related to comment 1, I recommend the author add a test and corresponding error message that tells the user the value they entered is not formatted correctly (e.g., long = 101.4656). For the example that I just gave, the error message could them that they must enter a long value from -90 to -120 or whatever is available for the Manitoba quarter data. For a non-negative long value, I get the error "One or more coordinates greater than 1000m from nearest quarter section center. Please check your data.", which is good, but doesn't get to the crux of the missing negative sign. For a character (e.g., long = "101.4656W"), I get the error "Longitude and latitude must be numbers.", which is helpful and doesn't need any revision. I also recommend this test could be done with the range of the latitude value, and output a similar "out of range" error.

  3. I like that you can enter one or a list of coordinate values. These seems helpful for automating tasks.

  4. In the main README and package website it says "For more details checkout the mbquartR website.". I recommend the author directly say that users can view the website for vignettes/code examples. I also recommend removing this text from the website since it is repetitive and recursive.

  5. It might be helpful for the author to say in the README and website introduction some potential use-cases for this. Some of the responses given for the ropensci package submission were helpful to understanding the audience and use case.

  6. I'm not very familiar with the legal land descriptions in Manitoba so I wasn't able to make up a value and test it, but the examples provided in the vignette worked well for me without any errors.

  7. I like that there is a map showing the values and it's color coded by the different quarters, but I recommend the author including a built in polygon line map with all the quarter boundaries in it as well. Then each coordinate could be plotted with the corresponding quarter coloring within the quarter boundary. For example, when I search result <- search_coord(long = c(-101.4656, -99.99768, -101.4656), lat = c(51.81913, 49.928926, 51.81913)), I get three output values that are found in only two distinct quarters. When I use map_quarter(result), there are only two points on the plot. This is a little confusing at first, because I'm expecting to see three points, one for each of the coordinates that I'm searching. I'm also not really sure where one quarter stops and the other begins because only points are shown on the map. I hope that makes sense.

  8. I recommend the author note in the search_coord() function that a list can also be taken for long and lat. That's not clear in the documentation at present. I have the same recommendation for search_legal().

  9. The search function took 2.566 s to run for three coordinates (i.e., result as described above in comment 7) and the mapping function took 3.035 s to run for those same three coordinates. It seems relatively fast to me. I saw @jhollist comment above and wanted to response to that.

My R session info:

R version 4.4.2 (2024-10-31)
Platform: aarch64-apple-darwin20
Running under: macOS Sonoma 14.5

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: America/New_York
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.4.2 tools_4.4.2  

Devtools check output:

> devtools::check()
══ Documenting ═══════════════════════════════════════════════════════════════════════════════════════════════
ℹ Installed roxygen2 version (7.3.2) doesn't match required (7.3.1)
✖ `check()` will not re-document this package
══ Building ══════════════════════════════════════════════════════════════════════════════════════════════════
Setting env vars:
• CFLAGS    : -Wall -pedantic -fdiagnostics-color=always
• CXXFLAGS  : -Wall -pedantic -fdiagnostics-color=always
• CXX11FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX14FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX17FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX20FLAGS: -Wall -pedantic -fdiagnostics-color=always
── R CMD build ───────────────────────────────────────────────────────────────────────────────────────────────
✔  checking for file ‘/Users/sheila/Documents/github/ropensci_reviews/mbquartR/DESCRIPTION’ ...
─  preparing ‘mbquartR’:
✔  checking DESCRIPTION meta-information
─  installing the package to build vignettes
✔  creating vignettes (7.8s)
─  checking for LF line-endings in source and make files and shell scripts (423ms)
─  checking for empty or unneeded directories
─  building ‘mbquartR_0.0.0.9000.tar.gz’
   
══ Checking ══════════════════════════════════════════════════════════════════════════════════════════════════
Setting env vars:
• _R_CHECK_CRAN_INCOMING_REMOTE_               : FALSE
• _R_CHECK_CRAN_INCOMING_                      : FALSE
• _R_CHECK_FORCE_SUGGESTS_                     : FALSE
• _R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_: FALSE
• NOT_CRAN                                     : true
── R CMD check ───────────────────────────────────────────────────────────────────────────────────────────────
─  using log directory ‘/private/var/folders/nl/0cjxjn7n67s40k8mm3cd1htr0000gn/T/RtmpHqAkNM/filec85573308e57/mbquartR.Rcheck’
─  using R version 4.4.2 (2024-10-31)
─  using platform: aarch64-apple-darwin20
─  R was compiled by
       Apple clang version 14.0.0 (clang-1400.0.29.202)
       GNU Fortran (GCC) 12.2.0
─  running under: macOS Sonoma 14.5
─  using session charset: UTF-8
─  using options ‘--no-manual --as-cran’
✔  checking for file ‘mbquartR/DESCRIPTION’
─  this is package ‘mbquartR’ version ‘0.0.0.9000’
─  package encoding: UTF-8
✔  checking package namespace information
✔  checking package dependencies (1.1s)
✔  checking if this is a source package
✔  checking if there is a namespace
✔  checking for executable files ...
✔  checking for hidden files and directories
✔  checking for portable file names
✔  checking for sufficient/correct file permissions
✔  checking serialization versions
✔  checking whether package ‘mbquartR’ can be installed (1.4s)
✔  checking installed package size
✔  checking package directory ...
✔  checking for future file timestamps ...
✔  checking ‘build’ directory
✔  checking DESCRIPTION meta-information ...
✔  checking top-level files ...
✔  checking for left-over files
✔  checking index information ...
✔  checking package subdirectories (449ms)
✔  checking code files for non-ASCII characters ...
✔  checking R files for syntax errors ...
✔  checking whether the package can be loaded ...
✔  checking whether the package can be loaded with stated dependencies ...
✔  checking whether the package can be unloaded cleanly ...
✔  checking whether the namespace can be loaded with stated dependencies ...
✔  checking whether the namespace can be unloaded cleanly ...
✔  checking whether startup messages can be suppressed (427ms)
✔  checking dependencies in R code (3.5s)
✔  checking S3 generic/method consistency ...
✔  checking replacement functions ...
✔  checking foreign function calls ...
✔  checking R code for possible problems (1.9s)
✔  checking Rd files ...
✔  checking Rd metadata ...
✔  checking Rd line widths ...
✔  checking Rd cross-references ...
✔  checking for missing documentation entries ...
✔  checking for code/documentation mismatches (604ms)
✔  checking Rd \usage sections (391ms)
✔  checking Rd contents ...
✔  checking for unstated dependencies in examples ...
✔  checking contents of ‘data’ directory
✔  checking data for non-ASCII characters ...
✔  checking LazyData
✔  checking data for ASCII and uncompressed saves ...
✔  checking installed files from ‘inst/doc’ ...
✔  checking files in ‘vignettes’ ...
─  checking examples ... [28s/20s] OK (20.6s)
   Examples with CPU (user + system) or elapsed time > 5s
                  user system elapsed
   map_quarter  17.004  0.727  13.568
   search_coord  6.243  0.226   4.153
✔  checking for unstated dependencies in ‘tests’ ...
─  checking tests ...
   Running the tests in ‘tests/testthat.R’ failed.
   Last 13 lines of output:
     Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
     Backtrace:
         ▆
      1. └─testthat::expect_equal(...) at test-search_legal.R:6:3
      2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
      3.     └─testthat:::waldo_compare(...)
      4.       └─waldo::compare(tolerance = NULL)
      5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
      6.           └─waldo:::.stop_not_number(...)
      7.             └─waldo:::stop_input_type(...)
      8.               └─rlang::abort(message, ..., call = call, arg = arg)
     
     [ FAIL 2 | WARN 0 | SKIP 0 | PASS 42 ]
     Error: Test failures
     Execution halted
✔  checking for unstated dependencies in vignettes (338ms)
✔  checking package vignettes ...
✔  checking re-building of vignette outputs (5.9s)
✔  checking for non-standard things in the check directory
✔  checking for detritus in the temp directory
   
   See
     ‘/private/var/folders/nl/0cjxjn7n67s40k8mm3cd1htr0000gn/T/RtmpHqAkNM/filec85573308e57/mbquartR.Rcheck/00check.log’
   for details.
   
   
── R CMD check results ────────────────────────────────────────────────────────────── mbquartR 0.0.0.9000 ────
Duration: 1m 10s

❯ checking tests ...
  See below...

── Test failures ─────────────────────────────────────────────────────────────────────────────── testthat ────

> # This file is part of the standard setup for testthat.
> # It is recommended that you do not modify it.
> #
> # Where should you do additional test configuration?
> # Learn more about the roles of various files in:
> # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview
> # * https://testthat.r-lib.org/articles/special-files.html
> 
> library(testthat)
> library(mbquartR)
> 
> test_check("mbquartR")
[ FAIL 2 | WARN 0 | SKIP 0 | PASS 42 ]

══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-search_coord.R:6:3'): search_coord() returns dataframe ─────────
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_coord.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)
── Error ('test-search_legal.R:6:3'): search_legal() returns dataframe ─────────
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_legal.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)

[ FAIL 2 | WARN 0 | SKIP 0 | PASS 42 ]
Error: Test failures
Execution halted

1 error ✖ | 0 warnings ✔ | 0 notes ✔

Test check output:

> devtools::test()
ℹ Testing mbquartR

Attaching package: ‘testthat’

The following object is masked from ‘package:devtools’:

    test_file

✔ | F W  S  OK | Context
✔ |         22 | download [9.3s]                                                                              
⠏ |          0 | mapping                                                                                      GDAL version >= 3.1.0 | setting mapviewOptions(fgb = TRUE)
✔ |          5 | mapping [6.8s]                                                                               
✖ | 1        8 | search_coord [5.6s]                                                                          
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
Error (test-search_coord.R:6:3): search_coord() returns dataframe
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_coord.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
✖ | 1        7 | search_legal [7.2s]                                                                          
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
Error (test-search_legal.R:6:3): search_legal() returns dataframe
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_legal.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────

══ Results ═══════════════════════════════════════════════════════════════════════════════════════════════════
Duration: 29.3 s

── Failed tests ──────────────────────────────────────────────────────────────────────────────────────────────
Error (test-search_coord.R:6:3): search_coord() returns dataframe
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_coord.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)

Error (test-search_legal.R:6:3): search_legal() returns dataframe
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_legal.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)

[ FAIL 2 | WARN 0 | SKIP 0 | PASS 42 ]

@ropensci-review-bot
Copy link
Collaborator

📆 @EmilyMarkowitz-NOAA you have 2 days left before the due date for your review (2024-12-11).

@EmilyMarkowitz-NOAA
Copy link

EmilyMarkowitz-NOAA commented Dec 10, 2024

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

  • Briefly describe any working relationship you have (had) with the package authors.
  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (if you are unsure whether you are in conflict, please speak to your editor before starting your review).

Documentation

The package includes all the following forms of documentation:

  • A statement of need: clearly stating problems the software is designed to solve and its target audience in README
  • Installation instructions: for the development version of package and any non-standard dependencies in README
  • Vignette(s): demonstrating major functionality that runs successfully locally
  • Function Documentation: for all exported functions
  • Examples: (that run successfully locally) for all exported functions
  • Community guidelines: including contribution guidelines in the README or CONTRIBUTING, and DESCRIPTION with URL, BugReports and Maintainer (which may be autogenerated via Authors@R).

Functionality

  • Installation: Installation succeeds as documented. See output below.
  • Functionality: Any functional claims of the software have been confirmed.
  • Performance: Any performance claims of the software have been confirmed.
  • Automated tests: Unit tests cover essential functions of the package and a reasonable range of inputs and conditions. All tests pass on the local machine. There are some issues with the tests, see output below.
  • Packaging guidelines: The package conforms to the rOpenSci packaging guidelines.

Estimated hours spent reviewing: 3

  • Should the author(s) deem it appropriate, I agree to be acknowledged as a package reviewer ("rev" role) in the package DESCRIPTION file.

No need, but thanks for offering.

Review Comments

In addition to agreeing with the first reviewer's comments, I have a few to add, which I've mostly left in the numbered bullets below. In general, and similarly to the other reviewer, I was able to install the R package, run the functions as expected, thought the package worked well and was well documented. Though this R Package has a very specific audience, it sounds like it will be an easy and helpful too for them. I share similar sentiments that the README could include more details and context and had the same errors with the test checks that the other reviewer had.

Thanks for the opportunity to review and let me know if you have any questions! This is my first time reviewing an R package for ROpenSci, so please let me know if there is anything I missed or forgot to cover. Good luck, and hope this helps! Thanks for making a package to help the folks of Manitoba!

  1. Readme could include more information about the institution, author (example), additional resources, the government legal (example 1, 2), and access constraints to this data (example). I've included links here to a repository I'm working on at NOAA for reference.
  2. The first reviewer made a great note about maintainer redundancy. Possibly related to or fixed by stating your affiliation (as I noted above), but sharing more about who you are and your/your affiliation's commitment to this package would help users know its priority for upkeep to maintainers and who might take over if you pass the package along to someone else to maintain.
  3. It may be worthwhile to choose a licence like the GNU General Public Licence v3.0 or MIT Licence for your work, rather than just the two "YEAR" and "COPYWRITE HOLDER" lines. They're fine, but its my understanding that the ones I mentioned are standard practice and are recommended at my organization.
  4. Cite the contributor guide (a CONTRIBUTING.md) on your README. It took me a minute to find in your pkgdown site. It may be worthwhile to also add some other types of contributor guidelines, like those from repos we use at NOAA (pruely for reference).
  5. Possibly add a summary map of Manitoba with all of the different areas to it, so users can get a sense for the breadth of what the R Package covers. As a user unfamiliar with Manitoba's quarter sections system, I had to make some assumptions about what "quarters" meant and how they were used (is it the same thing as or related to this?).
  6. Some of the bullets appear to be a bit messed up on this page. Also, I think the contents of this page could be added directly to a new or as a summary at the top of the existing vingette.
  7. The quarters_dl() example seems to be a bit misprinted and I think would benefit from a . I think you want to use \dontrun{} like this:
#'@examples
#'\dontrun{
#'geocode("3817 Spruce St, Philadelphia, PA 19104")
#'geocode("Philadelphia, PA")
#'dat <- data.frame(value=runif(3),address=c("3817 Spruce St, Philadelphia, PA 19104","Philadelphia, PA","Neverneverland"))
#'geocode(dat)
#'}
  1. In general, there are a few sentences throughout the documentation that don't end with periods (".").
  2. I agree with the other reviewer's second comment. I'll add to that by noting: Specify the bounds and data type in the search_coords() arguments examples. Perhaps something like Numeric. Latitude (decimal degree) with resolution up to one hundred thousandth of a degree. Values outside of bounds will return error (49 to 59.5°N). I added the resolution and the "will return error" ideas in there, feel free to use or do something different. I used the general boundaries of manatoba here, for example.
  3. In the search_legal function, I would add a link to where a user can look up the legal land descriptions.
  4. Add more information and a citation for the open data source you are using. The only place I found it listed was in the function file.
  5. In addition to the other reviewer's 5th comment, it would be great to include a section that 1) identifies work that has used this package and 2) create a vingette of a specific example with storyline using this package (e.g., "A farmer wants to know ..."). Some of the content provided in the ROpenSci application could be helpful for this.
  6. A package like this seems ripe for an R Shiny app - something that can be interactive for the non-coder. Just something to consider in a next stage of the package's development.
  7. Seconding the first reviewer's comment 6). I am also not familiar with the legal land descriptions in Manitoba, but the examples provided in the vignette worked well for me without any errors.
  8. The first reviewer made a great point to ask how often the package data will be upated. It would be good to note this in the documentation for users so they can anticipate future changes.
  9. See check run notes below. Specifically, I got two errors when I tried to run the package test:

A. "search_coord() returns dataframe"
q is a tibble(), not a dataframe

-- Error: search_coord() returns dataframe -------------------------------------
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    x
 1. \-testthat::expect_equal(...)
 2.   \-testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     \-testthat:::waldo_compare(...)
 4.       \-waldo::compare(tolerance = NULL)
 5.         \-waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           \-waldo:::.stop_not_number(...)
 7.             \-waldo:::stop_input_type(...)
 8.               \-rlang::abort(message, ..., call = call, arg = arg)

Error:
! Test failed
Backtrace:
    x
 1. +-testthat::test_that(...)
 2. | \-withr (local) `<fn>`()
 3. \-reporter$stop_if_needed()
 4.   \-rlang::abort("Test failed", call = NULL)

B. "search_legal() returns dataframe
q is a tibble(), not a dataframe

-- Error: search_legal() returns dataframe -------------------------------------
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    x
 1. \-testthat::expect_equal(...)
 2.   \-testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     \-testthat:::waldo_compare(...)
 4.       \-waldo::compare(tolerance = NULL)
 5.         \-waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           \-waldo:::.stop_not_number(...)
 7.             \-waldo:::stop_input_type(...)
 8.               \-rlang::abort(message, ..., call = call, arg = arg)

Error:
! Test failed
Backtrace:
    x
 1. +-testthat::test_that(...)
 2. | \-withr (local) `<fn>`()
 3. \-reporter$stop_if_needed()
 4.   \-rlang::abort("Test failed", call = NULL)

Check runs

R Session Info

sessionInfo()

R version 4.4.1 (2024-06-14 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)

Matrix products: default


locale:
[1] LC_COLLATE=English_United States.utf8  LC_CTYPE=English_United States.utf8    LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C                           LC_TIME=English_United States.utf8    

time zone: America/Los_Angeles
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] mbquartR_0.0.0.9000

loaded via a namespace (and not attached):
 [1] miniUI_0.1.1.1    compiler_4.4.1    promises_1.3.2    Rcpp_1.0.13-1     rcmdcheck_1.4.0   callr_3.7.6       later_1.4.1      
 [8] fastmap_1.2.0     mime_0.12         R6_2.5.1          curl_6.0.1        htmlwidgets_1.6.4 tibble_3.2.1      desc_1.4.3       
[15] profvis_0.4.0     rprojroot_2.0.4   shiny_1.9.1       pillar_1.9.0      rlang_1.1.4       utf8_1.2.4        cachem_1.1.0     
[22] httpuv_1.6.15     fs_1.6.5          pkgload_1.4.0     memoise_2.0.1     cli_3.6.3         withr_3.0.2       magrittr_2.0.3   
[29] ps_1.8.1          processx_3.8.4    digest_0.6.37     rstudioapi_0.17.1 xtable_1.8-4      remotes_2.5.0     devtools_2.4.5   
[36] lifecycle_1.0.4   prettyunits_1.2.0 vctrs_0.6.5       glue_1.8.0        xopen_1.0.1       urlchecker_1.0.1  sessioninfo_1.2.2
[43] pkgbuild_1.4.5    fansi_1.0.6       purrr_1.0.2       tools_4.4.1       usethis_3.1.0     pkgconfig_2.0.3   ellipsis_0.3.2   
[50] htmltools_0.5.8.1
Clean and install: success
==> Rcmd.exe INSTALL --preclean --no-multiarch --with-keep.source mbquartR

* installing to library 'C:/Users/emily.markowitz/AppData/Local/R/win-library/4.4'
* installing *source* package 'mbquartR' ...
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (mbquartR)
Devtools output: 1 error (from test checks)

devtools::check()

══ Documenting ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
ℹ Installed roxygen2 version (7.3.2) doesn't match required (7.3.1)
✖ `check()` will not re-document this package
══ Building ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Setting env vars:
• CFLAGS    : -Wall -pedantic -fdiagnostics-color=always
• CXXFLAGS  : -Wall -pedantic -fdiagnostics-color=always
• CXX11FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX14FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX17FLAGS: -Wall -pedantic -fdiagnostics-color=always
• CXX20FLAGS: -Wall -pedantic -fdiagnostics-color=always
── R CMD build ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
✔  checking for file 'C:\Users\emily.markowitz\Work\projects\mbquartR/DESCRIPTION' (455ms)
─  preparing 'mbquartR':
✔  checking DESCRIPTION meta-information ...
─  installing the package to build vignettes
✔  creating vignettes (19.9s)
─  checking for LF line-endings in source and make files and shell scripts (1.2s)
─  checking for empty or unneeded directories
─  building 'mbquartR_0.0.0.9000.tar.gz'
   
══ Checking ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Setting env vars:
• _R_CHECK_CRAN_INCOMING_REMOTE_               : FALSE
• _R_CHECK_CRAN_INCOMING_                      : FALSE
• _R_CHECK_FORCE_SUGGESTS_                     : FALSE
• _R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_: FALSE
• NOT_CRAN                                     : true
── R CMD check ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─  using log directory 'C:/Users/emily.markowitz/AppData/Local/Temp/Rtmpy80E8v/file56a01c33567f/mbquartR.Rcheck' (505ms)
─  using R version 4.4.1 (2024-06-14 ucrt)
─  using platform: x86_64-w64-mingw32
─  R was compiled by
       gcc.exe (GCC) 13.2.0
       GNU Fortran (GCC) 13.2.0
─  running under: Windows 10 x64 (build 19045)
─  using session charset: UTF-8
─  using options '--no-manual --as-cran'
✔  checking for file 'mbquartR/DESCRIPTION'
─  this is package 'mbquartR' version '0.0.0.9000'
─  package encoding: UTF-8
✔  checking package namespace information
✔  checking package dependencies (1.6s)
✔  checking if this is a source package ...
✔  checking if there is a namespace
✔  checking for executable files (1.3s)
✔  checking for hidden files and directories ...
✔  checking for portable file names
✔  checking serialization versions
✔  checking whether package 'mbquartR' can be installed (6.2s)
✔  checking installed package size (461ms)
✔  checking package directory (570ms)
✔  checking for future file timestamps ... 
✔  checking 'build' directory ...
✔  checking DESCRIPTION meta-information (730ms)
✔  checking top-level files
✔  checking for left-over files ...
✔  checking index information (458ms)
✔  checking package subdirectories (1.1s)
✔  checking code files for non-ASCII characters ... 
✔  checking R files for syntax errors ... 
✔  checking whether the package can be loaded (668ms)
✔  checking whether the package can be loaded with stated dependencies (440ms)
✔  checking whether the package can be unloaded cleanly (549ms)
✔  checking whether the namespace can be loaded with stated dependencies (449ms)
✔  checking whether the namespace can be unloaded cleanly (651ms)
✔  checking loading without being on the library search path (1s)
✔  checking whether startup messages can be suppressed (1.2s)
✔  checking dependencies in R code (7.3s)
✔  checking S3 generic/method consistency (661ms)
✔  checking replacement functions (549ms)
✔  checking foreign function calls (533ms)
✔  checking R code for possible problems (5.2s)
✔  checking Rd files (534ms)
✔  checking Rd metadata ... 
✔  checking Rd line widths ... 
✔  checking Rd cross-references (439ms)
✔  checking for missing documentation entries (551ms)
✔  checking for code/documentation mismatches (1.5s)
✔  checking Rd \usage sections (998ms)
✔  checking Rd contents ... 
✔  checking for unstated dependencies in examples (339ms)
✔  checking contents of 'data' directory ...
✔  checking data for non-ASCII characters (406ms)
✔  checking LazyData
✔  checking data for ASCII and uncompressed saves (395ms)
✔  checking installed files from 'inst/doc' (539ms)
✔  checking files in 'vignettes' (599ms)
─  checking examples ... [36s] OK (36.6s)
   Examples with CPU (user + system) or elapsed time > 5s
                 user system elapsed
   map_quarter  32.34   2.39   24.92
   search_coord 11.40   0.56    6.75
✔  checking for unstated dependencies in 'tests' ... 
─  checking tests ...
   Running the tests in 'tests/testthat.R' failed.
   Last 13 lines of output:
     Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
     Backtrace:
         ▆
      1. └─testthat::expect_equal(...) at test-search_legal.R:6:3
      2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
      3.     └─testthat:::waldo_compare(...)
      4.       └─waldo::compare(tolerance = NULL)
      5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
      6.           └─waldo:::.stop_not_number(...)
      7.             └─waldo:::stop_input_type(...)
      8.               └─rlang::abort(message, ..., call = call, arg = arg)
     
     [ FAIL 2 | WARN 1 | SKIP 0 | PASS 42 ]
     Error: Test failures
     Execution halted
✔  checking for unstated dependencies in vignettes (777ms)
✔  checking package vignettes ... 
─  checking re-building of vignette outputs ... [16s] OK (16.1s)
✔  checking for non-standard things in the check directory
✔  checking for detritus in the temp directory
   
   See
     'C:/Users/emily.markowitz/AppData/Local/Temp/Rtmpy80E8v/file56a01c33567f/mbquartR.Rcheck/00check.log'
   for details.
   
   
── R CMD check results ────────────────────────────────────────────────────────────────────────────────────────────────── mbquartR 0.0.0.9000 ────
Duration: 2m 50.7s

❯ checking tests ...
  See below...

── Test failures ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────── testthat ────

> # This file is part of the standard setup for testthat.
> # It is recommended that you do not modify it.
> #
> # Where should you do additional test configuration?
> # Learn more about the roles of various files in:
> # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview
> # * https://testthat.r-lib.org/articles/special-files.html
> 
> library(testthat)
> library(mbquartR)
> 
> test_check("mbquartR")
[ FAIL 2 | WARN 1 | SKIP 0 | PASS 42 ]

══ Warnings ════════════════════════════════════════════════════════════════════
── Warning ('test-mapping.R:3:3'): map_quarter() returns a map ─────────────────
package 'mapview' was built under R version 4.4.2
Backtrace:
    ▆
 1. └─base::library(mapview) at test-mapping.R:3:3
 2.   └─base (local) testRversion(pkgInfo, package, pkgpath)

══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-search_coord.R:6:3'): search_coord() returns dataframe ─────────
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_coord.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)
── Error ('test-search_legal.R:6:3'): search_legal() returns dataframe ─────────
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_legal.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)

[ FAIL 2 | WARN 1 | SKIP 0 | PASS 42 ]
Error: Test failures
Execution halted

1 error ✖ | 0 warnings ✔ | 0 notes ✔
Test checks: 2 errors

devtools::test()

ℹ Testing mbquartR
✔ | F W  S  OK | Context
✔ |         22 | download [30.9s]                                                                                                                 
⠏ |          0 | mapping                                                                                                                          GDAL version >= 3.1.0 | setting mapviewOptions(fgb = TRUE)
✔ |   1      5 | mapping [10.2s]                                                                                                                  
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Warning (test-mapping.R:3:3): map_quarter() returns a map
package 'mapview' was built under R version 4.4.2
Backtrace:
    ▆
 1. └─base::library(mapview) at test-mapping.R:3:3
 2.   └─base (local) testRversion(pkgInfo, package, pkgpath)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
✖ | 1        8 | search_coord [7.0s]                                                                                                              
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Error (test-search_coord.R:6:3): search_coord() returns dataframe
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_coord.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
✖ | 1        7 | search_legal [8.6s]                                                                                                              
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Error (test-search_legal.R:6:3): search_legal() returns dataframe
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_legal.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

══ Results ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Duration: 59.5 s

── Failed tests ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Error (test-search_coord.R:6:3): search_coord() returns dataframe
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_coord.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)

Error (test-search_legal.R:6:3): search_legal() returns dataframe
Error in `waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)`: `tolerance` must be a number or `NULL`, not `TRUE`.
Backtrace:
    ▆
 1. └─testthat::expect_equal(...) at test-search_legal.R:6:3
 2.   └─testthat:::expect_waldo_equal("equal", act, exp, info, ..., tolerance = tolerance)
 3.     └─testthat:::waldo_compare(...)
 4.       └─waldo::compare(tolerance = NULL)
 5.         └─waldo:::check_number_decimal(tolerance, allow_null = TRUE, min = 0)
 6.           └─waldo:::.stop_not_number(...)
 7.             └─waldo:::stop_input_type(...)
 8.               └─rlang::abort(message, ..., call = call, arg = arg)

[ FAIL 2 | WARN 1 | SKIP 0 | PASS 42 ]

@jhollist
Copy link
Member

@sheilasaia and @EmilyMarkowitz-NOAA Thank you so much for your reviews! You are all set for now, but once @alex-koiter responds I will ask you to take a look at those responses and let me know if your comments were adequately addressed. Also, keep a rough tally of the time you spent on the review and follow-ups. We like to keep track of this.

@alex-koiter Please take a look at these reviews, ask any questions that arise, and work on the revisions.

If there is anything I can do to help, just let me know.

Thanks again all!

@alex-koiter
Copy link
Author

Thanks to @sheilasaia and @EmilyMarkowitz-NOAA for taking the time to review my package. Some good suggestions to implement. I will start working on this and if I have any questions or need clarification I will let you know.

@alex-koiter
Copy link
Author

@jhollist I am also interested in submitting to JOSS. I know there is an opportunity to combine the rOpenSci review with the JOSS review process, is there anything in particular I should be aware of moving forward. I am currently preparing the paper.

@jhollist
Copy link
Member

@alex-koiter I am not sure about the details on JOSS submission. let me dig and get back to you.

@jhollist
Copy link
Member

@alex-koiter A bit here on it: https://devguide.ropensci.org/softwarereview_author.html#preparing-for-submission.

I think we keep on with the track we are going on. The JOSS side will happen after rOpenSci review. The current EiC may coordinate this process. I will find out.

In short, JOSS will make their own determination on scope and if it is in scope you will submit your paper.md for review with JOSS. The package will not need a separate review.

@jhollist
Copy link
Member

@alex-koiter It looks like all you will need to do is specify that the package been reviewed by rOpenSci during the pre-submisison phase with JOSS. Here is an example issue: openjournals/joss-reviews#6163 (comment)

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

6 participants