Skip to content

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.yaml moves to version 0.3.0 and id https://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_refs and script_refs take lists of JSON objects (new class JsonObject) 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 annotated json_schema_type: object becomes an open JSON object, and an optional enum slot also accepts null. Card and capsule JSON Schema files regenerated. (2026-09-13)
  • Registry JSON Schema regenerated with linkml 1.11.1. (2026-10-29)
  • The runtime dependencies are linkml>=1.7, linkml-runtime>=1.7 and pyyaml>=6.0, without an upper bound. The exact generator versions (linkml and linkml-runtime 1.11.1; 1.12 changes JSON Schema generation) are pinned in constraints/generate.txt, which generate.sh checks 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.compat states no removal date. Validation is unchanged. (2026-10-31)

Added

  • tests/test_json_schema_generation.py. (2026-09-13)
  • ASBTaskCard declares 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_frame and finding_evidence_span. TaskPort gains port_role and resolved_via, TypedArtifact gains content_signature, ExecutableSpec gains env, inferred and grounding_notes, and ExecutionEnvironment gains scheduler_resources and tools_versions. Cards of the reference pipeline now validate closed: 405 of the 417 released benchmark cards pass, and the other 12 carry two legacy evaluation_strategy keys. (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.md with the schema change process and a pull request template; a ruff lint job in CI (make lint no 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 tags v<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.py keeps them in agreement. (2026-10-31)
  • The publish workflow refuses a tag whose commit is not on main, a CITATION.cff version that differs from the tag and a changelog without a heading for the version; tests/test_publish_guard.py runs its version guard. The package docstring no longer carries a version. (2026-10-31)

Fixed

  • The ASBTaskCard slot list named task_objective twice. (2026-10-31)
  • generate.sh writes 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.py no longer requires the checkout directory to be named asb-schema, and skips its pyproject.toml check on Python 3.10, which has no tomllib.
  • asb_skill_collection_registry.schema.json ends with the trailing newline that the generator writes. The JSON content is unchanged.

Removed

  • IDEAS.md and 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

  • SkillCollection declares 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 classes Curator, CollectionRoles and Any.
  • 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_kind slot and TaskKindEnum on ASBTaskCard. (2026-06-09)
  • Apache-2.0 LICENSE file, declared in pyproject.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) to asb-schema (asb_schema). LinkML files renamed from scitask*.yaml to asb*.yaml.
  • SciTaskCard renamed ASBTaskCard in LinkML. The asb: prefix is the default prefix. The schemas contain no urn:scitask: identifier.
  • asb.yaml imports the five sub-schemas.

Added

  • ASBSkill and ASBTool, the collection-time records; skill bundle schema 0.2.
  • MergeAuditRecord with its full slot set and decision enum.
  • SkillCollection and SkillCollectionRegistry.
  • Description rules on ASBSkill.description.
  • Reserved ToolAffordance mixin.
  • Test for the bio_tools_id slot on ASBTool.
  • Generated JSON-LD @context for the w3id.org/holobiomicslab/asb-* namespaces.
  • asb_schema.compat, which maps the legacy names and emits a DeprecationWarning.
  • 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.sh and a Makefile.

Changed

  • LinkML files renamed from *.linkml.yaml to *.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.