Repository navigation
Releases
v0.18.1
What's Changed
- Fix ohi SDK READMEs (bad merge) by @Ostrzyciel in #397
- LNK-258: Make loading and linting a schema faster by @plokhotnyuk in #393
- LNK-258: Derive the slots of classes faster and with fewer copies by @plokhotnyuk in #396
- LNK-258: Make the Docs page of the playground fast on large schemas by @plokhotnyuk in #391
- Upgrade mill to 1.3 by @Ostrzyciel in #398
- Tidy up README and docs by @Ostrzyciel in #399
- LNK-258: Write the slot tables of class pages faster by @plokhotnyuk in #395
- LNK-258: Add the FIBO quickstart schema to the generator benchmarks by @plokhotnyuk in #394
- Regenerate metamodel by @niegrzybkowski in #406
- OHI-126: Fix search clutter by @rezafuru in #405
Full Changelog: v0.18.0...v0.18.1
v0.18.0
Rebranding
The LinkML-Scala repo is changing to ohi!
The LinkML-Scala engine is now just a part of the ohi project. LinkML-Scala is renamed to ohi LinkML.
Check out ohi.dev, ohi docs for more info about ohi.
Major features
New website
ohi LinkML has a new website now: linkml.ohi.dev, including docs, and a new look for the playground!
Documentation generator
Generates markdown documentation: an index of the schema plus a page for each class, slot, enum and type. This is also now the default generator in the playground.
Stats generator
Provides a quick summary of a LinkML schema, the number of classes, mappings, descriptions, and other basic checks.
Experimental functions metamodel feature
We're working on a new functions metamodel feature, which allows describing transformations between classes, like gRPC: Example
What's Changed
- OHI-91: Add an integration with ohi.dev in playground by @Ostrzyciel in #316
- LNK-233: Write a dict entry in the short form only when its other slots hold their defaults by @plokhotnyuk in #318
- Update jsonschema-circe to 0.12.1 by @scala-steward in #319
- LNK-245: Check URI and CURIE values when a schema is loaded and written by @plokhotnyuk in #313
- LNK-200: Add a docs site by @niegrzybkowski in #322
- Shorten command help texts, tidy them up by @Ostrzyciel in #320
- LNK-247: Add a Markdown documentation generator by @plokhotnyuk in #309
- OHI-93: Format search results in CLI output by @rezafuru in #326
- OHI-103: Add 👋ohi.dev docs by @niegrzybkowski in #327
- OHI-103: Fix node version by @niegrzybkowski in #329
- OHI-87: Add verified downloads from locks by @rezafuru in #314
- ohi LinkML: branding, theming, landing page by @Ostrzyciel in #331
- OHI-95: Better defaults for get/add by @rezafuru in #328
- Playground: make docs the default generator by @Ostrzyciel in #333
- Speed up CI by @Ostrzyciel in #332
- LNK-244: Support of min/max length in generators/importers by @plokhotnyuk in #335
- LNK-245: Fix problems found in review of URI and CURIE checks by @plokhotnyuk in #323
- OHI-94: Clarify CLI help and output by @rezafuru in #334
- Clean up stuff around website & docs by @Ostrzyciel in #337
- OHI-104: Infer default artifact format by @rezafuru in #338
- Shorter install.sh URL; direct people to
ohiCLI by @Ostrzyciel in #343 - LNK-253: Fix OWL datatype imports by @niegrzybkowski in #339
- CLI: add Windows install scripts by @Ostrzyciel in #345
- Clean up Python stuff by @Ostrzyciel in #341
- Tidy up CONTRIBUTING.md by @Ostrzyciel in #349
- Rename ohi linkml 'generate' to 'to' by @Ostrzyciel in #348
- Preserve root types and enums in
schemapruning mode by @Ostrzyciel in #340 - LNK-251: Warn if recommended slots are not present by @plokhotnyuk in #342
- LNK-195: Multilingual string support in generators by @plokhotnyuk in #336
- OHI-58 ohi SDKs: remove JSON Schema dependencies by @Ostrzyciel in #344
- Rename "LinkML-Scala" to "ohi LinkML" by @Ostrzyciel in #347
- LNK-254: add
statsgenerator by @Ostrzyciel in #351 - OHI-96: Organize the documentation site by @rezafuru in #346
- LNK-256: Fix owl import by @plokhotnyuk in #354
- Implement the functional extension of LinkML by @Ostrzyciel in #357
- LinkML docs: use system theme by default by @Ostrzyciel in #356
- LinkML site: correct post-setup command by @Ostrzyciel in #359
- Speed up CI by @Ostrzyciel in #361
- ifabsent: extend support in Scala generator by @Ostrzyciel in #360
- Implement functions in TypeScript, Python, translation generators by @Ostrzyciel in #358
- Docs: add llms.txt, robots.txt, minor flair by @Ostrzyciel in #365
- ohi docs: recolor, change example by @Ostrzyciel in #368
- Slightly nicer ohi --help layout by @Ostrzyciel in #363
- Ensure consistent capitalization of "ohi" by @Ostrzyciel in #364
- ohi SDKs: add proper package readmes and metadata by @Ostrzyciel in #373
- Rename C header, dylib, Python module by @Ostrzyciel in #371
- LNK-188 Generate generator interfaces from LinkML schemas by @Ostrzyciel in #362
- LNK-188 Generate importer interfaces from LinkML schemas by @Ostrzyciel in #366
- Add doc pages for all generators and importers by @Ostrzyciel in #370
- Rename repo to NeverBlink-OSS/ohi by @Ostrzyciel in #372
- Reorganize LinkML playground files by @Ostrzyciel in #374
- OHI-112: Group versions in ohi.dev load dialog by @niegrzybkowski in #375
- OHI-116: Resolve ontology references in inspect by @rezafuru in #376
- LNK-100: implement any_of in JSON Schema, TS, Pydantic by @Ostrzyciel in #379
- LNK-259: Fix reading of block scalars with an indentation indicator by @plokhotnyuk in #380
- Add a CLA process by @Ostrzyciel in #381
- Adjust CLA config by @Ostrzyciel in #382
- OHI-88: Schema centralization by @niegrzybkowski in #383
- Point ohi.dev links at the new /o/ URL scheme by @Ostrzyciel in #377
- OHI-117: Make projects readable and manage ontology downloads by @rezafuru in #385
- OHI-117: Hide empty AI-agent guide by @rezafuru in #386
- Update case-app to 2.2.0 by @scala-steward in #387
- Update os-lib to 0.11.10 by @scala-steward in #388
- Patch updates by @scala-steward in #389
- LNK-110: Pruned schemas keep every class and enum they use, so they load without errors by @plokhotnyuk in #390
- LNK-102: Support type designators in the SHACL generator by @plokhotnyuk in #384
Full Changelog: v0.17.2...v0.18.0
v0.17.2
This release fixes a few bugs and greatly improves the performance of OWL generation on large LinkML schemas 🚀
What's Changed
- LNK-215: Add a stub value to empty enums in GraphQL by @plokhotnyuk in #306
- LNK-246: Move checked-in generated classes to their own Mill modules by @plokhotnyuk in #307
- Hash the Mill build files into the CI dependency cache key by @plokhotnyuk in #310
- UI: Move search into the dropdown by @niegrzybkowski in #311
- OHI-79: Extend SearchHit contract to include keywords as tags by @rezafuru in #308
- LNK-158, LNK-95: Expand CURIEs when data is read, compact URIs when it is written by @plokhotnyuk in #297
- LNK-214: Git lint fix by @niegrzybkowski in #312
- LNK-248: Add benchmarks for all single-document generators, and make the OWL generator faster by @plokhotnyuk in #315
- LNK-249: Revert Ossie to use alias by @niegrzybkowski in #317
Full Changelog: v0.17.1...v0.17.2
v0.17.1
Major features
👋 ohi.dev!
We're making a package manager for ontologies! A new CLI application for managing installations (+ LinkML-Scala as a subcommand) and lightweight SDKs for accessing ohi-managed ontologies in Scala (JVM), TS/JS and Python. The repo will also be renamed in the near future.
Learn more: cli/ohi/README.md, ohi/README.md
Import maps
Mechanism allowing translating well-known ontology URIs to files on disk, which makes re-using ontologies so much easier!
See more: docs/import_maps.md
What's Changed
- LNK-174: Keep the ^ pointer aligned in playground error reports by @plokhotnyuk in #283
- Update implementation differences for LinkML-Python 1.12 by @plokhotnyuk in #284
- Update the playground About dialog for recent changes by @plokhotnyuk in #285
- LNK-187: Derive LinkML codecs for classes with a type designator by @plokhotnyuk in #282
- Unmark Python bindings as "experimental" by @Ostrzyciel in #286
- LNK-177, LNK-129: Narrow any_of with slot_usage, support all boolean slots in SHACL by @plokhotnyuk in #270
- Misc fixes by @plokhotnyuk in #288
- Update apispec-model, jsonschema-circe to 0.12.0 by @scala-steward in #292
- Patch updates by @scala-steward in #293
- LNK-227: Fall back to another language for schema text by @plokhotnyuk in #290
- LNK-53 Add
slot_usageand recursive inlining models to the model catalogue by @plokhotnyuk in #294 - Use GraalVM CE for distributed binaries by @Ostrzyciel in #296
- LNK-240: Add the Ohi client by @rezafuru in #298
- LNK-228: Import maps by @plokhotnyuk in #295
- Update to the LinkML metamodel where
statusis a string by @plokhotnyuk in #299 - Regenerate metamodel by @niegrzybkowski in #300
- Playground: add a ⇆ button to the RDFS generator by @Ostrzyciel in #302
- LNK-231: Add identifier,
tree_root_asand library models to the model catalogue by @plokhotnyuk in #301 - OHI-80: Update pypi package references by @rezafuru in #305
- Improve fidelity of OWL and Ossie converters by @Ostrzyciel in #304
Full Changelog: v0.17.0...v0.17.1
v0.17.0
Major features
OWL 2 generators and importers
Highly configurable, round-trippable, tested with real ontologies. Works with RDFS as well. See it in action
Learn more: docs/owl.md
Typescript and Pydantic generators
Simple class generators following the structure of the JSON representation exactly, no linkml runtime needed.
Learn more: docs/pydantic.md docs/typescript.md
What's Changed
- Patch updates by @scala-steward in #250
- Update zio-blocks-schema-yaml to 0.0.54 by @scala-steward in #249
- Implement the TypeScript generator by @Ostrzyciel in #251
- LNK-171: Flatten only one-field classes marked with @flatten by @plokhotnyuk in #252
- LNK-220: Aliasing stability by @niegrzybkowski in #253
- LNK-101: Type designators for JsonSchema + code cleanup and performance improvements by @plokhotnyuk in #254
- Add a streaming Turtle parser by @Ostrzyciel in #255
- Upgrade Mac runners by @Ostrzyciel in #257
- LNK-226: Upgrade scala-yaml to 0.3.21 for YAML 1.2 document markers by @plokhotnyuk in #259
- OWL importer and generator by @Ostrzyciel in #256
- Hotfix playground not loading by @Ostrzyciel in #261
- Make sure RDFS imports work; bugfixes by @Ostrzyciel in #260
- LNK-136: Re-enable UriOrCurie value validation in MacroValidator by @plokhotnyuk in #263
- LNK-168: Reject unknown fields unless
extra_slotsallows them, in YAML codecs, JSON Schema, SHACL and TypeScript by @plokhotnyuk in #258 - LNK-219: Support
union_ofin Scala, JSON Schema, TypeScript and YAML codecs by @plokhotnyuk in #264 - LNK-154: Load a schema once when it is imported through different paths or links by @plokhotnyuk in #266
- Housekeeping, cleanup by @Ostrzyciel in #267
- Scala generator: add --clean option by @Ostrzyciel in #269
- Add the pydantic generator by @Ostrzyciel in #265
- Renaming and translation generator fixes by @nk2IsHere in #271
- Circe updates by @scala-steward in #273
- Update zio-blocks-schema-yaml to 0.0.56 by @scala-steward in #272
- Patch updates by @scala-steward in #274
- LNK-201: Treat
.yamland.ymlin imports equally by @plokhotnyuk in #268 - LNK-122: Embed resources as readable text and generate ModelCatalogue entries by @plokhotnyuk in #275
- Agent skill: add OWL/RDFS and Ossie imports by @Ostrzyciel in #278
- Update mill to 1.3.0 by @Ostrzyciel in #279
- Regenerate re-ranked metamodel by @niegrzybkowski in #280
- LNK-141: Generate classes without children as single case classes by @plokhotnyuk in #276
- Revert "Update mill to 1.3.0 (#279)" by @niegrzybkowski in #281
New Contributors
- @nk2IsHere made their first contribution in #271
Full Changelog: v0.16.3...v0.17.0
v0.16.3
What's Changed
- Document the language string feature by @Ostrzyciel in #247
- Factor out rdf module, add N-Triples parser by @Ostrzyciel in #246
- Update to latest Ossie version, add IRI handling by @Ostrzyciel in #248
Full Changelog: v0.16.2...v0.16.3
v0.16.2
What's Changed
- Streamline READMEs by @Ostrzyciel in #243
- LNK-205: Scala conformance test runner by @niegrzybkowski in #236
- LNK-213: Add fuzzers for renaming round-trips by @niegrzybkowski in #240
- LNK-218: Split mill build scripts by @niegrzybkowski in #241
- Update jsoniter-scala-macros to 2.41.0 by @scala-steward in #244
- py: Fix unfreed Schemas hanging Python process on exit by @Ostrzyciel in #245
Full Changelog: v0.16.1...v0.16.2
v0.16.1
What's Changed
- RDF4J updates by @scala-steward in #232
- Add Ossie importer to playground; UI fixes by @Ostrzyciel in #234
- Fix Scala 3.9 keywords by @plokhotnyuk in #233
- LNK-208: Fix PV-alias in tests by @niegrzybkowski in #235
- LNK-34: Add opt-in JSON Schema null support by @rezafuru in #237
- LNK-206: ErDiagramGenerator into renaming framework by @rezafuru in #238
- LNK-126: implement type derivation by @rezafuru in #239
New Contributors
Full Changelog: v0.16.0...v0.16.1
v0.16.0
Major features
- Generators and importers for Apache Ossie!
- The PyPI neverblink-linkml package now includes sdist, much smaller binaries, and works with essentially any platform.
What's Changed
- Add support for cardinality constraints in JSON Schema by @Ostrzyciel in #211
- LNK-167: Remove NMDC disables by @niegrzybkowski in #212
- LNK-166: Keep track of schema in issues by @niegrzybkowski in #213
- LNK-198: Factor sorting out to SchemaView by @niegrzybkowski in #214
- LNK-197: Multi-table catalogue tests by @niegrzybkowski in #215
- Update Scala to 3.9.0 LTS by @plokhotnyuk in #217
- LNK-183: Emit rdfs:subclassOf for enum is_a/mixin inheritance by @niegrzybkowski in #216
- Implement Scala Native bindings, sdist in Python package by @Ostrzyciel in #218
- Fix playground version footer by @Ostrzyciel in #220
- LNK-159: Strict renames by @niegrzybkowski in #219
- Enable LTO, fix target glibc version by @Ostrzyciel in #221
- Fix round-tripping and validating unique_keys by @Ostrzyciel in #223
- Fix round-tripping object-valued extensions by @Ostrzyciel in #224
- Update scala-yaml to 0.3.19 by @plokhotnyuk in #225
- Add an Apache Ossie generator by @Ostrzyciel in #222
- LNK-207: Fix non-standard separators in the metamodel by @niegrzybkowski in #226
- Playground: add a share button by @Ostrzyciel in #228
- LNK-212: Fix GraphQlRenamer not dodging leading digits by @niegrzybkowski in #227
- LNK-169: Add reserved Scala word escaping by @niegrzybkowski in #230
- Ossie importer by @Ostrzyciel in #229
Full Changelog: v0.15.1...v0.16.0
v0.15.1
What's Changed
- Update nativeimage, word to 25.3.4.1 by @scala-steward in #207
- Fix handling of escaped characters and line continuations in quoted YAML strings by @plokhotnyuk in #209
Full Changelog: v0.15.0...v0.15.1