Repository navigation
Releases: simonvanlierde/codemeta-drift
Release list
v0.6.0
Upgrade step: the hub commands of 0.5.0 and older refuse an export with the new formats, so upgrade
codemeta-drift with the file. A consumer that vendors the mapping schema vendors the 1.6 schema and
mapping-vectors.json with it, and runs the vectors through its resolver: a 1.6 export fails the 1.4 schema that 0.5.0 shipped.
Added
- The mapping export covers 22 more formats: DataCite, setup.py, Ruby gemspecs, Maven's pom.xml, CPAN's
META.json, NuGet's .nuspec, Dart's pubspec.yaml, Cabal,typst.toml, Quarto's_extension.yml, the GitHub
API, Figshare, bio.tools, Leiningen's project.clj, Octave's DESCRIPTION, publiccode.yml 0.8, swMATH, SPDX 2.3,
CodeMeta 2.0, DCAT 3, DOAP and Wikidata, and the coverage page and SSSOM spokes cover them too. Each row was
checked against the format's own tools and spec. See the mapping export. - Ship
mapping-vectors.jsonbeside the mapping schema: test cases of path, document and the values the path
resolves to, for a consumer to run through its own resolver. See the mapping export.
Changed
- The BibTeX
codeRepositoryrow readsrepository | url, since plain BibTeX styles print onlyurl.
See the coverage page. - Schema 1.6 extends the path grammar:
a + breads both parts,[k=v]also matches a list that holdsv, and
a key may carry a prefix. The PKG-INFO author rows use+, the Project-URL rows end in.url, and the DCAT 3
and DOAP rows use prefixed names such asdcterms:title. See the
path grammar.
Fixed
- A person sub-term such as
author.@idis read from the alternative its term resolved through, not by first
match, so one person's ORCID never lands on another. See the mapping export. - The schema watcher now also opens a citesync issue when a hash in
MAPPING_SOURCEdiffers from the file published at the pinned tag, and its run prints a notice when it skips publishing for lack of a token. The docs name the token permissions it needs.
v0.5.0
Breaking: SSSOM term:, field: and format: identifiers and the mapping_set_id have new URIs.
Regenerate stored SSSOM files with codemeta-drift hub sssom rather than joining them with 0.4.0 output.
Upgrade step: a consumer that validates the mapping export against a vendored schema vendors the 1.4 schema
with the new export, since R paths contain @. Readers that skip formats they don't use read it unchanged.
The hub commands of 0.4.0 and older refuse a 1.4 export, so upgrade codemeta-drift with the file.
Added
- See every crosswalk cell for nine citation and package formats, and why a reviewed mapping changed it, in the
coverage matrix and on the coverage page.
codemeta-drift hub coveragewrites the matrix as Markdown or JSON. It also lists the CodeMeta crosswalks
nobody has reviewed, each cell marked as a path, prose, empty or unmatched;--codemeta <checkout>adds them. - The coverage page checks CodeMeta's main branch every Monday and lists the cells that changed since the pinned tag.
- The mapping export covers BibTeX, Python PKG-INFO, R DESCRIPTION and Julia
Project.toml, each cell reviewed
against CodeMeta's crosswalk. Itsschema_versionis 1.4, and a path key may now contain@, as in R's
Authors@R. See the mapping export.
Changed
- SSSOM exports carry mapping-set metadata (title, description, version, curator ORCID and provider), and their
term, field and format identifiers resolve on the coverage page. See the crosswalk hub.
v0.4.0
Breaking: Schema directories passed to export --schemas now also need zenodo.json.
Copy the verified structural subset into your schema directory.
The new watcher uses the same five-file layout; see Zenodo coverage and limits.
Added
- Run an offline schema recovery example with an explicit synthetic approval and reproducible mapping hashes.
- Check Zenodo mapping paths against a verified structural subset; importer source changes produce review drafts. This does not validate complete deposits.
- Find corresponding fields in two formats and export seven SSSOM spokes with the
crosswalk hub. The Go spoke relates a module path to the repository field. - Preview broken schema paths, new fields and a behind mapping pin with the
offline schema watcher. It prints deduplicated issue drafts. - Mapping exports include each original crosswalk cell alongside the exported path, so readers can show corrections and empty cells.
See the mapping export contract.
Changed
- The README now leads with checking and exporting. Finding codes, the dated findings report and contributor instructions have dedicated guides.
Fixed
- Missing Zenodo importer files produce review drafts instead of aborting unrelated schema and pin checks. See Zenodo coverage.
- The recovery example reports unreadable approvals and existing output directories as CLI errors without modifying existing files.
- Hub commands reject malformed original crosswalk cells, keeping mapping validation consistent with the export contract.
- SSSOM exports use distinct field and format URI prefixes so reference readers can load them.
See the validation and compatibility guide. - Schema conformance checks recognize array references and tuple item schemas.
- A
CELL_NO_AUTHORfinding now says the author or contributor has no path, not no row, which was
wrong when its curated row has a null path, as CFF's contributor row does. exportrefuses a crosswalk cell that already reads as a list, such asauthors[], with aCELL_PATHfinding, instead of
writingauthors[][]and its sub-terms into the export.- A check of the working tree skips a directory whose name matches an input file, such as
examples/x.json, as
--refalready did, instead of exiting 2.
v0.3.0
Added
- The export maps
swhid, the Software Heritage identifier: CFFidentifiersof typeswh,
Zenodorelated_identifierswith schemeswh(or no scheme and aswh:1:value), and
codemeta.jsonidentifier, which holds the DOI too. See the term list. - The CFF
author.familyNamerow's comment says to joinname-particle,family-namesand
name-suffixinto the family name, so a consumer keeps "van" in Antonie van Leeuwenhoek.
Changed
- The export's
schema_versionis 1.2, since it adds a term. A reader of 1.0 or 1.1 reads it unchanged.
v0.2.0
Added
- The export maps
datePublishedandcontributor, with the same person sub-terms as
author. CFF 1.2.0, Cargo.toml and pyproject.toml have no contributor list, so their rows are
null; Zenodo's need a curated row, because its crosswalk cells are empty.
Changed
- The export's
schema_versionis 1.1, since it adds terms. A reader of 1.0 reads it unchanged. - A consumer now needs rows only for the terms it uses, not for every term in the export.
v0.1.0
Added
codemeta-drift <checkout> [--ref REF] [--json]lists where CodeMeta's context,
definitions, property table, examples, crosswalks andcrosswalk.csvdisagree. Each check
has a stable code. A malformed input file exits 2, so CI doesn't mistake it for drift.--jsonprints one versioned document holding the findings, and--versionprints the installed version.--refreads any tag, branch or commit through onegit cat-filecall, about as fast as
reading the working tree.- The mapping export format: a JSON Schema for
mapping-<codemeta-tag>.json, which says where
each CodeMeta term sits in six metadata formats, and the export for CodeMeta 3.1. codemeta-drift export [checkout] --tag TAG [--out FILE]writes the export from the tag's
commit. Rows read the crosswalk cell when it is a path, and come from a curated file with a
reason when it is prose, empty or wrong. A cell with neither is listed and the command exits 1,
as is a curated row whose cell has changed, and two terms whose paths overlap.export --schemas DIRchecks every path against the format's own JSON Schema (CFF 1.2.0,
pyproject.toml, package.json, Cargo.toml) and reportsPATH_NOT_IN_SCHEMA.- Test fixtures: the files the checks read from CodeMeta 3.1 and 4.0, and the output for each,
and the JSON Schemas of four formats.tests/fixtures/3.1.sha256ties the 3.1 files to the
tag's commit.