Repository navigation
Description
Staging for how the open upstream PRs get reviewed. Nothing here is applied upstream yet; the proposed upstream descriptions are on the fork mirrors (top of each, marked "Proposed upstream description").
Merge order
| # | Upstream | Fork mirror (own diff) | Source to read | Reviewer | Before upstream |
|---|---|---|---|---|---|
| 1 | linkml#3716 propertyNames | #16 | 39 | approved (Corey) | rebase only; merge |
| 2 | linkml#4168 fallback base, TriG | #60 | 65 | into linkml#3704's branch; unblocks it | – |
| 3 | linkml#3993 deterministic serialization docs | #27 | docs 22 | Corey | none now; whichever of linkml#3993 / linkml#3704 lands second adjusts the "optional dependency" sentence |
| 4 | linkml#4144 JSON-LD 1.1 @version |
#56 | 13 | Corey | rebased onto main as 21045aa36 (2026-11-04) |
| 5 | linkml#4171 instantiates in gen-owl |
#31 | 41 | unassigned | – |
| 6 | linkml#3989 rules: presence implies value | #19 | 683 | Kevin (changes requested 10-05, addressed) | body: since-review note, questions moved into the body |
| 7 | linkml#3990 rules: compositional fallback + linkml#3991 docs folded in | #20 (fold staged in #62) | 496 | Kevin | push #62's commit to linkml#3990's branch, close linkml#3991 / fork #23 |
| 8 | linkml#4156 URI term kinds | #32 | 549 | Corey | merged 2026-10-30 (squash 983332464) |
| 9 | linkml#4157 declared annotation terms | #58 | 184 | Corey | merged 2026-11-04 (merge commit 0816d1bda) |
| 10 | linkml#4158 annotation property roles | #59 | 177 | unassigned | 7fc0443aa; Corey merged main into it (359a263c2, 2026-11-04) |
| 11 | linkml#4028 class-level expressions | #29 | 754 | Kevin | after linkml#3989; drop the duplicate helpers on rebase |
| 12 | linkml#4169 range_expression |
#30 | 225 | unassigned | – |
| 13 | linkml#4170 has_member |
#34 | 323 | unassigned | – |
| 14 | linkml#3446 --normalize-prefixes |
#4 | 478 | Kevin (matentzn commented) | mark ready (gh pr ready 3446) |
Conflicts: the bases linkml#3989, linkml#4028 and linkml#4156 conflict pairwise in shaclgen.py (small hunks); whichever lands first, the others rebase. linkml#3446 conflicts with three stacks and linkml#4144, so it goes last. linkml#3716 conflicts with linkml#4028 only in tests.
Decisions taken
- Stacked PRs stay ready; the first lines of each body give the merge order, the own diff and what to read first.
- feat(rdf): give declared annotation values and native metadata the term of their range linkml/linkml#4157 and feat(owlgen): give annotation properties their OWL role and no logical axioms linkml/linkml#4158 stay separate (their base fix(rdf): give values of URI-like types one RDF term kind in every generator linkml/linkml#4156 is the bottleneck, not the split); docs(shacl): document rule-to-SHACL-SPARQL constraint generation linkml/linkml#3991 folds into feat(gen-shacl): add a compositional fallback for rule-to-SPARQL conversion linkml/linkml#3990.
- feat(rdf): give declared annotation values and native metadata the term of their range linkml/linkml#4157 keeps the literal for a bare
see_also: READMEand cites fix: gen-owl places bare uri and uriorcurie values in default namespace linkml/linkml#4174. - feat(gen-shacl): translate presence-implies-value rules to SHACL-SPARQL linkml/linkml#3989 / feat(generators): translate class-level boolean expressions alike to SHACL and JSON Schema linkml/linkml#4028 duplicate helpers: noted in feat(generators): translate class-level boolean expressions alike to SHACL and JSON Schema linkml/linkml#4028, dropped by whichever lands second.
- Only feat(jsonschemagen): emit propertyNames from inlined-dict key slot constraints linkml/linkml#3716 is rebased now; the others when a reviewer asks or approves (main moves daily).
Upstream checklist (after approval)
- Rebase feat(jsonschemagen): emit propertyNames from inlined-dict key slot constraints linkml/linkml#3716 (approved).
- Push the folded feat(gen-shacl): add a compositional fallback for rule-to-SPARQL conversion linkml/linkml#3990 commit ([staging] feat(gen-shacl): add a compositional fallback for rule-to-SPARQL conversion #62,
7f8564cae, Rayene Messaoud stays author) tofeat/shaclgen-compositional-rule-fallbackwith a lease on5a673d4c8; close docs(shacl): document rule-to-SHACL-SPARQL constraint generation linkml/linkml#3991 and fork docs(shacl): document rule-to-SHACL-SPARQL constraint generation #23 before deleting their branch. - Copy the 14 proposed descriptions to the upstream PRs.
-
gh pr ready 3446(blocked for the agent). - Posts by Carlo himself (the AI Covenant forbids agents posting comments or messages): the two drafts below; edit the April "awaiting prefixmaps" comment on feat(generators): add --normalize-prefixes for conventional prefix names in every generator linkml/linkml#3446.
Draft: message to matentzn (triager), from Carlo
Hi Nico, to make my open PRs easier to review I put the merge order at the top of each, with what to read first: linkml#3716 → linkml#4168 → linkml#3993 → linkml#4144 → linkml#4171 → linkml#3989 → linkml#3990 → linkml#4156 → linkml#4157 → linkml#4158 → linkml#4028 → linkml#4169 → linkml#4170 → linkml#3446. The first five are small (under 70 lines of source each, linkml#3716 is approved). linkml#4156 needs one decision, stated in three lines at its top. linkml#4157, linkml#4158, linkml#4169, linkml#4170 and linkml#4171 have no reviewer yet; could you assign them? I folded linkml#3991 into linkml#3990, so it's one PR fewer.
Draft: comment on linkml#4174, from Carlo
Hi, linkml#4157 handles the same case the other way: it writes a bare
see_also: READMEas a plain literal with a warning, because a value that is neither an IRI nor a CURIE has no absolute IRI (RDF 1.1 §3.2), and OWL 2 admits a literal as an annotation value (§10.1). Resolving it against the default namespace gives an IRI the author may not have meant. Could we settle on one behaviour? I'm happy to align linkml#4157 if the maintainers prefer yours.
Draft: edit of the April comment on linkml#3446
Update 2026-10-30: no longer blocked. The prefixmaps git pin is gone; the names come from prefixmaps' curated
linked_datacontext and rdflib's defaults, as described in the PR.
Activity