Repository navigation
Conversation
Add rocrate-validator to the dev dependencies and CI, with tests that build a crate and check it against the ro-crate-1.2 and process-run-crate-0.5 profiles (offline, REQUIRED level), plus a check that a missing licence is caught. The real-app e2e workflow now runs the same validation, in its own virtual environment because rocrate-validator requires rich<14 while current Flower requires rich>=14. Pin the RO-Crate version written by build_crate to 1.2 and require rocrate>=0.15: ro-crate-py 0.16 changed its default to RO-Crate 1.3, so the version flwrCrate wrote depended on which ro-crate-py was installed.
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.
Adds rocrate-validator to the test setup and CI, and validates generated crates against RO-Crate 1.2 and Process Run Crate.
Changes
roc-validator>=0.13added to thedevextra and installed intests.yml.tests/test_validation.py: builds a crate and checks it againstro-crate-1.2andprocess-run-crate-0.5at REQUIRED level, plus a test that a missing licence is reported.realapps.yml/tests/e2e/validate_crate.py) now runs the same validation on a crate from an actual Flower run.rocrateversion, the Validation section and the development setup updated; a duplicated comment intest_integration.pyremoved.Validation runs with
offline=True, which since 0.13 reads only the validator's HTTP cache, so CI fills the cache first withrocrate-validator cache warm. The profile is named explicitly, because recent versions default to RO-Crate 1.3. Process Run Crate is checked against the 0.5 profile withdisable_inherited_profiles_issue_reporting=True, as suggested, since the validator has no 0.6 profile yet.The opt-in checks added in 0.13 are enabled as well (
extra_checks=True). Their findings don't affectpassed(), so the tests assert separately that there are none. Our crates currently have none.RO-Crate version is now pinned
ro-crate-py 0.16.0 (released 6 Oct) changed its default output to RO-Crate 1.3. flwrCrate never set the version, so what it wrote depended on the installed ro-crate-py: 1.1 with 0.13/0.14, 1.2 with 0.15, 1.3 with 0.16. The e2e crate from 8 October was already RO-Crate 1.3, and the new 1.2 test failed under ro-crate-py 0.16.
build_cratenow usesROCrate(version="1.2"), and the minimum is raised torocrate>=0.15(older versions don't acceptversion=). This also affects users of the released 0.4.0.Dependency conflict to be aware of
rocrate-validator requires
rich<14, while Flower 1.32+ (including the latest, 1.41) requiresrich>=14, so they can't be installed in the same environment:rich14. I'm working on a PR to add that support upstream.All 54 tests pass locally and in CI (Python 3.11–3.14, rocrate 0.16, roc-validator 0.13.0), and so does the real-app e2e.
Closes #15