Repository navigation
dataset: Create Data Frames that are Easier to Exchange and Reuse #681
Description
Activity
ropensci-review-bot commented
on Jan 21, 2025 CollaboratorMore actionsThanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type
@ropensci-review-bot helpfor help.ropensci-review-bot commented
on Jan 21, 2025 on Jan 21, 2025 · Hidden as outdatedshow commentMore actions@antaldaniel I am so sorry, you didn't use the right template... because we broke the right template last time we edited it! I put it back in shape, thanks for helping us catch it. You can find it by opening a new issue (it'll be at the top of the list) or use it from here https://github.com/ropensci/software-review/blob/main/.github/ISSUE_TEMPLATE/A-submit-software-for-review.md
So sorry, thanks for your patience.
ropensci-review-bot commented
on Jan 21, 2025 CollaboratorMore actionsChecks for dataset (v0.3.4002)
git hash: 7bf85ac7
- ✔️ Package is already on CRAN.
- ✔️ 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 failed
- ✖️ R CMD check process failed with message: 'Build process failed'.
- 👀 Function names are duplicated in other packages
Important: All failing checks above must be addressed prior to proceeding
(Checks marked with 👀 may be optionally addressed.)
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 281 internal dataset 215 internal graphics 11 internal stats 2 imports assertthat 29 imports utils 8 imports labelled 5 imports rlang 2 imports cli 1 imports haven 1 imports tibble 1 imports ISOcodes NA imports methods NA imports pillar NA imports RefManageR NA imports vctrs NA suggests knitr NA suggests rdflib NA suggests rmarkdown NA suggests spelling 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
ifelse (41), as.character (40), is.null (39), list (20), c (14), vapply (8), lapply (7), names (7), data.frame (6), logical (6), paste (6), paste0 (6), character (5), inherits (5), which (5), contributors (4), date (4), seq_along (4), substr (4), Sys.time (4), for (3), format (3), invisible (3), length (3), t (3), with (3), all (2), attr (2), class (2), drop (2), gsub (2), labels (2), nrow (2), args (1), as.data.frame (1), as.Date (1), as.POSIXct (1), cbind (1), do.call (1), double (1), if (1), nchar (1), ncol (1), rbind (1), Sys.Date (1), tolower (1), vector (1)
dataset
get_bibentry (26), creator (11), dataset_title (11), subject (10), publisher (7), rights (7), get_creator (6), identifier (6), description (5), language (5), new_Subject (5), provenance (5), dataset_df (4), get_publisher (4), get_type (4), agent (3), convert_column (3), n_triple (3), publication_year (3), var_definition (3), var_namespace (3), var_unit (3), as_dataset_df (2), as_dublincore (2), datacite (2), default_provenance (2), definition_attribute (2), geolocation (2), get_author (2), get_person_iri (2), idcol_find (2), is_person (2), is.dataset_df (2), n_triples (2), namespace_attribute (2), new_my_tibble (2), prov_author (2), unit_attribute (2), as_character (1), as_character.haven_labelled_defined (1), as_datacite (1), as_numeric (1), as_numeric.haven_labelled_defined (1), as.character.haven_labelled_defined (1), create_iri (1), dataset_to_triples (1), defined (1), describe (1), dublincore (1), dublincore_to_triples (1), fix_contributor (1), fix_publisher (1), get_definition_attribute (1), get_namespace_attribute (1), get_unit_attribute (1), id_to_column (1), is_dataset_df (1), is_doi (1), is.datacite (1), is.datacite.datacite (1), is.defined (1), is.dublincore (1), is.dublincore.dublincore (1), is.subject (1), label_attribute (1), names.dataset_df (1), new_datacite (1), new_datetime_defined (1), new_dublincore (1), new_labelled_defined (1), print.dataset_df (1), set_default_bibentry (1), set_definition_attribute (1), set_namespace_attribute (1), set_unit_attribute (1), set_var_labels (1), subject_create (1), summary.dataset_df (1), summary.haven_labelled_defined (1), tbl_sum.dataset_df (1), var_definition.default (1), var_label.dataset_df (1), var_label.defined (1), var_namespace.default (1)
assertthat
assert_that (29)
graphics
title (11)
utils
person (5), bibentry (2), citation (1)
labelled
var_label (4), to_labelled (1)
rlang
caller_env (1), env_is_user_facing (1)
stats
df (1), family (1)
cli
cat_line (1)
haven
labelled (1)
tibble
new_tibble (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 29 files) and
- 1 authors
- 5 vignettes
- 1 internal data file
- 12 imported packages
- 89 exported functions (median 5 lines of code)
- 153 non-exported functions in R (median 8 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()functionThe 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 29 88.1 files_vignettes 5 95.4 files_tests 29 97.1 loc_R 1731 79.0 loc_vignettes 521 77.3 loc_tests 717 77.6 num_vignettes 5 96.4 TRUE data_size_total 2480 62.3 data_size_median 2480 69.0 n_fns_r 242 91.0 n_fns_r_exported 89 94.0 n_fns_r_not_exported 153 89.0 n_fns_per_file_r 5 71.9 num_params_per_fn 2 8.2 loc_per_fn_r 6 13.0 loc_per_fn_r_exp 5 8.5 loc_per_fn_r_not_exp 8 22.9 rel_whitespace_R 25 85.1 rel_whitespace_vignettes 37 81.2 rel_whitespace_tests 23 79.5 doclines_per_fn_exp 52 64.9 doclines_per_fn_not_exp 0 0.0 TRUE fn_call_network_size 155 84.7
2a. Network visualisation
Click to see the interactive network visualisation of calls between objects in package
3.
goodpracticeand other checksDetails of goodpractice checks (click to open)
3a. Continuous Integration Badges
3b.
goodpracticeresultsR CMD checkwith rcmdcheckR CMD check generated the following error:
- Error in proc$get_built_file() : Build process failed
R CMD check generated the following check_fails:
- no_description_date
- no_import_package_as_a_whole
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
Error : Build failed, unknown error, standard output:
- checking for file ‘dataset/DESCRIPTION’ ... OK
- preparing ‘dataset’:
- checking DESCRIPTION meta-information ... OK
- installing the package to build vignettes
- creating vignettes ... ERROR
--- re-building ‘bibentry.Rmd’ using rmarkdown
--- finished re-building ‘bibentry.Rmd’
--- re-building ‘dataset_df.Rmd’ using rmarkdown
--- finished re-building ‘dataset_df.Rmd’--- re-building ‘defined.Rmd’ using rmarkdown
--- finished re-building ‘defined.Rmd’--- re-building ‘new_requirements.Rmd’ using rmarkdown
--- finished re-building ‘new_requirements.Rmd’--- re-building ‘rdf.Rmd’ using rmarkdown
Quitting from lines 106-108 [jsonld] (rdf.Rmd)
Error: processing vignette 'rdf.Rmd' failed with diagnostics:
please install the jsonld package to use this functionality.
--- failed re-building ‘rdf.Rmd’SUMMARY: processing the following file failed:
‘rdf.Rmd’Error: Vignette re-building failed.
Execution haltedStatic code analyses with lintr
lintr found no issues with this package!
4. Other Checks
Details of other checks (click to open)
✖️ The following 10 function names are duplicated in other packages:
-
as_characterfrom metan, radiant.data, retroharmonize, sjlabelled
-
as_numericfrom descstat, metan, qdapRegex, radiant.data, retroharmonize, sjlabelled, zenplots
-
describefrom AzureVision, Bolstad2, describer, dlookr, explore, Hmisc, iBreakDown, ingredients, lambda.r, MSbox, onewaytests, prettyR, psych, psych, psyntur, questionr, radiant.data, RCPA3, Rlab, scan, scorecard, sylly, tidycomm
-
descriptionfrom dataMaid, dataPreparation, dataReporter, dcmodify, memisc, metaboData, PerseusR, ritis, rmutil, rsyncrosim, stream, synchronicity, timeSeries, tis, validate
-
get_bibentryfrom eurostat
-
identifierfrom Ramble
-
is.definedfrom nonmemica
-
languagefrom sylly, wakefield
-
provenancefrom provenance
-
subjectfrom DGM, emayili, gmailr, sendgridr
Package Versions
package version pkgstats 0.2.0.48 pkgcheck 0.1.2.77
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with ✖️ have been resolved.
@maelle let me know if this works now :)
Yes, thank you!
@ropensci-review-bot assign @maelle as editor
ropensci-review-bot commented
on Jan 21, 2025 CollaboratorMore actionsAssigned! @maelle is now the editor
Thanks again for your submission!
Editor checks:
- Documentation: The package has sufficient documentation available online (README, pkgdown docs) to allow for an assessment of functionality and scope without installing the package. In particular,
- Is the case for the package well made?
- Is the reference index page clear (grouped by topic if necessary)?
- Are vignettes readable, sufficiently detailed and not just perfunctory?
- Fit: The package meets criteria for fit and overlap.
- Installation instructions: Are installation instructions clear enough for human users?
- Tests: If the package has some interactivity / HTTP / plot production etc. are the tests using state-of-the-art tooling?
- Contributing information: Is the documentation for contribution clear enough e.g. tokens for tests, playgrounds?
- License: The package has a CRAN or OSI accepted license.
- Project management: Are the issue and PR trackers in a good shape, e.g. are there outstanding bugs, is it clear when feature requests are meant to be tackled?
Editor comments
Documentation
My main comment before I can proceed to looking for reviewers is that the case of the package could be made better.
On the one hand, it'd be interesting to read how dataset compares to other approaches to the same "problem", such as (if I follow correctly)
- https://docs.ropensci.org/frictionless/
- https://docs.ropensci.org/datapack/
- https://datapackage.org/
- https://www.researchobject.org/
On the other hand, how would an user take advantage of dataset?
To me, it is not clear yet from reading the docs.
Questions I wonder about:- As a data publisher, I create the dataset object, and then, how does it help me document it? How does it help me publish it on a repository?
- When you mention standard statistical libraries in the README, could you name some?
- As a data consumer, how do I create a dataset object (do I get it from an R package? shared in another way)? How can I easily use the information on units when exploring the data, when plotting it?
In short, could you exemplify "release" and "re-use" in a vignette or more, as use cases, potentially using as roles the type of users you mention in the submission under "target audience".
For instance https://wbdataset.dataobservatory.eu/ is a good example, but it is mentioned in a vignette.
More concrete information like wbdataset should make it to the README to make it clearer what dataset is about (and then be expanded in vignettes).A tiny comment: I find "reuse" harder to parse than "re-use" but that might be a personal preference.
Installation instructions
I'd recommend documenting the two methods of installation (CRAN and GitHub) in distinct chunks so readers could copy-paste the entire code chunk of interest.
Instead of devtools you could recommend using pak.
install.packages("pak") pak::pak("dataobservatory-eu/dataset")
Default git branch
You might want to rename the master branch to main as some people can be offended by the word "master", see https://www.tidyverse.org/blog/2021/10/renaming-default-branch/ that includes links to context, and practical advice on renaming the default branch.
Contributing guide
The contributing guide does not seem customized.
It mentions a possible "src" folder which is not present.Since you are looking for co-developers, and mentioned one of the articles could be relevant to potential contributors, I'd recommend having some text related to design and wishes for feedback in the contributing guide.
The contributing guide mentions "AppVeyor" which is not used any more as far as I can tell.
Continuous integration
-
If AppVeyor is not used any more, please remove the related contributing file.
-
The code coverage workflow seems not to be working: https://github.com/dataobservatory-eu/dataset/actions/workflows/test-coverage.yaml I'd recommend using the latest workflow file from r-lib/actions, by copy-pasting it or by running
usethis::use_github_action("test-coverage"). -
The pkgdown website is not up to date, for instance on it the test coverage badge is not broken whereas it is in the README. Please add a workflow to continuously deploy it, for instance by running
usethis::use_github_action("pkgdown"). -
If you no longer whish to use the R-CMD-check workflow because you rely on the R-hub ones, please remove the old workflow file.
-
The latest commits all have red crosses as status, which shows the continuous integration files need a bit of cleaning and tweaking. 🙂
Project management
From the open issues, which ones are meant to be tackled soon?
One of them has the "First CRAN release" milestone, which is outdated.Code style
I'd recommend running styler (on R scripts including tests) to make spacing more consistent.
For instance in https://github.com/dataobservatory-eu/dataset/blob/7bf85ac7abe9477d02b429b4d335179d94993a77/R/agent.R#L56C1-L57C55 the space before
return_typeis surprising.
I remember being inconsistent with spaces myself years ago and not noticing, (un)fortunately I was converted. 😅Code
The code could be simplified so that reviewers might more easily follow the logic.
is_person <- function(p) ifelse (inherits(p, "person"), TRUE, FALSE)in https://github.com/dataobservatory-eu/dataset/blob/7bf85ac7abe9477d02b429b4d335179d94993a77/R/as_dublincore.R#L11
could beis_person <- function(p) inherits(p, "person")(thanks lintr for catching this).
That pattern comes up several times in the codebase (the relevant linter is "redundant_ifelse_linter").Code like
and
(and other similar pipelines) reminds me of Jenny Bryan's advice in her talk Code smells and feels
If your conditions deal with class, it's time to get object-oriented. In CS jargon, use polymorphisms.
So instead of the complex logic, you'd define methods.
In some files like
R/xsd_convert.RandR/dataset_title.R, you useclass(something) ==orclass(something) %in%instead of code built on the more correctinherits().
Using "proper functions for handling class & type" is another tip in the aforementioned talk. 😸Since dataset imports rlang, you could use the
%||%operator from rlang.
For instance https://github.com/dataobservatory-eu/dataset/blob/7bf85ac7abe9477d02b429b4d335179d94993a77/R/agent.R#L24creators <- ifelse(is.null(dataset_bibentry$author), ":tba", dataset_bibentry$author)
would become
creators <- dataset_bibentry$author %||% ":tba"
There are many other occurrences of the
ifelse(is.null(pattern (and variants with different spacing) that could get the same treatment.In the
R/agent.Rfile, functions likeget_creator()are defined twice, why?Example dataset
The iris dataset is very well-known, but it is also infamous because of its eugenics links.
Since having a good example dataset is very important, would you consider replacing it with another one, like maybe the palmerpenguins one, even if it comes at the cost of adding a (possibly optional) dependency?Tests
Should the line https://github.com/dataobservatory-eu/dataset/blob/7bf85ac7abe9477d02b429b4d335179d94993a77/tests/testthat/test-agent.R#L9 be removed as it is not used in the test?
I don't understand why the iris object needs to be duplicated in lines like https://github.com/dataobservatory-eu/dataset/blob/7bf85ac7abe9477d02b429b4d335179d94993a77/tests/testthat/test-creator.R#L23
expect_true(is.dataset_dfmight become a custom expectation and/or rely onexpect_s3_class()instead. Same comment forexpect_true(is.subject.should be
expect_type(as_datacite(iris_dataset, "list"), "list")
What is https://github.com/dataobservatory-eu/dataset/blob/master/tests/testthat/test-dataset_prov.bak?
When using
expect_error()as in https://github.com/dataobservatory-eu/dataset/blob/7bf85ac7abe9477d02b429b4d335179d94993a77/tests/testthat/test-dataset_title.R#L3 maybe add a pattern for the error message, just in case another error happens?
Thank you! Happy to discuss any of the items.
- Documentation: The package has sufficient documentation available online (README, pkgdown docs) to allow for an assessment of functionality and scope without installing the package. In particular,
@ropensci-review-bot check package
ropensci-review-bot commented
on Jan 21, 2025 CollaboratorMore actionsThanks, about to send the query.
92 remaining items
ropensci-review-bot commented
on Aug 27, 2025 CollaboratorMore actionsChecks for dataset (v0.4.0)
git hash: b26562a8
- ✔️ Package is already on CRAN.
- ✔️ 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 87.9%.
- ✔️ R CMD check found no errors.
- ✔️ R CMD check found no warnings.
- 👀 Some goodpractice linters failed.
- 👀 Function names are duplicated in other packages
(Checks marked with 👀 may be optionally addressed.)
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 443 internal dataset 345 internal graphics 10 internal stats 5 imports assertthat 30 imports labelled 10 imports utils 9 imports vctrs 5 imports haven 1 imports tibble 1 imports ISOcodes NA imports pillar NA suggests dplyr NA suggests jsonld NA suggests knitr NA suggests rdflib NA suggests rmarkdown NA suggests spelling NA suggests tidyr 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
is.null (35), ifelse (33), as.character (31), vapply (31), c (27), lapply (23), list (22), attr (19), if (13), names (12), character (10), contributors (9), format (9), logical (8), tryCatch (8), which (8), col (7), for (7), inherits (7), unique (6), unlist (6), as.list (5), data.frame (5), do.call (5), substr (5), date (4), mapply (4), paste0 (4), Sys.time (4), with (4), Filter (3), invisible (3), is.na (3), labels (3), length (3), nzchar (3), paste (3), seq_along (3), setdiff (3), tolower (3), class (2), drop (2), floor (2), gsub (2), identical (2), NextMethod (2), nrow (2), sprintf (2), sub (2), t (2), vector (2), all (1), any (1), args (1), as.data.frame (1), cbind (1), double (1), file (1), intersect (1), ncol (1), open (1), rbind (1), rep (1), round (1), strftime (1), switch (1), Sys.Date (1), typeof (1), unclass (1), units (1), version (1)
dataset
get_bibentry (34), collapse_if_needed (15), dataset_df (12), identifier (11), creator (10), dataset_format (10), namespace_attribute (9), var_concept (9), var_unit (9), contributor (8), publisher (8), relation (8), subject (8), xsd_uri (8), dataset_title (7), language (7), description (6), new_dataset (6), rights (6), provenance (5), get_author (4), get_creator (4), get_publisher (4), var_labels (4), var_namespace (4), agent (3), as_dataset_df (3), as_dublincore (3), geolocation (3), idcol_find (3), publication_year (3), author_fmt (2), bibrecord (2), clean_person_name (2), default_provenance (2), dublincore (2), expand_triples (2), flatten_subject (2), get_contributor (2), get_type (2), is_ctb (2), is_person (2), is.dataset_df (2), is.related (2), n_triples (2), normalize_roles (2), pr (2), subject_create (2), to_iso8601 (2), unit_attribute (2), all_identical (1), as_character (1), as_character.haven_labelled_defined (1), as_datacite (1), as_factor (1), as_factor.haven_labelled_defined (1), as_numeric (1), as_numeric.haven_labelled_defined (1), as.character.haven_labelled_defined (1), as.list.haven_labelled_defined (1), as.numeric.haven_labelled_defined (1), as.vector.haven_labelled_defined (1), bind_defined_rows (1), c.haven_labelled_defined (1), compare_creators (1), create_iri (1), datacite (1), datacite_to_triples (1), dataset_to_triples (1), defined (1), describe (1), dublincore_to_triples (1), fix_contributor (1), fix_publisher (1), format.haven_labelled_defined (1), get_namespace_attribute (1), get_person_iri (1), get_unit_attribute (1), get_variable_concepts (1), head.haven_labelled_defined (1), id_to_column (1), is_dataset_df (1), is_doi (1), is.datacite (1), is.datacite.datacite (1), is.defined (1), is.dublincore (1), is.subject (1), label_attribute (1), length.haven_labelled_defined (1), map_role_to_schema (1), n_triple (1), names.dataset_df (1), new_datacite (1), new_datetime_defined (1), new_dublincore (1), new_labelled_defined (1), new_Subject (1), Ops.haven_labelled_defined (1), plot.dataset_df (1), print.bibrecord (1), print.datacite (1), print.dataset_df (1), print.dublincore (1), print.haven_labelled_defined (1), prov_author (1), related_create (1), set_default_bibentry (1), set_namespace_attribute (1), set_unit_attribute (1), set_var_labels (1), strip_defined (1), summary.dataset_df (1), summary.haven_labelled_defined (1), tail.haven_labelled_defined (1), tbl_sum.dataset_df (1), triples_column_generate (1), triples_to_ntriples (1), type_sum.haven_labelled_defined (1), var_concept.default (1), var_label.dataset_df (1), var_label.defined (1), xsd_convert (1)
assertthat
assert_that (30)
graphics
title (10)
labelled
var_label (9), to_labelled (1)
utils
person (4), bibentry (2), citation (1), data (1), str (1)
stats
df (5)
vctrs
vec_data (5)
haven
labelled (1)
tibble
new_tibble (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 47 files) and
- 1 authors
- 7 vignettes
- 2 internal data files
- 8 imported packages
- 119 exported functions (median 9 lines of code)
- 233 non-exported functions in R (median 10 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()functionThe 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 47 94.6 files_vignettes 7 97.9 files_tests 44 98.7 loc_R 3192 89.6 loc_vignettes 1320 93.5 loc_tests 3149 95.4 TRUE num_vignettes 7 98.3 TRUE data_size_total 2046 61.5 data_size_median 1023 63.4 n_fns_r 352 94.4 n_fns_r_exported 119 96.1 TRUE n_fns_r_not_exported 233 93.6 n_fns_per_file_r 5 67.3 num_params_per_fn 2 8.2 loc_per_fn_r 9 24.4 loc_per_fn_r_exp 9 19.7 loc_per_fn_r_not_exp 10 31.6 rel_whitespace_R 20 90.4 rel_whitespace_vignettes 34 95.6 TRUE rel_whitespace_tests 16 93.9 doclines_per_fn_exp 49 61.8 doclines_per_fn_not_exp 0 0.0 TRUE fn_call_network_size 308 91.7
2a. Network visualisation
Click to see the interactive network visualisation of calls between objects in package
3.
goodpracticeand other checksDetails of goodpractice checks (click to open)
3a. Continuous Integration Badges
GitHub Workflow Results
id name conclusion sha run_number date 17221850452 bottlegreen-tench: linux, m1-san, macos-arm64, windows success b26562 18 2025-08-25 17221847550 pkgcheck success b26562 312 2025-08-25 17178439271 princely-oropendola: linux, m1-san, macos, macos-arm64, windows, atlas, c23 failure 7227d4 16 2025-08-23 17216004088 privy-marten: linux, m1-san, macos, macos-arm64, windows success 2cd480 17 2025-08-25 17221847542 R-CMD-check success b26562 239 2025-08-25 17221847556 test-coverage.yaml success b26562 322 2025-08-25
3b.
goodpracticeresultsR CMD checkwith rcmdcheckR CMD check generated the following check_fails:
- no_description_date
- no_import_package_as_a_whole
Test coverage with covr
Package coverage: 87.87
Cyclocomplexity with cyclocomp
The following functions have cyclocomplexity >= 15:
function cyclocomplexity datacite_to_triples 33 as_datacite 28 defined 25 fix_contributor 21 new_datetime_defined 21 new_labelled_defined 21 create_iri 20 as_dublincore 18 identifier<- 18 language<- 16 print.datacite 15 print.dublincore 15 related_item 15 relation 15 Static code analyses with lintr
lintr found no issues with this package!
4. Other Checks
Details of other checks (click to open)
✖️ The following 13 function names are duplicated in other packages:
-
as_characterfrom metan, radiant.data, retroharmonize, sjlabelled
-
as_numericfrom descstat, metan, qdapRegex, radiant.data, retroharmonize, sjlabelled, zenplots
-
describefrom AzureVision, Bolstad2, describer, dlookr, explore, Hmisc, iBreakDown, ingredients, lambda.r, MSbox, onewaytests, prettyR, psych, psych, psyntur, questionr, radiant.data, RCPA3, Rlab, scan, scorecard, sylly, tidycomm
-
descriptionfrom dataMaid, dataPreparation, dataReporter, dcmodify, memisc, metaboData, PerseusR, ritis, rmutil, rsyncrosim, stream, synchronicity, timeSeries, tis, validate
-
get_bibentryfrom eurostat
-
identifierfrom Ramble
-
is.definedfrom nonmemica
-
languagefrom sylly, wakefield
-
provenancefrom provenance
-
related_createfrom ckanr
-
relationfrom osmar, relatable, relations, yarr
-
subjectfrom DGM, emayili, gmailr, sendgridr
-
var_labelsfrom formatters, sjlabelled
Package Versions
package version pkgstats 0.2.0.61 pkgcheck 0.1.2.214
Editor-in-Chief Instructions:
This package is in top shape and may be passed on to a handling editor
Thanks @antaldaniel for the update.
From my perspective as an editor I see you're committed to being transparent and to staying on top of CRAN requirements.
Also the editorial board is collectively happy to see that you have responded in positive ways both to my feedback here and that of a real user at ropensci/dataset#39. We think the work you have put in deserves a positive outcome and we would love to accept and welcome the dataset package to rOpenSci.
Next I'll instruct the bot to formalize the approval. It'll respond with a checklist for you to follow. That will automatically close this issue but feel free to continue asking questions as you work through the checklist.
Congratulations!
@ropensci-review-bot approve dataset
ropensci-review-bot commented
on Aug 27, 2025 CollaboratorMore actionsApproved! Thanks @antaldaniel for submitting and @maurolepore for your reviews! 😁
To-dos:
Repository transfer
Usually repositories are transferred to the rOpenSci GitHub organization.
You can however ask for an exception, please ping the editor in charge of the submission.- Transfer the repo to rOpenSci's "ropensci" GitHub organization under "Settings" in your repo. I have invited you to a team that should allow you to do so. You will need to enable two-factor authentication for your GitHub account.
This invitation will expire after one week. If it happens write a comment@ropensci-review-bot invite me to ropensci/<package-name>which will re-send an invitation. - After transfer write a comment
@ropensci-review-bot finalize transfer of <package-name>where<package-name>is the repo/package name. This will give you admin access back. - Fix all links to the GitHub repo to point to the repo under the ropensci organization.
- Fix any links in badges for CI and coverage to point to the new repository URL.
- Delete your current code of conduct file if you had one since rOpenSci's default one will apply, see https://devguide.ropensci.org/collaboration.html#coc-file
Other steps
- If you already had a
pkgdownwebsite and are ok relying only on rOpenSci central docs building and branding,- deactivate the automatic deployment you might have set up
- remove styling tweaks from your pkgdown config but keep that config file
- replace the whole current
pkgdownwebsite with a redirecting page - replace your package docs URL with
https://docs.ropensci.org/package_name - In addition, in your DESCRIPTION file, include the docs link in the
URLfield alongside the link to the GitHub repository, e.g.:URL: https://docs.ropensci.org/foobar, https://github.com/ropensci/foobar
- Skim the docs of the pkgdown automatic deployment, in particular if your website needs MathJax.
- Increment the package version to reflect the changes you made during review. In NEWS.md, add a heading for the new version and one bullet for each user-facing change, and each developer-facing change that you think is relevant.
- We're starting to roll out software metadata files to all rOpenSci packages via the Codemeta initiative, see https://docs.ropensci.org/codemetar/ for how to include it in your package, after installing the package - should be easy as running
codemetar::write_codemeta()in the root of your package. - You can add this installation method to your package README
install.packages("<package-name>", repos = c('https://ropensci.r-universe.dev', 'https://cloud.r-project.org'))thanks to R-universe.
Should you want to acknowledge your reviewers in your package DESCRIPTION, you can do so by making them
"rev"-type contributors in theAuthors@Rfield (with their consent).Welcome aboard! We'd love to host a post about your package - either a short introduction to it with an example for a technical audience or a longer post with some narrative about its development or something you learned, and an example of its use for a broader readership. If you are interested, consult the blog guide, and tag @ropensci/blog-editors in your reply. They will get in touch about timing and can answer any questions.
We maintain an online book with our best practice and tips, this chapter starts the 3d section that's about guidance for after onboarding (with advice on releases, package marketing, GitHub grooming); the guide also feature CRAN gotchas. Please tell us what could be improved.
Last but not least, you can volunteer as a reviewer via filling a short form.
- Transfer the repo to rOpenSci's "ropensci" GitHub organization under "Settings" in your repo. I have invited you to a team that should allow you to do so. You will need to enable two-factor authentication for your GitHub account.
Congrats @antaldaniel, we have all especially appreciated all the work you put into revising the package to get to its current state. Great job!
Dear @mpadge and @maurolepore, thank you for your patience with me, and I am honoured and thankful. I will follow, and hopefully not make clumsy mistakes with the package transfer.
It is very lucky that your approval came almost in the same minute as that of CRAN, so the same version was approved in both places. The CRAN issue was somewhat different. The dataset package’s tests already account for CRAN’s URL checks (including requests without a user-agent). The only issue arose from example.com, which always returns 404 by design (RFC 2606). In my view, CRAN should ideally treat example.com differently, because that namesapce is reserved for testing and documentation, and it is by design should not resolve to anything; but I have replaced these with resolvable example URIs.
I will also publish a project for a 0.5.0 next release with plans to integrate better with other rOpenSci packages, and I hope that I will find some contributors for that. And I would also like to develop the Design Principles & Future Work Semantically Enriched, Standards-Aligned Datasets in R vignette into a journal article.
@maelle Can I add your name and ORCiD to the reviwer contributors in the DESCRIPTION?
@ropensci-review-bot finalize transfer of dataset
ropensci-review-bot commented
on Aug 27, 2025 CollaboratorMore actionsTransfer completed.
Thedatasetteam is now owner of the repository and the author has been invited to the teamReacted by mark padgham and Mauro LeporeThanks! I’d be glad to write a blogpost about dataset. I’m thinking of starting with a short technical introduction for R users, and later developing a longer case study around publishing datasets with some real, new, scientific data that I got from a data partner. I’ll follow the rOpenSci blog guide and look forward to coordinating with @ropensci/blog-editors on timing and scope.
Hi @antaldaniel! Happy to hear that you'd like to write a post!
Go ahead and read the guide and start your post. When you're ready for a review, open a PR and we can chat about when to publish. If you'd like a deadline to help encourage you to write, we can do that too 😉
If you have any questions, feel free to ping me here or on Slack (steffilazerte).@steffilazerte, thanks, I have a question.
What I would like to do is to do two blogposts, if possible, a short intro with an example, and then maybe 1-2 weeks later a longer one with a tutorial on how to pubish a scientifically novel dataset, as linked open data, with codebooks and all, in a semantically rich server without a servless solution. It is complex, but provides a very useful hack for people who want to produce FAIR 5-star or the new 8-star datasets and have no strong institutional repository support for that. Last but not least, I also would like to make a journal publication.
Would it be OK for you to do send two PRs, the short into this weekend or early next week, and the tutorial at the end of the month? If it has to be only one blog post, than I think that I choose the longer one and with a bit later deadline.
I think that's fine! My only request would be that you add a bit of 'story' to your shorter blog post. We try to ensure that posts of this nature are a bit more than just a tutorial. Consider adding a bit of background motivation for making the package, or about your experiences in the process or review. Thanks!
Date accepted: 2025-08-27
Submitting Author Name: Daniel Antal
Submitting Author Github Handle: @antaldaniel
Repository: https://github.com/dataobservatory-eu/dataset
Version submitted: 0.3.4002
Submission type: Standard
Editor: @maurolepore
Reviewers: @maurolepore
Archive: TBD
Version accepted: TBD
Language: en
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.):
Explain how and why the package falls under these categories (briefly, 1-2 sentences):
The package works with various semantic interoperability standards, therefore it allows the users to retrieve RDF annotated, rich and platform-independent data and reconstruct it as an R data.frame with rich metadata attributes, or to release interoperable, RDF annotated datasets on linked open data platforms from native R objects.
Production-side statisticans. Scientists who want to update their sources from various data repositories and exchanges. Scientists and research data managers who want to release new scientific or professional datasets that follow modern interoperability standards.
The package aimst to complement the rdflib and the datapsice package.
(If applicable) Does your package comply with our guidance around Ethics, Data Privacy and Human Subjects Research? Not applicable.
If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or
@tagthe editor you contacted.Explain reasons for any
pkgcheckitems which your package is unable to pass.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:
Code of conduct