software-review icon indicating copy to clipboard operation
software-review copied to clipboard

SPARQLChunks : query SPARQL endpoints and run SPARQL chunks in R-markdown files.

Open aourednik opened this issue 1 year ago • 4 comments

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

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 pkgcheck items 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.

This package:

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.

aourednik avatar Sep 10 '24 15:09 aourednik

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

ropensci-review-bot avatar Sep 10 '24 15:09 ropensci-review-bot

:rocket:

Editor check started

:wave:

ropensci-review-bot avatar Sep 10 '24 15:09 ropensci-review-bot

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.

ropensci-review-bot avatar Sep 10 '24 15:09 ropensci-review-bot

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.

adamhsparks avatar Oct 15 '24 02:10 adamhsparks

@ropensci-review-bot check package

adamhsparks avatar Oct 31 '24 01:10 adamhsparks

Thanks, about to send the query.

ropensci-review-bot avatar Oct 31 '24 01:10 ropensci-review-bot

:rocket:

Editor check started

:wave:

ropensci-review-bot avatar Oct 31 '24 01:10 ropensci-review-bot

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:

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

ropensci-review-bot avatar Oct 31 '24 02:10 ropensci-review-bot

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?

emilyriederer avatar Nov 10 '24 23:11 emilyriederer

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!

emilyriederer avatar Jan 25 '25 01:01 emilyriederer

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.

maurolepore avatar Feb 02 '25 14:02 maurolepore

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:

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

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

aourednik avatar Jun 24 '25 18:06 aourednik

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:

  1. Run pkgcheck::pkgcheck() locally and try fixing as much as you can there.
  2. 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.
  3. Once you're satisfied, call @ropensci-review-bot check package here 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.

mpadge avatar Jun 25 '25 07:06 mpadge

@ropensci-review-bot check package

aourednik avatar Jun 25 '25 11:06 aourednik

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?

aourednik avatar Jun 25 '25 11:06 aourednik

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 #' @noRd to the Roxygen blocks to prevent the .Rd files from being generated in the man/ 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 @return and 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

mpadge avatar Jun 25 '25 12:06 mpadge

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 ?

aourednik avatar Jun 26 '25 18:06 aourednik

@ropensci-review-bot check package

mpadge avatar Jun 26 '25 19:06 mpadge

Thanks, about to send the query.

ropensci-review-bot avatar Jun 26 '25 19:06 ropensci-review-bot

:rocket:

Editor check started

:wave:

ropensci-review-bot avatar Jun 26 '25 19:06 ropensci-review-bot

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

R-CMD-check.yaml

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:

  1. 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: ▆
    1. └─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 in library(mockery): there is no package called 'mockery' Backtrace: ▆
    2. └─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 warning:

  1. 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:

  1. 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:

  1. 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: ▆

  1. └─SPARQLchunks::sparql2list(endpoint, query) at test-sparql2list.R:8:9
  2. └─SPARQLchunks:::get_outcontent(...)
  3. ├─base::tryCatch(...)
    
  4. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
    
  5. │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  6. │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  7. └─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: ▆

  1. └─SPARQLchunks::sparql2list(endpoint, query) at test-sparql2list.R:8:9
  2. └─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: ▆

  1. └─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 in library(mockery): there is no package called 'mockery' Backtrace: ▆
  2. └─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:

  1. rcmdcheck_undefined_globals
  2. rcmdcheck_code_docs_mismatch
  3. 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.

ropensci-review-bot avatar Jun 26 '25 19:06 ropensci-review-bot

@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

mpadge avatar Jun 27 '25 07:06 mpadge

@ropensci-review-bot

aourednik avatar Jun 28 '25 14:06 aourednik

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 avatar Jun 28 '25 14:06 ropensci-review-bot

@ropensci-review-bot check package

aourednik avatar Jun 28 '25 14:06 aourednik

Thanks, about to send the query.

ropensci-review-bot avatar Jun 28 '25 14:06 ropensci-review-bot

:rocket:

Editor check started

:wave:

ropensci-review-bot avatar Jun 28 '25 14:06 ropensci-review-bot

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

R-CMD-check.yaml

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:

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

  2. 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:

  1. 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:

  1. rcmdcheck_undefined_globals
  2. 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 avatar Jun 28 '25 14:06 ropensci-review-bot

@ropensci-review-bot check package

aourednik avatar Jun 28 '25 14:06 aourednik

Thanks, about to send the query.

ropensci-review-bot avatar Jun 28 '25 14:06 ropensci-review-bot