Skip to content

Cap rocrate below 0.16 - #253

Closed
tomcharnock-lightcone wants to merge 1 commit into
LightconeResearch:mainfrom
tomcharnock-lightcone:fix/cap-rocrate
Closed

tomcharnock-lightcone wants to merge 1 commit into
LightconeResearch:mainfrom
tomcharnock-lightcone:fix/cap-rocrate

Conversation

@tomcharnock-lightcone

Copy link
Copy Markdown

rocrate 0.16.0 (2026-10-06) makes RO-Crate 1.3 the default context and no longer lists the Workflow RO-Crate profile in the metadata descriptor's conformsTo. The 1.3 context maps ComputationalWorkflow to https://bioschemas.org/terms/ComputationalWorkflow, which roc-validator 0.12.2's Workflow RO-Crate 1.0 profile does not recognise, so test_crate_smoke fails on every runner. The cap keeps the crate on the 1.2 context it is written for. Moving to 0.16 is a separate change I guess?

rocrate 0.16.0 (2026-10-06) makes RO-Crate 1.3 the default context and no longer lists the Workflow RO-Crate profile in the metadata
descriptor's conformsTo. The 1.3 context maps ComputationalWorkflow to https://bioschemas.org/terms/ComputationalWorkflow, which roc-validator 0.12.2's Workflow RO-Crate 1.0 profile does not recognise, so
test_crate_smoke fails on every runner. The cap keeps the crate on the 1.2 context it is written for. Moving to 0.16 is a separate change I guess?

Signed-off-by: Tom Charnock <tom@charnock.fr>
EiffL added a commit that referenced this pull request Oct 15, 2026
Fixes the `test_crate_smoke.py` failure every branch has hit since
rocrate 0.16.0 shipped on Oct 6. `uv.lock` is not committed, so CI
resolves the latest rocrate. Supersedes #253, which caps `rocrate<0.16`.

## What broke

rocrate 0.16 changed two defaults:

- **The default RO-Crate version moved from 1.2 to 1.3.** The 1.3
context maps `ComputationalWorkflow` to
`https://bioschemas.org/terms/ComputationalWorkflow`. The Workflow
RO-Crate 1.0 and Run Crate 0.5 shapes in `roc-validator` 0.12.2 (the
latest release) key on `https://bioschemas.org/ComputationalWorkflow`.
So `astra.yaml` stops reading as a workflow, which fails
`workflow-ro-crate-1.0_2.1` and both `provenance-run-crate-0.5_4.1` step
checks at REQUIRED.
- **`add_workflow` now declares Workflow RO-Crate 1.1 instead of 1.0**,
which adds one RECOMMENDED failure.

## The fix

`ROCrate(version="1.1")` instead of the library default. The hand-set
descriptor `conformsTo` goes away with it: it existed to claim a 1.2
context alongside the 1.1 validators key on, and rocrate now writes the
correct claim itself (RO-Crate 1.1 + Workflow RO-Crate 1.0).

Compared with today's crate, the only change is the context URL
(`1.2/context` → `1.1/context`) and the dropped `ro/crate/1.2` claim.
Every entity is unchanged. The output is byte-identical under rocrate
0.15.0 and 0.16.0, so CI no longer depends on which one it resolves, and
the dependency stays `rocrate>=0.15`.

Moving to 1.3 waits on `roc-validator` adopting the 1.3 terms in its
workflow and provenance shapes.

## Tests

- New pure test `test_the_crate_version_is_pinned_not_rocrates_default`
checks the context and the descriptor's claims. It fails against
`main`'s `crate.py` under both rocrate 0.15 and 0.16.
- `test_crate_smoke.py` passes on rocrate 0.15.0 and 0.16.0 with
`roc-validator` 0.12.2: REQUIRED clean, RECOMMENDED within the existing
`_FLOOR`.
- Full suite on rocrate 0.16.0: 1159 passed. ruff and mypy are clean.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@EiffL EiffL closed this Oct 15, 2026
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.

2 participants