software-review
software-review copied to clipboard
SPARQLChunks : query SPARQL endpoints and run SPARQL chunks in R-markdown files.
Submitting Author Name: André Ourendik Submitting Author Github Handle: @aourednik Repository: https://github.com/aourednik/SPARQLchunks Version submitted:0.2.1 Submission type: Standard Editor: TBD Reviewers: TBD
Archive: TBD Version accepted: TBD Language: en
- Paste the full DESCRIPTION file inside a code block below:
Package: SPARQLchunks
Title: Run SPARQL Chunks and Inline Functions to Retrieve Data
Version: 0.3.0
Authors@R:
person("Andre", "Ourednik", , "[email protected]", role = c("aut", "cre"),
comment = c(ORCID = "0000-0002-0309-8715"))
Description: Allows to run SPARQL chunks in R-markdown files. Also provides inline functions to send a SPARQL query to an endpoint and retrieve data in data frame or list form.
License: GPL (>= 3)
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.3
Imports:
curl,
httr,
knitr,
magrittr,
xml2
VignetteBuilder: knitr
Suggests:
rmarkdown
URL: https://github.com/aourednik/SPARQLchunks
BugReports: https://github.com/aourednik/SPARQLchunks/issues
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
- [x] 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
- [x] database software bindings
- [ ] geospatial data
- [ ] text analysis
-
Explain how and why the package falls under these categories (briefly, 1-2 sentences):
SPARQL is a major language for accessing, extracting and munging RDF data. While RStudio provides a number of convenient ways to access to write SQL code chunks in Rmarkdown, to run these chunks and to assign the value of the query result directly to a variable of your choice. No such thing is available out of the box for SPARQL queries. This is where the SPARQLchunks package steps in. It allows you to query SPARQL endpoints in two different ways: (1) run SPARQL chunks in Rmarkdown files. (2) run inline functions to send SPARQL queries to a user-defined endpoint and retrieve data in dataframe form (sparql2df) or list form (sparql2list). Endpoints can also be reached from behind corporate firewalls on Windows machines thanks to automatic proxy detection.
- Who is the target audience and what are scientific applications of this package?
All scientists working with RDF data repositories
- Are there other R packages that accomplish the same thing? If so, how does yours differ or meet our criteria for best-in-category?
Not really, there used to be a "SPARQL" package, but it is deprecated. There is also the more genereic rdflib. No package except SPARQLChunks allows to write chunks of SPARQL in RMarkdown and retrieve the data directly into a data.frame or list object.
-
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.
-
Explain reasons for any
pkgcheckitems which your package is unable to pass.
The package does not pass the automatic CRAN checks, as storing the result of a chunk requires assigning to the global environment to store the query result in the output.var. Example:
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.
- [ ] has continuous integration, including reporting of test coverage.
Publication options
-
[x] Do you intend for this package to go on CRAN?
-
[x] 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:
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 SPARQLchunks (v0.2.1)
git hash: bcc65993
- :heavy_check_mark: Package name is available
- :heavy_multiplication_x: does not have a 'codemeta.json' file.
- :heavy_multiplication_x: does not have a 'contributing' file.
- :heavy_multiplication_x: The following functions have no documented return values: [autoproxyconfig, get_outcontent, sparql2df, sparql2list]
- :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_multiplication_x: These functions do not have examples: [autoproxyconfig, get_outcontent].
- :heavy_multiplication_x: Package has no continuous integration checks.
- :heavy_multiplication_x: Package coverage is 0.8% (should be at least 75%).
- :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 (>= 3)
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 | 33 |
| internal | SPARQLchunks | 10 |
| internal | utils | 2 |
| internal | stats | 1 |
| imports | httr | 7 |
| imports | xml2 | 2 |
| imports | magrittr | 1 |
| imports | curl | NA |
| imports | 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
paste (5), tempfile (5), c (3), url (3), file.path (2), gsub (2), list (2), readLines (2), tempdir (2), tryCatch (2), ifelse (1), is.null (1), length (1), return (1), textConnection (1)
SPARQLchunks
autoproxyconfig (3), get_outcontent (3), sparql2list (2), eng_sparql (1), sparql2df (1)
httr
use_proxy (3), add_headers (2), content (1), GET (1)
utils
download.file (1), read.csv (1)
xml2
as_list (1), read_xml (1)
magrittr
%>% (1)
stats
df (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 2 files) and
- 1 authors
- 1 vignette
- no internal data file
- 5 imported packages
- 5 exported functions (median 18 lines of code)
- 7 non-exported functions in R (median 18 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 | 2 | 11.1 | |
| files_vignettes | 1 | 62.0 | |
| files_tests | 0 | 0.0 | TRUE |
| loc_R | 155 | 17.9 | |
| loc_vignettes | 102 | 24.4 | |
| num_vignettes | 1 | 59.0 | |
| n_fns_r | 12 | 17.0 | |
| n_fns_r_exported | 5 | 25.4 | |
| n_fns_r_not_exported | 7 | 16.5 | |
| n_fns_per_file_r | 6 | 75.5 | |
| num_params_per_fn | 4 | 51.1 | |
| loc_per_fn_r | 18 | 55.2 | |
| loc_per_fn_r_exp | 18 | 42.6 | |
| loc_per_fn_r_not_exp | 18 | 58.6 | |
| rel_whitespace_R | 4 | 6.3 | |
| rel_whitespace_vignettes | 36 | 26.4 | |
| doclines_per_fn_exp | 22 | 18.0 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 6 | 24.5 |
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)
3b. goodpractice results
R CMD check with rcmdcheck
rcmdcheck found no errors, warnings, or notes
Test coverage with covr
Package coverage: 0.8
The following files are not completely covered by tests:
| file | coverage |
|---|---|
| R/sparqlchunks.R | 0.8% |
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found no issues with this package!
Package Versions
| package | version |
|---|---|
| pkgstats | 0.1.6.17 |
| pkgcheck | 0.1.2.58 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
Hi @aourednik, have you made any progress addressing the issues that the bot flagged?
Please let me know how I can assist you in correcting any of these issues.
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Checks for SPARQLchunks (v0.2.1)
git hash: e89ea3ff
- :heavy_check_mark: Package name is available
- :heavy_multiplication_x: does not have a 'codemeta.json' file.
- :heavy_multiplication_x: does not have a 'contributing' file.
- :heavy_multiplication_x: The following functions have no documented return values: [autoproxyconfig, get_outcontent, sparql2df, sparql2list]
- :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_multiplication_x: These functions do not have examples: [autoproxyconfig, get_outcontent].
- :heavy_multiplication_x: Package has no continuous integration checks.
- :heavy_multiplication_x: Package coverage is 0.8% (should be at least 75%).
- :heavy_check_mark: R CMD check found no errors.
- :heavy_multiplication_x: R CMD check found 1 warning.
Important: All failing checks above must be addressed prior to proceeding
Package License: GPL (>= 3)
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 | 33 |
| internal | SPARQLchunks | 10 |
| internal | utils | 2 |
| internal | stats | 1 |
| imports | httr | 7 |
| imports | xml2 | 2 |
| imports | magrittr | 1 |
| imports | curl | NA |
| imports | 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
paste (5), tempfile (5), c (3), url (3), file.path (2), gsub (2), list (2), readLines (2), tempdir (2), tryCatch (2), ifelse (1), is.null (1), length (1), return (1), textConnection (1)
SPARQLchunks
autoproxyconfig (3), get_outcontent (3), sparql2list (2), eng_sparql (1), sparql2df (1)
httr
use_proxy (3), add_headers (2), content (1), GET (1)
utils
download.file (1), read.csv (1)
xml2
as_list (1), read_xml (1)
magrittr
%>% (1)
stats
df (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 2 files) and
- 1 authors
- 1 vignette
- no internal data file
- 5 imported packages
- 5 exported functions (median 18 lines of code)
- 7 non-exported functions in R (median 18 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 | 2 | 11.1 | |
| files_vignettes | 1 | 61.9 | |
| files_tests | 0 | 0.0 | TRUE |
| loc_R | 155 | 17.9 | |
| loc_vignettes | 102 | 24.4 | |
| num_vignettes | 1 | 58.8 | |
| n_fns_r | 12 | 17.0 | |
| n_fns_r_exported | 5 | 25.3 | |
| n_fns_r_not_exported | 7 | 16.4 | |
| n_fns_per_file_r | 6 | 75.7 | |
| num_params_per_fn | 4 | 51.2 | |
| loc_per_fn_r | 18 | 55.1 | |
| loc_per_fn_r_exp | 18 | 42.5 | |
| loc_per_fn_r_not_exp | 18 | 58.5 | |
| rel_whitespace_R | 4 | 6.2 | |
| rel_whitespace_vignettes | 36 | 26.2 | |
| doclines_per_fn_exp | 22 | 18.0 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 6 | 24.5 |
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)
3b. goodpractice results
R CMD check with rcmdcheck
R CMD check generated the following warning:
- checking package subdirectories ... WARNING Invalid citation information in ‘inst/CITATION’: Error in (function (bibtype, textVersion, header = NULL, footer = NULL, key = NULL, ..., other = list()) { bibtype <- as.character(bibtype) stopifnot(length(bibtype) == 1L) pos <- match(tolower(bibtype), tolower(BibTeX_names)) if (is.na(pos)) stop(gettextf("%s has to be one of %s", sQuote("bibtype"), paste(BibTeX_names, collapse = ", ")), domain = NA) bibtype <- BibTeX_names[pos] rval <- c(list(...), other) rval <- rval[!vapply(rval, .is_not_nonempty_text, NA)] fields <- tolower(names(rval)) names(rval) <- fields attr(rval, "bibtype") <- bibtype .bibentry_check_bibentry1(rval) pos <- fields %in% c("author", "editor") if (any(pos)) { for (i in which(pos)) rval[[i]] <- as.person(rval[[i]]) } if (any(!pos)) { for (i in which(!pos)) { s <- trimws(as.character(rval[[i]])) rval[[i]] <- paste(s[!is.na(s) & nzchar(s)], collapse = " ") } } attr(rval, "key") <- if (is.null(key)) NULL else as.character(key) if (!is.null(textVersion)) attr(rval, "textVersion") <- as.character(textVersion) if (!.is_not_nonempty_text(header)) attr(rval, "header") <- paste(header, collapse = "\n") if (!.is_not_nonempty_text(footer)) attr(rval, "footer") <- paste(footer, collapse = "\n") return(rval)})(bibtype = "Software", textVersion = NULL, header = NULL, footer = NULL, key = NULL, title = "SPARQLChunks", author = "André Ourednik", url = "https://github.com/aourednik/SPARQLchunks", year = "2024", other = list()): ‘bibtype’ has to be one of Article, Book, Booklet, InBook, InCollection, InProceedings, Manual, MastersThesis, Misc, PhdThesis, Proceedings, TechReport, Unpublished
Test coverage with covr
Package coverage: 0.8
The following files are not completely covered by tests:
| file | coverage |
|---|---|
| R/sparqlchunks.R | 0.8% |
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found no issues with this package!
Package Versions
| package | version |
|---|---|
| pkgstats | 0.2.0.46 |
| pkgcheck | 0.1.2.63 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
Hey @aourednik - I'm replacing @adamhsparks as Editor in Chief this quarter. Wanted to check in with you: are you still interested in resolving the issues flagged by the bot and moving forward with the review?
Hi @aourednik - due to the lack of reply, as my EiC rotation comes to a close this month, I am going to put this review on hold. We are happy to continue the conversation if you have bandwidth and interest to resolve the issues flagged by the bot. Thanks!
Dear @aourednik, I'm starting my EiC rotation.
I see a last contact intent by Emily more than one month ago (on Nov 10) and no response after that. In line with our policy (pasted below) I'll close this issue and also let you know by email.
I totally understand there can be many reasons why you're unable to respond. If you're ever able to continue please do not hesitate to resubmit.
--
https://devguide.ropensci.org/softwarereview_policies.html#policiesreviewprocess
- If the author hasn’t requested a holding label, but is simply not responding, we should close the issue within one month after the last contact intent. This intent will include a comment tagging the author, but also an email using the email address listed in the DESCRIPTION of the package which is one of the rare cases where the editor will try to contact the author by email.
- If a submission is closed and the author wishes to re-submit, they’ll have to start a new submission. If the package is still in scope, the author will have to respond to the initial reviews before the editor starts looking for new reviewers.
Dear @maurolepore . Thank you for this relaunch. I, indeed, had no chance to get back to this.
Regarding automatic RopenSci checks, I fail to understand the following two aspects:
✖️ Package has no continuous integration checks. ✖️ Package coverage is 0.8% (should be at least 75%).
Could you tell me more about what these mean?
To be honest, I've tried to submit it to RopenSci , because my package cannot work without two aspects that block it from passing the automatic CRAN check. The CRAN team seems overwhelmed, not having the resources for a human intervention. So I'm left in front of a closed door guarded by a bot. My package works on both Windows and Mac, though, and has been useful to many, who installed it via GitHub.
Regarding CRANbot's issues, I have this:
- Possibly misspelled words in DESCRIPTION: SPARQL (2:12, 7:28, 7:104)
This is not a misspelling. SPARQL is the name of a well-known database query language.
- Found the following assignments to the global environment File ‘SPARQLchunks/R/sparqlchunks.R’: assign(varname, out, envir = knitr::knit_global())
I understand that assigning to a variable in the GlobalEnv is discouraged, but my package only does so when the user specifies the name of the variable. Thus, the user bears responsibility for eventual variable name conflicts. Like the SQL chunks in R markdown, my package provides the option to write the result to a user-defined variable in the global environment. (output.var="my_variable"). Without this possibility, my package misses its core purpose.
Thanks for getting back to us @aourednik. The failed checks are because your package needs to be tested, as described in https://devguide.ropensci.org/pkg_building.html#testing, and the links included there. It is generally good practice to automate test coverage, these days most commonly via GitHub actions, as described in https://devguide.ropensci.org/pkg_ci.html.
In regard to your other questions, the note on mis-spelling can - and should - be avoided by putting SPARQL in single quotes: 'SPARQL'. It in indeed a mis-spelling because it is not a word, and the single quotes are necessary to flag that. The global assignment is a trickier one. For rOpenSci purposes, it should be okay as long as you explain clearly why that is unavoidable. And for that you'll likely need to consider why it's not possible to assign to some other environment rather than the global environment. (Looking at your code, I do not see why that shouldn't be possible, If it indeed only works via the global environment, you'll need to clearly explain reasons why.)
Finally, our system has incorporated a couple more checks since your last run here, including that we no longer accept repos with "master" as the default branch, so you'll at least need to rename that before proceeding. I'd suggest that you proceed through the following stages:
- Run
pkgcheck::pkgcheck()locally and try fixing as much as you can there. - To help in final tweaks, you can and should install our https://github.com/ropensci-review-tools/pkgcheck-action in your repo to get automated check reports on each push.
- Once you're satisfied, call
@ropensci-review-bot check packagehere to generate a new check report - and feel free to re-open the issue at that stage.
After that stage, we'll happily continue discussion here. Thanks again for getting things moving here. Looking forward to seeing progress.
@ropensci-review-bot check package
Many thanks for reply @mpadge I have made changes but the bot repeatedly reports issues that seem counterfactual https://github.com/aourednik/SPARQLchunks/actions/runs/15874909723
- "Package has no continuous integration checks" : it has 3 of them : https://github.com/aourednik/SPARQLchunks/tree/main/.github/workflows
- "These functions do not have examples: [autoproxyconfig, get_outcontent]." : They both do have an @examples entry in the preamble in https://github.com/aourednik/SPARQLchunks/blob/main/R/sparqlchunks.R . Moreover, these functions are purely internal, not inteded for export, not exported and not usable by the package's user. Waht is the purpose for providing examples for internal functions?
- "The following functions have no documented return values: [autoproxyconfig, get_outcontent, sparql2df, sparql2list]" : they all do have a defined @returns
Can you help?
Ah, I think that the issue needs to be open for the bot to respond. Responses to your concerns:
- The check for continuous integration is indeed confusing, and shall be addressed in https://github.com/ropensci-review-tools/pkgcheck/issues/255 to say in your case the checks are present, yet fail. Sorry about the confusion there.
- The note about not having examples is because you need to add
#' @noRdto the Roxygen blocks to prevent the.Rdfiles from being generated in theman/directory. See https://devguide.ropensci.org/pkg_building.html#roxygen-2-use for details. - The note about no return values is because the Roxygen2 tag is
@returnand not@returns.
More generally, please consider that these checks and associated reports serve the singular purpose of helping you to get your package in shape, rather than being "counterfactual" in any way. There is a wealth of information in https://devguide.ropensci.org, and all the links included there. Note also that I can see workflows on your repo when I use the GitHub API, and yet I see no "Actions" tab at the top, which should be present once workflows have been triggered? If you use usethis::use_github_action(), it should definitely ensure that everything is set up correctly.
Hope that helps
Many thanks @mpadge , this helps a lot. I've changed all the points you mention in my code. On my local machine, all unit tests I'v designed pass, and I have 79% coverage. But they fail on GitHub. Perhaps because the package is web dependant and all my functions call an external resource with httr ?
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Checks for SPARQLchunks (v0.3)
git hash: da51f607
- :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_multiplication_x: Package coverage failed
- :heavy_multiplication_x: R CMD check found 1 error.
- :heavy_multiplication_x: R CMD check found 1 warning.
Important: All failing checks above must be addressed prior to proceeding
Package License: GPL (>= 3)
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 | 43 |
| internal | SPARQLchunks | 8 |
| internal | utils | 2 |
| internal | stats | 1 |
| imports | httr | 7 |
| imports | xml2 | 1 |
| imports | curl | NA |
| imports | knitr | NA |
| suggests | rmarkdown | NA |
| suggests | testthat | NA |
| linking_to | NA | NA |
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.
base
list (8), paste (5), tempfile (5), c (3), url (3), warning (3), file.path (2), gsub (2), ifelse (2), readLines (2), return (2), tempdir (2), tryCatch (2), length (1), textConnection (1)
SPARQLchunks
get_outcontent (3), autoproxyconfig (1), eng_sparql (1), is_windows (1), sparql2df (1), sparql2list (1)
httr
use_proxy (3), add_headers (2), content (1), GET (1)
utils
download.file (1), read.csv (1)
stats
df (1)
xml2
as_list (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 3 files) and
- 1 authors
- 1 vignette
- no internal data file
- 5 imported packages
- 3 exported functions (median 18 lines of code)
- 11 non-exported functions in R (median 18 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 | 3 | 18.7 | |
| files_vignettes | 1 | 61.5 | |
| files_tests | 6 | 78.7 | |
| loc_R | 228 | 25.3 | |
| loc_vignettes | 102 | 24.9 | |
| loc_tests | 153 | 45.0 | |
| num_vignettes | 1 | 58.4 | |
| n_fns_r | 14 | 20.1 | |
| n_fns_r_exported | 3 | 14.6 | |
| n_fns_r_not_exported | 11 | 24.9 | |
| n_fns_per_file_r | 7 | 80.4 | |
| num_params_per_fn | 4 | 51.1 | |
| loc_per_fn_r | 18 | 54.8 | |
| loc_per_fn_r_exp | 18 | 42.4 | |
| loc_per_fn_r_not_exp | 18 | 58.1 | |
| rel_whitespace_R | 3 | 6.9 | |
| rel_whitespace_vignettes | 36 | 26.4 | |
| rel_whitespace_tests | 14 | 35.6 | |
| doclines_per_fn_exp | 25 | 23.8 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 8 | 28.5 |
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 |
|---|---|---|---|---|---|
| 15902205106 | pkgcheck | cancelled | b9c7f9 | 5 | 2025-06-26 |
| 15902205107 | R-CMD-check.yaml | failure | b9c7f9 | 1 | 2025-06-26 |
| 15902205095 | Style | success | b9c7f9 | 6 | 2025-06-26 |
| 15902205114 | test-coverage.yaml | failure | b9c7f9 | 3 | 2025-06-26 |
3b. goodpractice results
R CMD check with rcmdcheck
R CMD check generated the following error:
- checking tests ...
Running ‘testthat.R’
ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
<packageNotFoundError/error/condition>
Error in
library(mockery): there is no package called 'mockery' Backtrace: ▆- └─base::library(mockery) at test-eng_sparql.R:2:1
── Error ('test-get_outcontent.R:2:1'): (code run outside of
test_that()) ──── <packageNotFoundError/error/condition> Error inlibrary(mockery): there is no package called 'mockery' Backtrace: ▆ - └─base::library(mockery) at test-get_outcontent.R:2:1
- └─base::library(mockery) at test-eng_sparql.R:2:1
── Error ('test-get_outcontent.R:2:1'): (code run outside of
[ FAIL 2 | WARN 2 | SKIP 0 | PASS 4 ] Error: Test failures Execution halted
R CMD check generated the following warning:
- checking for code/documentation mismatches ... WARNING Codoc mismatches from Rd file 'eng_sparql.Rd': eng_sparql Code: function(opts) Docs: function(options) Argument names in code not in docs: opts Argument names in docs not in code: options Mismatches in argument names: Position: 1 Code: opts Docs: options
R CMD check generated the following note:
- checking R code for possible problems ... NOTE eng_sparql: no visible global function definition for ‘capture.output’ Undefined global functions or variables: capture.output Consider adding importFrom("utils", "capture.output") to your NAMESPACE file.
R CMD check generated the following test_fail:
-
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(SPARQLchunks) Run
knitr::knit_engines$set(sparql = SPARQLchunks::eng_sparql)in your Rmd setup chunk to be able to execute SPARQL chunks.test_check("SPARQLchunks") Trying to determine proxy parameters No proxy found, nor needed, to access the endpoint https://lindas.admin.ch/query Preparing to send query to: https://lindas.admin.ch/query SPARQL string: PREFIX schema: http://schema.org/ SELECT * WHERE { ?sub a schema:DataCatalog . ?subtype a schema:DataType . } Query URL: https://lindas.admin.ch/query?query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0A%09%20%20%20SELECT%20%2A%20WHERE%20%7B%0A%09%20%20%20%3Fsub%20a%20schema%3ADataCatalog%20.%0A%09%20%20%20%3Fsubtype%20a%20schema%3ADataType%20.%0A%09%7D Trying to determine proxy parameters No proxy found, nor needed, to access the endpoint https://lindas.admin.ch/query Preparing to send query to: https://lindas.admin.ch/query SPARQL string: PREFIX schema: http://schema.org/ SELECT * WHERE { ?sub a schema:DataCatalog . ?subtype a schema:DataType . } Query URL: https://lindas.admin.ch/query?query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0A%09%20%20%20SELECT%20%2A%20WHERE%20%7B%0A%09%20%20%20%3Fsub%20a%20schema%3ADataCatalog%20.%0A%09%20%20%20%3Fsubtype%20a%20schema%3ADataType%20.%0A%09%7D Preparing to send query to: https://lindas.admin.ch/query SPARQL string: PREFIX schema: http://schema.org/ SELECT * WHERE { ?sub a schema:DataCatalog . ?subtype a schema:DataType . } Query URL: https://lindas.admin.ch/query?query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0A%09%20SELECT%20%2A%20WHERE%20%7B%0A%09%20%3Fsub%20a%20schema%3ADataCatalog%20.%0A%09%20%3Fsubtype%20a%20schema%3ADataType%20.%0A%09%7D [ FAIL 2 | WARN 2 | SKIP 0 | PASS 4 ]
══ Warnings ════════════════════════════════════════════════════════════════════ ── Warning ('test-sparql2list.R:8:2'): sparq2list returns a list ─────────────── Not Acceptable (HTTP 406). Backtrace: ▆
- └─SPARQLchunks::sparql2list(endpoint, query) at test-sparql2list.R:8:9
- └─SPARQLchunks:::get_outcontent(...)
-
├─base::tryCatch(...) -
│ └─base (local) tryCatchList(expr, classes, parentenv, handlers) -
│ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) -
│ └─base (local) doTryCatch(return(expr), name, parentenv, handler) -
└─httr::warn_for_status(out)
── Warning ('test-sparql2list.R:8:2'): sparq2list returns a list ─────────────── First query attempt result is empty. Trying without Accept=application/xml header. The result is not guaranteed to be a list. Backtrace: ▆
- └─SPARQLchunks::sparql2list(endpoint, query) at test-sparql2list.R:8:9
- └─SPARQLchunks:::get_outcontent(...)
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-eng_sparql.R:2:1'): (code run outside of test_that()) ────────
<packageNotFoundError/error/condition>
Error in library(mockery): there is no package called 'mockery'
Backtrace:
▆
- └─base::library(mockery) at test-eng_sparql.R:2:1
── Error ('test-get_outcontent.R:2:1'): (code run outside of
test_that()) ──── <packageNotFoundError/error/condition> Error inlibrary(mockery): there is no package called 'mockery' Backtrace: ▆ - └─base::library(mockery) at test-get_outcontent.R:2:1
[ FAIL 2 | WARN 2 | SKIP 0 | PASS 4 ] Error: Test failures Execution halted
R CMD check generated the following check_fails:
- rcmdcheck_undefined_globals
- rcmdcheck_code_docs_mismatch
- rcmdcheck_tests_pass
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found the following 23 potential issues:
| message | number of times |
|---|---|
| Avoid library() and require() calls in packages | 1 |
| Lines should not be more than 80 characters. This line is 103 characters. | 1 |
| Lines should not be more than 80 characters. This line is 104 characters. | 1 |
| Lines should not be more than 80 characters. This line is 106 characters. | 1 |
| Lines should not be more than 80 characters. This line is 107 characters. | 1 |
| Lines should not be more than 80 characters. This line is 110 characters. | 1 |
| Lines should not be more than 80 characters. This line is 120 characters. | 2 |
| Lines should not be more than 80 characters. This line is 122 characters. | 1 |
| Lines should not be more than 80 characters. This line is 123 characters. | 2 |
| Lines should not be more than 80 characters. This line is 137 characters. | 1 |
| Lines should not be more than 80 characters. This line is 152 characters. | 1 |
| Lines should not be more than 80 characters. This line is 162 characters. | 1 |
| Lines should not be more than 80 characters. This line is 176 characters. | 1 |
| Lines should not be more than 80 characters. This line is 234 characters. | 1 |
| Lines should not be more than 80 characters. This line is 82 characters. | 1 |
| Lines should not be more than 80 characters. This line is 83 characters. | 1 |
| Lines should not be more than 80 characters. This line is 87 characters. | 1 |
| Lines should not be more than 80 characters. This line is 89 characters. | 1 |
| Lines should not be more than 80 characters. This line is 90 characters. | 1 |
| Lines should not be more than 80 characters. This line is 91 characters. | 2 |
Package Versions
| package | version |
|---|---|
| pkgstats | 0.2.0.58 |
| pkgcheck | 0.1.2.136 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
@aourednik Those checks show some concrete next steps. Specifically, code coverage is failing, both in your repo actions and on the report above. You can click in the bot report on "goodpractice and other checks" to see details. The package "mockery" is not being found. Any and all packages used anywhere must be declared in your DESCRIPTION file. Packages used only in tests need only be specified in "Suggests" rather than "Imports". Once you've got your local checks working, including the pkgcheck workflow, you may ping the bot here to run checks again. Feel free to ping me with any further issues from your own repo, or here. Thanks
@ropensci-review-bot
I'm sorry human, I don't understand that. You can see what commands I support by typing:
@ropensci-review-bot help
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Checks for SPARQLchunks (v0.3)
git hash: 879efaa6
- :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 83.8%.
- :heavy_check_mark: R CMD check found no errors.
- :heavy_multiplication_x: R CMD check found 2 warnings.
Important: All failing checks above must be addressed prior to proceeding
Package License: GPL (>= 3)
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 | 43 |
| internal | SPARQLchunks | 8 |
| internal | utils | 2 |
| internal | stats | 1 |
| imports | httr | 7 |
| imports | xml2 | 1 |
| imports | curl | NA |
| imports | knitr | NA |
| suggests | rmarkdown | NA |
| suggests | testthat | NA |
| suggests | mockery | NA |
| linking_to | NA | NA |
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.
base
list (8), paste (5), tempfile (5), c (3), url (3), warning (3), file.path (2), gsub (2), ifelse (2), readLines (2), return (2), tempdir (2), tryCatch (2), length (1), textConnection (1)
SPARQLchunks
get_outcontent (3), autoproxyconfig (1), eng_sparql (1), is_windows (1), sparql2df (1), sparql2list (1)
httr
use_proxy (3), add_headers (2), content (1), GET (1)
utils
download.file (1), read.csv (1)
stats
df (1)
xml2
as_list (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 2 files) and
- 1 authors
- 1 vignette
- no internal data file
- 4 imported packages
- 3 exported functions (median 18 lines of code)
- 11 non-exported functions in R (median 18 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 | 2 | 11.0 | |
| files_vignettes | 1 | 61.5 | |
| files_tests | 6 | 78.7 | |
| loc_R | 223 | 24.8 | |
| loc_vignettes | 102 | 24.9 | |
| loc_tests | 171 | 47.5 | |
| num_vignettes | 1 | 58.4 | |
| n_fns_r | 14 | 20.1 | |
| n_fns_r_exported | 3 | 14.6 | |
| n_fns_r_not_exported | 11 | 24.9 | |
| n_fns_per_file_r | 7 | 80.4 | |
| num_params_per_fn | 4 | 51.1 | |
| loc_per_fn_r | 18 | 54.8 | |
| loc_per_fn_r_exp | 18 | 42.4 | |
| loc_per_fn_r_not_exp | 18 | 58.1 | |
| rel_whitespace_R | 3 | 6.9 | |
| rel_whitespace_vignettes | 36 | 26.4 | |
| rel_whitespace_tests | 22 | 47.3 | |
| doclines_per_fn_exp | 25 | 23.8 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 8 | 28.5 |
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 |
|---|---|---|---|---|---|
| 15945134547 | pkgcheck | NA | 879efa | 6 | 2025-06-28 |
| 15945134554 | R-CMD-check.yaml | NA | 879efa | 2 | 2025-06-28 |
| 15945134550 | Style | success | 879efa | 7 | 2025-06-28 |
| 15945134553 | test-coverage.yaml | failure | 879efa | 4 | 2025-06-28 |
3b. goodpractice results
R CMD check with rcmdcheck
R CMD check generated the following warnings:
-
checking for code/documentation mismatches ... WARNING Codoc mismatches from Rd file 'eng_sparql.Rd': eng_sparql Code: function(opts) Docs: function(options) Argument names in code not in docs: opts Argument names in docs not in code: options Mismatches in argument names: Position: 1 Code: opts Docs: options
-
checking Rd \usage sections ... WARNING Undocumented arguments in Rd file 'eng_sparql.Rd' ‘options’ Documented arguments not in \usage in Rd file 'eng_sparql.Rd': ‘opts’
Functions with \usage entries need to have the appropriate \alias entries, and all their arguments documented. The \usage entries must correspond to syntactically valid R code. See chapter ‘Writing R documentation files’ in the ‘Writing R Extensions’ manual.
R CMD check generated the following note:
- checking R code for possible problems ... NOTE eng_sparql: no visible global function definition for ‘capture.output’ Undefined global functions or variables: capture.output Consider adding importFrom("utils", "capture.output") to your NAMESPACE file.
R CMD check generated the following check_fails:
- rcmdcheck_undefined_globals
- rcmdcheck_code_docs_mismatch
Test coverage with covr
Package coverage: 83.82
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found the following 25 potential issues:
| message | number of times |
|---|---|
| Avoid library() and require() calls in packages | 1 |
| Lines should not be more than 80 characters. This line is 100 characters. | 1 |
| Lines should not be more than 80 characters. This line is 102 characters. | 1 |
| Lines should not be more than 80 characters. This line is 104 characters. | 1 |
| Lines should not be more than 80 characters. This line is 106 characters. | 1 |
| Lines should not be more than 80 characters. This line is 110 characters. | 1 |
| Lines should not be more than 80 characters. This line is 120 characters. | 3 |
| Lines should not be more than 80 characters. This line is 128 characters. | 1 |
| Lines should not be more than 80 characters. This line is 137 characters. | 1 |
| Lines should not be more than 80 characters. This line is 147 characters. | 1 |
| Lines should not be more than 80 characters. This line is 152 characters. | 1 |
| Lines should not be more than 80 characters. This line is 162 characters. | 1 |
| Lines should not be more than 80 characters. This line is 176 characters. | 1 |
| Lines should not be more than 80 characters. This line is 213 characters. | 1 |
| Lines should not be more than 80 characters. This line is 234 characters. | 1 |
| Lines should not be more than 80 characters. This line is 83 characters. | 1 |
| Lines should not be more than 80 characters. This line is 86 characters. | 1 |
| Lines should not be more than 80 characters. This line is 87 characters. | 2 |
| Lines should not be more than 80 characters. This line is 88 characters. | 1 |
| Lines should not be more than 80 characters. This line is 91 characters. | 2 |
| Lines should not be more than 80 characters. This line is 93 characters. | 1 |
Package Versions
| package | version |
|---|---|
| pkgstats | 0.2.0.58 |
| pkgcheck | 0.1.2.136 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
@ropensci-review-bot check package
Thanks, about to send the query.