frictionless 1.3.0

We released a new version of our R package frictionless.

• Peter Desmet

We just released a new version (1.3.0) of our R package frictionless.

With frictionless you can read and write Frictionless Data Packages. A Data Package is a simple container format and standard to describe and package a collection of (tabular) data. It is typically used to publish FAIR and open datasets. We use it extensively for publishing datasets.

What has changed?

frictionless 1.3.0 will be the last release that adopts version 1 of the Data Package standard. The next release (frictionless 2.0.0) will adopt Data Package version 2. So we wanted to incorporate the necessary changes for users who want to stick with version 1, such as indicating what version of the standard is read, warning them if a version is unsupported, etc. The release also includes a number of improvements, deprecations and functions that are useful for developers.

This work was funded by the NLnet foundation as part of the Frictionless Libraries project.

Changes for users

  • New version() determines what version of the Data Package standard is used by a Data Package (e.g. "1.0", "2.0", ">=2.0"), based on the presence and value of the $schema property. This information is also returned by print().
  • read_package() now warns when reading a datapackage.json that uses a version of the Data Package standard not supported by frictionless (i.e. anything other than version "1.0").
  • read_resource() no longer guesses the type for fields without a type, but sets it to character (the default for a CSV). This aligns with a clarification in the specification.
  • read_resource() now supports reading from remote zip files, thanks to support in {vroom} (1.3.0).
  • add_resource() with replace = TRUE adds the resource if there is none to replace, rather than throwing an error.
  • add_resource() now retains the URL to a provided schema, rather than including it verbosely.
  • write_package()’s overwrite behavior is now as intended and documented in the function.

For an overview of all the changes, including those for developers, see the CHANGELOG.

How to install frictionless?

The package is available on CRAN and can be installed with:

install.packages("frictionless")

For more information, see the package documentation. Found a bug? Please report an issue.