Skip to content

Releases: frictionlessdata/frictionless-r

frictionless 1.2.0

28 Aug 11:31
Compare
Choose a tag to compare

Changes for users

  • add_resource() now allows to replace an existing resource (#227).
  • read_resource() now returns an error if both path and data are provided (#143).
  • write_package() no longer writes to "." by default, since this is not allowed by CRAN policies. The user needs to explicitly define a directory (#205).
  • null values in a read datapackage.json are now retained by write_package(), rather than being changed to empty lists. Properties assigned by the user to NA and NULL remain being written as null and removed respectively (#203).
  • New vignettes vignette("data-package"), vignette("data-resource"), vignette("table-dialect") and vignette("table-schema") describe how frictionless implements the Data Package standard. The (verbose) function documentation of read_resource() and create_schema() has been moved to these vignettes, improving readability and maintenance (#208, #246).
  • The included dataset example_package is removed in favour of the function example_package(). This function allows to reproducibly provide a local Data Package, without the need for an internet connection. The observations resource was also changed from a remote to a local resource and from CSV to TSV. This change affects the use of example_package in older versions of frictionless. We recommend to update frictionless to the latest version (#114, #253).

Changes for developers

  • read_resource() is now more modular under the hood, which should make it easier to extend (#210).
  • checklist tooling was removed, in favour of CITATION.cff for citation and Zenodo deposit (#206).

Other changes

frictionless 1.1.0

29 Mar 10:25
bea468d
Compare
Choose a tag to compare

Changes for users

  • New function print() prints a human-readable summary of the Data Package, rather than a (long) list (#155).
  • read_package() no longer returns a message regarding rights and credit (#121). If package$id is a URL (e.g. a DOI) it will be mentioned in print().
  • add_resource() accepts additional arguments via .... These are added as (custom) properties to the resource and are retained in write_package() (#195).
  • read_resource() now supports column selection via the col_select argument from readr::read_delim(). This can vastly improve reading speed (#123). Tidy selection is not supported.
  • write_package() no longer adds "profile": "tabular-data-package" to datapackage.json. It is also removed from the example dataset (#188).
  • Error and warning messages use semantic colours for variables, parameters, fields, etc.
  • readr::problems() is included in NAMESPACE so you don't have to load readr to inspect parsing issues. The function is mentioned in the documentation of read_resource() (#129).

Changes for developers

  • A Data Package object (package) now has a datapackage class (#184). This enables a custom print() function (see above). check_package() will warn if the class is missing, so previously saved Data Package objects (without the class) will generate a warning.
  • check_package() is now a public function, so it can be used in your package (#185). This and the other check_ functions return the first argument silently (rather than TRUE), so they can be chained.
  • create_package() now accepts a descriptor argument so that a Data Package object can be created from an existing object (#184). It will always validate the created object with check_package().
  • cli::cli_abort(), cli::cli_warn() and cli::cli_inform() are used for all errors, warnings, and messages (#163). This has several advantages:
    • Messages use semantic colours for variables, parameters, fields, etc.
    • Messages and warnings can be silenced with a global or local option, see this blog post.
    • Each call has an rlang class, e.g. frictionless_error_fields_without_name, making it easier to test for specific errors.
  • glue and assertthat are removed as dependencies (#163). The functionality of glue is replaced by cli, while assertthat::assert() calls are now if () statements.
  • rlang is added as dependency (#192). It is already used by other dependencies.
  • frictionless now depends on R >= 3.5.0.

Other changes

  • The package now adheres to the requirements of checklist, so that .zenodo.json can be created with checklist::update_citation().
  • Add Pieter Huybrechts as author and Kyle Husmann as contributor. Welcome both!

frictionless 1.0.3

07 Mar 09:56
Compare
Choose a tag to compare
  • Add stringi to Suggests. It was removed as a dependency from rmarkdown 2.26, resulting in "stringi package required for encoding operations" build errors on CRAN (#176).

frictionless 1.0.2

17 Nov 10:51
Compare
Choose a tag to compare
  • Add testthat::skip_if_offline() to selected tests and verbosely include output in vignette examples, to avoid CRAN errors caused by timeouts (#116).

frictionless 1.0.1

08 Sep 19:34
f3f7320
Compare
Choose a tag to compare
  • Rebuild documentation for compatibility with HTML5 on request of CRAN.
  • Add funder information.

frictionless 1.0.0

17 Feb 10:32
Compare
Choose a tag to compare

frictionless 0.11.0

07 Feb 11:09
Compare
Choose a tag to compare
  • add_resource() now sets format, mediatype and encoding for added CSV file(s) (#78).
  • add_resource() now supports adding schema via path or URL.
  • write_package() now supports added data to be gzip compressed before being written to disk (#98).
  • read_resource() will now warn rather than error on unknown encoding (#86).
  • package objects no longer have or require the custom attribute resource_names, use new function resources() instead (#97).
  • package objects no longer have or require the custom attribute datapackage, making it easier to edit them as lists (with e.g. append()).

frictionless 0.10.0

17 Jan 11:02
Compare
Choose a tag to compare
  • add_resource() now supports adding CSV file(s) directly as a resource. This skips reading/handling by R and gives users control over path (#74).
  • CSV files in a remotely read package (like example_package) are now downloaded when writing with write_package(), rather than being skipped. This is more consistent with locally read packages. The behaviour for resources with a path containing URLs (only) and resources with data remains the same (no files are written). The write behaviour is better explained in the documentation (#77).
  • write_package() now silently returns the output rather than input package.
  • create_package() will set "profile" = "tabular-data-package" since packages created by frictionless meet those requirements (#81).
  • create_schema() interprets empty columns as string not boolean (#79).
  • read_package() can now read from a datapackage.yaml file.
  • read_resource() now accepts YAML Table Schemas and CSV dialects.
  • add_resource()/create_schema()'s df parameter is renamed to data.
  • example_package's observations resource now has URLs as path to serve as an example for that.

frictionless 0.9.0

03 Jan 15:24
c092847
Compare
Choose a tag to compare
  • Add vignette with overview of functionality (#60).
  • Prepare frictionless for rOpenSci submission.