Skip to content

Release prep: generate v1.12.0-rc1 against linkml main - #279

Open
amc-corey-cox wants to merge 2 commits into
mainfrom
release/1.12.0-rc1-prep
Open

amc-corey-cox wants to merge 2 commits into
mainfrom
release/1.12.0-rc1-prep

Conversation

@amc-corey-cox

Copy link
Copy Markdown
Contributor

Release prep for v1.12.0-rc1 so linkml can vendor and test against it. Does not cut the release.

The committed artifacts are stale against meta.yaml (#270/#271 changed it without a regeneration), and they don't reproduce under the next linkml either — regenerating with main rather than 1.11.1 changes rdf/*.ttl (linkml#3641), a meta.py type, and adds a java/ tree. So this generates against main.

  • tool.uv.sources pins linkml + linkml-runtime to 063d4665f. Dev-side only; the wheel still carries project.dependencies.
  • Exact pins became floors — a main checkout reports 1.11.0.post365.dev0+063d4665, which can't satisfy ==1.11.1.
  • java excluded from gen-project: javagen joined its defaults, and nothing can address the output (Format has no JAVA member) — 44 files that would also land in the linkml-runtime wheel via make update_model.
  • metamodel_version → 1.12.0, plus full regeneration.

Two notes for review:

metamodel_version lands unevenly — meta.py gets 1.12.0 from meta.yaml, the other modules get 1.11.0 from linkml-runtime's vendored metamodel (still model 1.11.1-rc1). Resolves once linkml vendors this rc.

The ~26k-line diff is almost entirely timestamps and RDF/SQL ordering. Checked by graph comparison: SHACL is semantically identical bar the is_a change (5,135 property shapes, zero differences); sorted SQL leaves only the real changes. The content is #271 propagating — AnonymousClassExpression.is_a narrowing to ClassDefinition across every artifact.

Before final release: swap the pin and floors for the released versions, regenerate, confirm no change.

Verified: make gen-project, make test (8 passed, 5 skipped), pre-commit run --all-files clean.

Pins the generation toolchain to linkml 063d4665f via tool.uv.sources so the
rc's artifacts are produced by the commit expected to become the next linkml
release, rather than by 1.11.1, which no longer reproduces them.

The == pins had to become floors: a main checkout reports
1.11.0.post365.dev0+063d4665, which does not satisfy ==1.11.1. Both the pin and
the floors need replacing with the real released versions before the final
release.

Also excludes java from gen-project. javagen joined its default outputs, which
would have added 44 generated Java files to a package that has never shipped
them and cannot address them -- Format has no JAVA member and the w3id rewrite
rules mirror that list.
Regenerates every artifact against the pinned toolchain, picking up #270 and
#271, which changed meta.yaml on Aug 21/25 without a regeneration -- the
committed artifacts have been stale against their own source since then.

metamodel_version lands unevenly in this pass: meta.py reads 1.12.0 from
meta.yaml, but the other modules read 1.11.0 from linkml-runtime's vendored
metamodel, which is still model 1.11.1-rc1. That resolves once linkml vendors
this rc and the model is regenerated against it.
Copilot AI lite review requested due to automatic review settings September 16, 2026 21:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The regeneration appears to introduce a semantic/field-mapping change in JSON-LD output (e.g., class_uri not being preserved) that should be validated and/or corrected before approving a release-prep RC artifact set.

Pull request overview

Prepares the linkml-model repository for the v1.12.0-rc1 cycle by regenerating committed model artifacts against linkml main (to match what downstream LinkML will vendor/test), bumping the metamodel version, and adjusting generation/tooling config to avoid unwanted outputs.

Changes:

  • Bump metamodel_version to 1.12.0 and regenerate generated Python / JSON-LD / GraphQL / RDF / ShEx artifacts accordingly.
  • Adjust dependency constraints (and add uv git sources) to allow generating against a specific linkml commit while keeping published-wheel deps as PEP 508 requirements.
  • Exclude java/ from gen-project output to prevent introducing unshippable/unused Java artifacts.
File summaries
File Description
pyproject.toml Loosens linkml/linkml-runtime requirements and adds tool.uv.sources pins for dev-time generation.
gen_project_config.yaml Excludes java from gen-project output.
linkml_model/model/schema/meta.yaml Bumps metamodel_version to 1.12.0 in the source metamodel schema.
linkml_model/meta.py Regenerated Python metamodel; reflects version bump and schema propagation (e.g., AnonymousClassExpression.is_a narrowing, updated coercions).
linkml_model/validation.py Regenerated (removes embedded generation timestamp).
linkml_model/units.py Regenerated (removes embedded generation timestamp).
linkml_model/types.py Regenerated (removes embedded generation timestamp).
linkml_model/mappings.py Regenerated (removes embedded generation timestamp).
linkml_model/extensions.py Regenerated (removes embedded generation timestamp).
linkml_model/datasets.py Regenerated (removes embedded generation timestamp).
linkml_model/array.py Regenerated (removes embedded generation timestamp).
linkml_model/annotations.py Regenerated (removes embedded generation timestamp).
linkml_model/shex/meta.shex Updates embedded metamodel_version header to 1.12.0.
linkml_model/graphql/meta.graphql Updates embedded metamodel_version header and narrows AnonymousClassExpression.isA type.
linkml_model/jsonld/meta.jsonld Regenerated JSON-LD representation of the metamodel (includes new slots/usages and ordering/field changes).
linkml_model/rdf/types.ttl Regenerated RDF TTL for types schema (ordering/formatting changes).
linkml_model/rdf/types.model.ttl Regenerated RDF TTL model variant for types schema.
linkml_model/rdf/mappings.ttl Regenerated RDF TTL for mappings schema (ordering/formatting changes).
linkml_model/rdf/extensions.ttl Regenerated RDF TTL for extensions schema (ordering/formatting changes).
linkml_model/rdf/extensions.model.ttl Regenerated RDF TTL model variant for extensions schema.
linkml_model/rdf/annotations.ttl Regenerated RDF TTL for annotations schema (ordering/formatting changes).
linkml_model/rdf/annotations.model.ttl Regenerated RDF TTL model variant for annotations schema.
Review details

Suppressed comments (2)

linkml_model/jsonld/meta.jsonld:7571

  • structured_alias in meta.yaml sets class_uri: skosxl:Label, but this regenerated JSON-LD class definition omits class_uri and only keeps skosxl:Label under exact_mappings. That changes the meaning from an assigned RDF class URI to an equivalence mapping; if intentional, the source schema should be updated accordingly, otherwise the generator should emit class_uri here.
      "name": "StructuredAlias",
      "definition_uri": "https://w3id.org/linkml/StructuredAlias",
      "description": "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)",
      "from_schema": "https://w3id.org/linkml/meta",
      "exact_mappings": [
        "skosxl:Label"
      ],
      "mixins": [

linkml_model/jsonld/meta.jsonld:8841

  • extensions.yaml defines AnyValue.class_uri: linkml:Any, but in the regenerated JSON-LD this information is not represented as class_uri (it only appears under exact_mappings). If class_uri is still part of the model, this is a lossy serialization; if it is being deprecated, consider updating the source schema so the semantics remain unambiguous.
      "name": "AnyValue",
      "definition_uri": "https://w3id.org/linkml/AnyValue",
      "from_schema": "https://w3id.org/linkml/extensions",
      "imported_from": "linkml:extensions",
      "exact_mappings": [
        "linkml:Any"
      ],
      "slot_usage": {},
      "@type": "ClassDefinition"
    },
  • Files reviewed: 30/39 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread linkml_model/jsonld/meta.jsonld

@kevinschaper kevinschaper left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no surprises found, looks good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants