feat(validation): flip RO-Crate base spec to 1.2 (#110)#163
Merged
Conversation
Upstream unblocked it: roc-validator 0.11.0 ships a ro-crate-1.2 base profile (crs4/rocrate-validator#164), lifting the #105 deferral. - Bump roc-validator >=0.11.0. - Descriptor base spec -> https://w3id.org/ro/crate/1.2 (ROCRATE_SPEC); base-pass profile_identifier -> ro-crate-1.2 on both the dict and disk paths. - Real fix surfaced by 1.2's stricter SHACL: the CSVW condition-table column emitted valueUrl as a bare id STRING; 1.2 requires entity links be {@id} references. Emit {"@id": ...}. - Dict-path guard: 1.2's ro-crate-1.2_3.1 (descriptor-file UTF-8) check can't apply to an in-memory document, so it false-positived on build_and_validate. Drop it on the dict path only (_DICT_PATH_NA_CHECKS); the on-disk validate_crate still enforces real file encoding. The transport-failure guard (#117) is message-keyed, so it survives the 1.1->1.2 check-id change. - Tests: flip the #105 deferral assertion (1.1 -> 1.2); make the offline test version-agnostic (assert base pass clean under network-down, not 1.1 check ids). - Docs/labels: AGENTS.md, isa_tox.md conformance section (now documents 1.2 placement: base URI on descriptor, profiles on ./), validator pass labels, maturity report, validator suggestion text. Full suite: 675 passed; ty + ruff clean. Closes #110. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…#110) CI runs pytest --timeout=30 -x. Each test in test_e2e_agent_eval drives the full scripted tool sequence plus two real SHACL validations (build_and_validate + an on-disk round-trip validate). Under 1.2 the validator is slower (larger ontology / pyshacl ontology-mixing), so on shared CI runners the build+validate fixture exceeded 30s and the e2e setup timed out (passed locally on faster hardware). Add a module-level pytest.mark.timeout(120) so this integration file gets a realistic ceiling while the rest of the suite keeps the strict 30s. No coverage change — the disk round-trip validation assertions are unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unblocked today: roc-validator 0.11.0 ships a
ro-crate-1.2base profile (crs4/rocrate-validator#164), lifting the #105 deferral. This completes #91/#110 — the crate now conforms to RO-Crate 1.2 end to end.Changes
roc-validator >=0.11.0.ROCRATE_SPEC→https://w3id.org/ro/crate/1.2; base-passprofile_identifier→ro-crate-1.2(dict + disk paths). (Profiles already live on the Root Data Entity from fix(mapping): declare profiles on Root Data Entity, descriptor base-only (#91) #116.)valueUrlas a bare id string; 1.2 requires entity links be{"@id": …}references. Fixed.ro-crate-1.2_3.1(descriptor-file UTF-8) check can't apply to an in-memory document → it false-positived onbuild_and_validate. Dropped on the dict path only (_DICT_PATH_NA_CHECKS); the on-diskvalidate_cratestill checks real file encoding. The Validation tests hit the network (CI flake): pin/stub remote context/ontology fetches for offline validation #117 transport-failure guard is message-keyed, so it survived the1.1→1.2check-id change.1.1→1.2); made the offline test version-agnostic (asserts the base pass is clean under network-down rather than hardcodingro-crate-1.1_2.*ids).isa_tox.mdconformance section (was stale — now documents the 1.2 placement: single base URI on the descriptor, profiles on./), validator pass labels, maturity report, validator suggestion text.Verification
build_and_validate+ offline validation pass at 1.2; disk + dict paths both clean.ty+ruffclean.Closes #110. (Supersedes the 1.1 deferral from #105.)
🤖 Generated with Claude Code