rocrate 0.16 moved its default from RO-Crate 1.2 to 1.3. The 1.3
context maps ComputationalWorkflow to a bioschemas term the Workflow
RO-Crate and Run Crate profiles do not recognise, so the main workflow
lost its type and the validator smoke test failed REQUIRED on every
runner, whichever branch CI resolved it for.
Write 1.1 explicitly instead of following the library's default. The
rendered crate is now byte-identical under rocrate 0.15 and 0.16, and
the descriptor's conformsTo is rocrate's own for 1.1 (RO-Crate 1.1 +
Workflow RO-Crate 1.0) rather than a hand-set claim of a 1.2 context
the document no longer emits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes the
test_crate_smoke.pyfailure every branch has hit since rocrate 0.16.0 shipped on Oct 6.uv.lockis not committed, so CI resolves the latest rocrate. Supersedes #253, which capsrocrate<0.16.What broke
rocrate 0.16 changed two defaults:
ComputationalWorkflowtohttps://bioschemas.org/terms/ComputationalWorkflow. The Workflow RO-Crate 1.0 and Run Crate 0.5 shapes inroc-validator0.12.2 (the latest release) key onhttps://bioschemas.org/ComputationalWorkflow. Soastra.yamlstops reading as a workflow, which failsworkflow-ro-crate-1.0_2.1and bothprovenance-run-crate-0.5_4.1step checks at REQUIRED.add_workflownow 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 descriptorconformsTogoes 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 droppedro/crate/1.2claim. 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 staysrocrate>=0.15.Moving to 1.3 waits on
roc-validatoradopting the 1.3 terms in its workflow and provenance shapes.Tests
test_the_crate_version_is_pinned_not_rocrates_defaultchecks the context and the descriptor's claims. It fails againstmain'scrate.pyunder both rocrate 0.15 and 0.16.test_crate_smoke.pypasses on rocrate 0.15.0 and 0.16.0 withroc-validator0.12.2: REQUIRED clean, RECOMMENDED within the existing_FLOOR.🤖 Generated with Claude Code