Skip to content

v1.1

Latest

Choose a tag to compare

@Rafnuss Rafnuss released this 18 Sep 09:09
6885bba

Major

  • Move the table schema URL from resource.$schema to resource.schema. In the Data Package standard, $schema is the profile of the descriptor while schema is the Table Schema describing the columns. A resource written exactly as v1.0 prescribed could not be read.
  • Require $schema on tabular resources, pinned to https://datapackage.org/profiles/2.0/dataresource.json. Implementations read it to decide which version of the standard a resource follows: without it, frictionless::version() reports a resource as v1 even inside a package declaring v2.
  • Require type on tabular resources, which must be table. It replaces the Data Package v1 profile: "tabular-data-resource".

A tabular resource now requires $schema, name, path, type and schema:

{
  "$schema": "https://datapackage.org/profiles/2.0/dataresource.json",
  "name": "tags",
  "path": "tags.csv",
  "type": "table",
  "schema": "https://raw.githubusercontent.com/GeoPressure/GeoLocator-DP/v1.1/tags-table-schema.json"
}

schema also accepts an inline descriptor, so packages stay self-contained. Package-level $schema is unchanged.

Breaking for archived packages, which carry profile and no type — hence v1.1. GeoLocatoR upgrades them on read.

Minor

Website

CI

Known limitations

  • Resources still carry profile: "tabular-data-resource" alongside $schema and type. It is the v1 spelling those two replace, but frictionless 1.3.0, the current CRAN release, refuses to read a resource without it. It can be dropped once frictionless 2.0 ships.
  • fieldsMatch says nothing about which columns are required, so on its own every mode used here lets a table omit a column carrying a required constraint, including a primary key (frictionlessdata/datapackage#1126). GeoLocatoR::validate_gldp() checks that separately.
  • Coordinate field names remain inconsistent between observations and the other tables (#36).

Full Changelog: v1.0...v1.1