Changelog¶
All notable changes to the asb-schema package. The format follows
Keep a Changelog and the package
follows Semantic Versioning.
0.4.0 - 2026-10-30¶
Changed¶
asb_card.yamlmoves to version 0.3.0 and idhttps://w3id.org/holobiomicslab/asb-schema/card/v0.3, as the versioning policy requires for a change that can reject previously valid cards. (2026-10-31)ASBTaskCard:parameters,data_accessions,artifact_refsandscript_refstake lists of JSON objects (new classJsonObject) instead of lists of strings. A card that stores strings in these fields validates against 0.3.0 and fails against this version. (2026-09-13)- The JSON Schema files are generated by
asb_schema.jsonschemagen: a class annotatedjson_schema_type: objectbecomes an open JSON object, and an optional enum slot also acceptsnull. Card and capsule JSON Schema files regenerated. (2026-09-13) - Registry JSON Schema regenerated with
linkml1.11.1. (2026-10-29) - The runtime dependencies are
linkml>=1.7,linkml-runtime>=1.7andpyyaml>=6.0, without an upper bound. The exact generator versions (linkmlandlinkml-runtime1.11.1; 1.12 changes JSON Schema generation) are pinned inconstraints/generate.txt, whichgenerate.shchecks and the CI generated job installs; the generation test skips under other versions. (2026-10-31) - The capsule descriptions state an RO-Crate 1.1 package, without the Workflow Run Profile 0.5 claim; Workflow Run Crate alignment is tracked in the reference pipeline. (2026-10-31)
- Schema descriptions name the ASB task card instead of the SciTask Card, carry
the real file versions in their headers and cite no internal plan,
specification section or private repository;
asb_schema.compatstates no removal date. Validation is unchanged. (2026-10-31)
Added¶
tests/test_json_schema_generation.py. (2026-09-13)ASBTaskCarddeclares the fourteen optional slots that the reference pipeline writes into its cards:related_repos,execution_profile,task_inputs,task_outputs,prov,data_in,data_out,resumption_contract,execution_environment,executable,spine_entity_ids,spine_condition_ids,abstraction_frameandfinding_evidence_span.TaskPortgainsport_roleandresolved_via,TypedArtifactgainscontent_signature,ExecutableSpecgainsenv,inferredandgrounding_notes, andExecutionEnvironmentgainsscheduler_resourcesandtools_versions. Cards of the reference pipeline now validate closed: 405 of the 417 released benchmark cards pass, and the other 12 carry two legacyevaluation_strategykeys. (2026-10-31)tests/test_reference_conformance.py, with one card of a heuristic build and three released cards as fixtures. (2026-10-31)CONTRIBUTING.mdwith the schema change process and a pull request template; a ruff lint job in CI (make lintno longer ignores failures);MANIFEST.in, so that the test suite runs from the source distribution. (2026-10-31)- Standalone repository: README,
CITATION.cff, documentation site, CI on Python 3.10 to 3.14, publish workflow on tagsv<version>, project URLs in the package metadata. - Package metadata: trove classifiers (Python 3.10 to 3.14), keywords, and the
author named in
CITATION.cff;tests/test_package_metadata.pykeeps them in agreement. (2026-10-31) - The publish workflow refuses a tag whose commit is not on
main, aCITATION.cffversion that differs from the tag and a changelog without a heading for the version;tests/test_publish_guard.pyruns its version guard. The package docstring no longer carries a version. (2026-10-31)
Fixed¶
- The
ASBTaskCardslot list namedtask_objectivetwice. (2026-10-31) generate.shwrites each generated file to a temporary file and moves it into place, so a failed run no longer truncates a committed file. (2026-10-31)tests/test_rename_migration.pyno longer requires the checkout directory to be namedasb-schema, and skips itspyproject.tomlcheck on Python 3.10, which has notomllib.asb_skill_collection_registry.schema.jsonends with the trailing newline that the generator writes. The JSON content is unchanged.
Removed¶
IDEAS.mdand the implementation plan of 2026-05-24, internal planning notes of the parent repository. Both remain in the history.
0.3.0 - 2026-09-14¶
First release on PyPI, uploaded on 2026-09-14.
Added¶
SkillCollectiondeclares the ten keys that released manifests carry:@context,@type,@id,lead_curators,skills_count,tools_count,workflows_count,domain_topics,roles,zenodo_doi. All ten are optional; the six required slots are unchanged. New classesCurator,CollectionRolesandAny.- Exploration trace schema
asb_trace.yaml(ExplorationTree,ExplorationNode) and its JSON Schema. (2026-08-18; alternatives removed by a guard recorded on the decision node, 2026-09-09) task_kindslot andTaskKindEnumonASBTaskCard. (2026-06-09)- Apache-2.0
LICENSEfile, declared inpyproject.toml.
Changed¶
asb_schema.__version__matches the package version.
0.2.0 - 2026-05-24¶
Not published on PyPI.
Changed¶
- Package renamed from
scitask-schema(scitask_schema) toasb-schema(asb_schema). LinkML files renamed fromscitask*.yamltoasb*.yaml. SciTaskCardrenamedASBTaskCardin LinkML. Theasb:prefix is the default prefix. The schemas contain nourn:scitask:identifier.asb.yamlimports the five sub-schemas.
Added¶
ASBSkillandASBTool, the collection-time records; skill bundle schema 0.2.MergeAuditRecordwith its full slot set and decision enum.SkillCollectionandSkillCollectionRegistry.- Description rules on
ASBSkill.description. - Reserved
ToolAffordancemixin. - Test for the
bio_tools_idslot onASBTool. - Generated JSON-LD
@contextfor thew3id.org/holobiomicslab/asb-*namespaces. asb_schema.compat, which maps the legacy names and emits aDeprecationWarning.- JSON Schema files regenerated under the
asb_*names.
0.1.1 - 2026-05-22¶
Not published on PyPI.
Added¶
- JSON Schema generation for the three schemas, bundled in the package;
generate.shand aMakefile.
Changed¶
- LinkML files renamed from
*.linkml.yamlto*.yaml.
0.1.0 - 2026-05-22¶
Not published on PyPI. Created as scitask-schema inside the parent
repository.
Added¶
- LinkML schemas for the task card, the capsule and the skill bundle, with mappings to schema.org, Dublin Core terms, P-Plan, PROV, EDAM and RO-Crate.
- Smoke tests on required slots and ontology coverage.