Conversation
LinkML Linting ResultsSummary
Problems per Schema/home/runner/work/mixs/mixs/src/mixs/schema/mixs.yamlErrors
|
|
0cff8f6 to
fa7bd3a
Compare
LinkML Linting ResultsSummary
|
There was a problem hiding this comment.
Pull request overview
This PR updates the MIxS LinkML schema to better document and constrain seasonal metadata for Soil samples, including making season a controlled enumeration and clarifying usage expectations around season_temp.
Changes:
- Updates the
seasonslot to useSeasonEnumand adjusts its description. - Adds guidance to
season_tempindicating it should only be populated whenseasonis also populated. - Adds
seasonto theSoilextension slots and introduces two new “valid” YAML examples.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
src/mixs/schema/mixs.yaml |
Switches season to an enum, adds a usage comment to season_temp, and adds season to Soil. |
src/data/examples/valid/Soil-alone-season_temp.yaml |
Adds a Soil example including both season_temp and season (currently not MixsCompliantData-rooted). |
src/data/examples/valid/Soil-alone-minimal.yaml |
Adds a minimal Soil example (currently not MixsCompliantData-rooted). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - al_sat | ||
| - al_sat_meth | ||
| - misc_param | ||
| - season |
There was a problem hiding this comment.
Soil now includes the season slot in the schema, but the committed generated Python datamodel (src/mixs/datamodel/mixs.py) still defines Soil without a season field. This leaves the repository in an inconsistent state (schema != generated artifacts) and prevents Python consumers from using the new slot. Regenerate and commit the LinkML-generated artifacts (at least the Python datamodel) after updating the schema.
| - season |
| samp_name: sample_1 | ||
| project_name: project_1 | ||
| depth: 1 m | ||
| elev: 100 m |
There was a problem hiding this comment.
This example file is not shaped like a MixsCompliantData instance (it contains bare Soil slots at the root). The repo’s tests/tools expect valid examples in src/data/examples/valid to be loadable/validatable as MixsCompliantData (e.g., via the soil_data: container slot), so this will likely fail make test/linkml examples and is not covered by tests/test_data.py’s MixsCompliantData*.yaml glob. Wrap the instance under soil_data: - ... (or another appropriate *_soil_data slot) and rename the file to match the existing MixsCompliantData*.yaml convention (or move it to a different directory used for non-root examples).
| samp_name: sample_1 | |
| project_name: project_1 | |
| depth: 1 m | |
| elev: 100 m | |
| soil_data: | |
| - samp_name: sample_1 | |
| project_name: project_1 | |
| depth: 1 m | |
| elev: 100 m |
| samp_name: sample_1 | ||
| project_name: project_1 | ||
| depth: 1 m | ||
| elev: 100 m | ||
| season_temp: 18 degree Celsius | ||
| season: winter [NCIT:C94730] |
There was a problem hiding this comment.
This example file is not shaped like a MixsCompliantData instance (it contains bare Soil slots at the root), which is inconsistent with the other files in src/data/examples/valid and is unlikely to be exercised by the repo’s example validation/test harnesses. Wrap this under soil_data: - ... (or another appropriate *_soil_data slot) and rename to the MixsCompliantData*.yaml convention so it is validated. Also, the filename Soil-alone-season_temp.yaml is misleading because it includes both season_temp and season; consider renaming to reflect that season is present (e.g., ...-season_temp-with-season).
| samp_name: sample_1 | |
| project_name: project_1 | |
| depth: 1 m | |
| elev: 100 m | |
| season_temp: 18 degree Celsius | |
| season: winter [NCIT:C94730] | |
| soil_data: | |
| - samp_name: sample_1 | |
| project_name: project_1 | |
| depth: 1 m | |
| elev: 100 m | |
| season_temp: 18 degree Celsius | |
| season: winter [NCIT:C94730] |
season_tempshouldn't be filled withoutseasonseasonwithSoilstring_serializationonseasonwith an enumeration that serves as documentation and validation