Skip to content

datapackage.json omits the Frictionless schema field descriptors versioning.md requires #74

Description

@maehr

Scope grew (2026-08-25)

#84 added a fifth resource. The data package now carries works, citation-systems, references, mappings and aliases, so field descriptors are needed for five resources, not four.

aliases.json is also the first non-JSONL resource in the package, and its body is a nested map of citation system key to locator to UUID. Frictionless describes that shape no better than it describes resolver_targets, so the mapping decision this issue calls for now covers two awkward cases.

The spec text is honest in the meantime. versioning.md states the schema requirement as SHOULD, records that exports through v0.1.0 omit it, and links here.


standard/versioning.md § "Frictionless requirements" lists schema: field descriptors for each resource among the things each datapackage.json MUST include. The compiler does not emit it.

writeDump in scripts/compile.ts builds each resource with name, path, profile, format, mediatype, encoding, bytes and a sha256: hash — no schema key, so the published data package has no field descriptors at all.

Found while preparing v0.1.0 (#68). Since the first citable baseline should not claim conformance it does not have, the release softens the spec text to SHOULD and states that exports through v0.1.0 omit it. This issue tracks doing it properly.

What is needed

Frictionless schema.fields for the four resources — works, citation-systems, references, mappings — with at least name and type per field, ideally description.

The record shapes already exist as Zod schemas in standard/schema/. Zod 4 ships z.toJSONSchema(), but Frictionless field descriptors are a different vocabulary (string/integer/datetime rather than JSON Schema types), so this needs a deliberate mapping rather than a direct dump — including a decision about nested objects such as resolver_targets, which Frictionless describes poorly.

Related

Reverting the SHOULD back to MUST in versioning.md is part of closing this.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    conformanceSpec and implementation disagreepost-v0.1.0Deferred past the v0.1.0 baseline. Revisit if the need arises.standardThe published specification and schemas

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions