Skip to content

datasets: Croissant 1.1 + RAI metadata, versioned signed releases, citation - #96

Merged
emmanuelgjr merged 3 commits into
mainfrom
datasets/croissant-and-releases
Oct 9, 2026
Merged

emmanuelgjr merged 3 commits into
mainfrom
datasets/croissant-and-releases

Conversation

@emmanuelgjr

Copy link
Copy Markdown
Contributor

Summary

Items 12–13 of the data-validation review.

MLCommons Croissant 1.1 + Responsible AI metadata

  • Each published dataset now has a croissant.json: vulnerability, exploit, riskassessment, agentdataflow, promptinj and rag. Incident (no entries yet) and crossframework (superseded) are skipped.
  • data_validation/croissant/build_croissant.py generates them with the official mlcroissant library:
    • File checksums, record fields and dates come from the repository, so the output is deterministic and doesn't depend on git history.
    • The RAI text (dataLimitations, dataBiases, dataUseCases, personalSensitiveInformation, dataCollection/Type, dataSocialImpact, dataReleaseMaintenancePlan) is written per dataset in the generator, checked against the data's actual distributions. For example, the vulnerability dataset's skew toward agent frameworks and High/Critical severity, and the exploit dataset's ~70% ATLAS share.
    • Record sets over each index.csv or manifest let ML tooling load the records directly. NeurIPS 2026 requires Croissant with RAI fields for dataset submissions.
  • New CI job croissant, using the new optional requirements-croissant.txt:
    • the files must be up to date with the data;
    • each must pass mlcroissant validate;
    • each record set must load exactly as many records as its CSV has rows (verified locally: 46, 59, 23, 3, 300, 149).

Versioned, checksummed, signed releases

  • New datasets-release workflow, triggered by pushing a datasets-v<version> tag that matches CITATION.cff. It:
    • re-runs every check;
    • builds one zip per dataset (with the shared taxonomy, citation and licence) plus an all-datasets zip;
    • writes SHA256SUMS;
    • attests build provenance for every file with Sigstore (actions/attest-build-provenance, pinned), verifiable with gh attestation verify;
    • publishes the GitHub release.
  • The archive and checksum steps were dry-run locally against this branch, and all checksums verify.

Citation and DOI

  • CITATION.cff: datasets version 1.0.0, CC-BY-SA-4.0. This enables GitHub's "Cite this repository" button.
  • .zenodo.json supplies Zenodo's metadata. One manual step remains: an org owner has to enable this repository in Zenodo's GitHub integration (zenodo.org → GitHub). After that, each datasets-v* release is archived on Zenodo with a DOI.

Docs

datasets/README.md gains a "Metadata, releases and citation" section. The contribution steps now say to regenerate index.csv and croissant.json after editing entries.

Verification

  • 180 tests pass (new guards: every published dataset has Croissant metadata; the CITATION.cff version is semver).
  • run_all_checks.py: 0 errors (croissant.json is excluded from the record checks). actionlint is clean.

🤖 Generated with Claude Code

…tation

- Every published dataset gets a croissant.json (MLCommons Croissant 1.1
  with the Responsible AI vocabulary: limitations, biases, use cases,
  personal data, collection, social impact, maintenance), generated by
  data_validation/croissant/build_croissant.py. File checksums, record
  fields and dates come from the repository; the RAI text is per dataset
  in the generator. Record sets over each index/manifest CSV let ML
  tooling load the data directly.
- CI: croissant files must be up to date, valid per mlcroissant, and load
  the same number of records as their CSVs.
- datasets-release workflow: tagging datasets-v<version> (matching
  CITATION.cff) re-runs every check, builds per-dataset and all-datasets
  zips with SHA256SUMS, attests build provenance with Sigstore, and
  publishes a GitHub release.
- CITATION.cff (datasets version 1.0.0) and .zenodo.json for citation and
  Zenodo DOI archiving.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment on lines +65 to +67
"Skews toward open-source Python LLM frameworks and inference servers (agent frameworks are about half of "
"the entries), because CVE assignment concentrates there; closed SaaS assistants appear only through "
"public research disclosures.",
Comment on lines +126 to +127
"Sector coverage is uneven: cross-sector templates are the largest group, followed by financial "
"services and SaaS; several sectors have a single template.",
Comment on lines +182 to +183
"Reflects the attack styles of its source corpora (authority and urgency framing, morphological and "
"cross-lingual bypasses).",
emmanuelgjr and others added 2 commits October 9, 2026 17:48
…set files LF

CI regenerated different checksums because Windows working copies are
CRLF. .gitattributes now pins dataset CSV/JSON (and reference CSVs) to
LF on every platform, agentdataflow's index.csv is renormalized (its
build_index.py writes CRLF), and build_croissant.py hashes LF-normalized
bytes, which equal the stored blob.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@emmanuelgjr
emmanuelgjr merged commit 06eb080 into main Oct 9, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant