# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.16.2] - 2026-03-23

### Changed

- Update QUDT units representation (#180) by @jdacoello in [#180](https://github.com/COVESA/s2dm/pull/180)


### Fixed

- Reverse metadata handling and inline expansion for intermediate types by @jdacoello in [#181](https://github.com/COVESA/s2dm/pull/181)


[0.16.2] - 2026-03-23: https://github.com/COVESA/s2dm/compare/v0.16.1..HEAD

<!-- generated by git-cliff -->

## [0.16.1] - 2026-03-18

### Fixed

- Handle instanceTag naming config by @jdacoello in [#178](https://github.com/COVESA/s2dm/pull/178)


[0.16.1] - 2026-03-18: https://github.com/COVESA/s2dm/compare/v0.16.0..HEAD

<!-- generated by git-cliff -->

## [0.16.0] - 2026-03-18

### Added

- Implement FastAPI server by @ahmdmhd

- Implement gui playground by @ahmdmhd

- Implement s2dm playground commands by @ahmdmhd

- Add help button to the explorer pane by @ahmdmhd


### Changed

- Improve playground codebase and logic by @ahmdmhd


### Documentation

- Add rest api documentation by @ahmdmhd in [#168](https://github.com/COVESA/s2dm/pull/168)


### Fixed

- Fix playground start command waiting for servers to start by @ahmdmhd

- Linting and type checking issues by @ahmdmhd

- Fix playground issues by @ahmdmhd

- Fix api core failing tests by @ahmdmhd

- Fix api schema validation error formatting by @ahmdmhd

- Add -n alias to naming config flag by @ahmdmhd

- Always display schema visualizer's docs explorer by @ahmdmhd


### Testing

- Add Fast API testing by @ahmdmhd


[0.16.0] - 2026-03-18: https://github.com/COVESA/s2dm/compare/v0.15.0..HEAD

<!-- generated by git-cliff -->

## [0.15.0] - 2026-03-16

### Added

- Add test-pypi publishing and dry-run support to release workflow (#166) by @cpodalak in [#166](https://github.com/COVESA/s2dm/pull/166)


[0.15.0] - 2026-03-16: https://github.com/COVESA/s2dm/compare/v0.14.2..HEAD

<!-- generated by git-cliff -->

## [0.14.2] - 2026-02-26

### Fixed

- Fix the CI bugs for publish action by @mfkaptan-motius in [#171](https://github.com/COVESA/s2dm/pull/171)


[0.14.2] - 2026-02-26: https://github.com/COVESA/s2dm/compare/v0.14.1..HEAD

<!-- generated by git-cliff -->

## [0.14.1] - 2026-02-18

### Fixed

- Improve serialization of directive arguments using print_ast


[0.14.1] - 2026-02-18: https://github.com/COVESA/s2dm/compare/v0.14.0..HEAD

<!-- generated by git-cliff -->

## [0.14.0] - 2026-02-17

### Added

- Replace hash-based IDs with semantic versioning for variant ID generation (#163) by @mfkaptan-motius in [#163](https://github.com/COVESA/s2dm/pull/163)


### Changed

- Some bugs fixed for the search function (#165) by @Giaccomole in [#165](https://github.com/COVESA/s2dm/pull/165)


[0.14.0] - 2026-02-17: https://github.com/COVESA/s2dm/compare/v0.13.0..HEAD

<!-- generated by git-cliff -->

## [0.13.0] - 2026-02-04

### Added

- Implement avro exporter with tests by @ahmdmhd

- Assert schema correctness by @ahmdmhd

- Implement avro idl exporter by @ahmdmhd


### Changed

- Rename idl to protocol by @ahmdmhd

- Rename avro to schema by @ahmdmhd


### Documentation

- Document avro exporter by @ahmdmhd


### Fixed

- Export enums in protocol exporter strict mode by @ahmdmhd

- Add spec_directory as schema path to avro e2e tests by @ahmdmhd in [#160](https://github.com/COVESA/s2dm/pull/160)


[0.13.0] - 2026-02-04: https://github.com/COVESA/s2dm/compare/v0.12.0..HEAD

<!-- generated by git-cliff -->

## [0.12.0] - 2026-02-04

### Added

- Implement naming convention checker by @ahmdmhd


### Documentation

- Document naming convention checker by @ahmdmhd

- Improve naming configuration documentation by @ahmdmhd

- Update naming configuration context-specific rules documentation by @ahmdmhd in [#162](https://github.com/COVESA/s2dm/pull/162)


### Fixed

- Linting and type checking issues by @ahmdmhd


[0.12.0] - 2026-02-04: https://github.com/COVESA/s2dm/compare/v0.11.0..HEAD

<!-- generated by git-cliff -->

## [0.11.0] - 2026-02-04

### Added

- Remove implicit spec files inclusion by @ahmdmhd

- Make --schema accept URLs by @ahmdmhd

- Implement a compose action by @ahmdmhd in [#161](https://github.com/COVESA/s2dm/pull/161)


### Changed

- Unify exporters api (#151) by @ahmdmhd in [#151](https://github.com/COVESA/s2dm/pull/151)

- Sidebar (#150) by @Giaccomole in [#150](https://github.com/COVESA/s2dm/pull/150)


### Fixed

- Add reference directive to schema definitions only if it is defined by @ahmdmhd

- Add validation step and use working directory in steps by @ahmdmhd


[0.11.0] - 2026-02-04: https://github.com/COVESA/s2dm/compare/v0.10.0..HEAD

<!-- generated by git-cliff -->

## [0.10.0] - 2025-12-05

### Added

- Workflow units (#147) by @ahmdmhd in [#147](https://github.com/COVESA/s2dm/pull/147)


[0.10.0] - 2025-12-05: https://github.com/COVESA/s2dm/compare/v0.9.3..HEAD

<!-- generated by git-cliff -->

## [0.9.3] - 2025-12-05

### Fixed

- QUDT handling (#156) by @ahmdmhd in [#156](https://github.com/COVESA/s2dm/pull/156)


[0.9.3] - 2025-12-05: https://github.com/COVESA/s2dm/compare/v0.9.2..HEAD

<!-- generated by git-cliff -->

## [0.9.2] - 2025-12-04

### Fixed

- jsonschema exporter fallback type (#159) by @sschleemilch in [#159](https://github.com/COVESA/s2dm/pull/159)
- shacl exporter fallback on unknown GraphQL scalar

## [0.9.1] - 2025-12-04

### Fixed

- Range directive (#158) by @ahmdmhd in [#158](https://github.com/COVESA/s2dm/pull/158)

### Miscellaneous

- Bump actions/checkout from 5 to 6 (#155) by @dependabot[bot] in [#155](https://github.com/COVESA/s2dm/pull/155)

[0.9.1] - 2025-12-04: https://github.com/COVESA/s2dm/compare/v0.9.0..HEAD

<!-- generated by git-cliff -->

## [0.9.0] - 2025-12-03

### Added

- Export protobuf (#144) by @ahmdmhd in [#144](https://github.com/COVESA/s2dm/pull/144)

[0.9.0] - 2025-12-03: https://github.com/COVESA/s2dm/compare/v0.8.1..HEAD

<!-- generated by git-cliff -->

## [0.8.1] - 2025-10-31

### Fixed

- Correct URL path generation for resources, in both local and deployed website (#141) by @Giaccomole in [#141](https://github.com/COVESA/s2dm/pull/141)

[0.8.1] - 2025-10-31: https://github.com/COVESA/s2dm/compare/v0.8.0..HEAD

<!-- generated by git-cliff -->

## [0.8.0] - 2025-10-28

### Added

- Implement support for selection query filtering by @ahmdmhd

### Documentation

- Fix unit cli docs by @mfkaptan-motius in [#145](https://github.com/COVESA/s2dm/pull/145)

- Document selection query filtering by @ahmdmhd in [#146](https://github.com/COVESA/s2dm/pull/146)

### Testing

- Implement tests for selection query filtering by @ahmdmhd

[0.8.0] - 2025-10-28: https://github.com/COVESA/s2dm/compare/v0.7.0..HEAD

<!-- generated by git-cliff -->

## [0.7.0] - 2025-10-27

### Added

- Implement automated migration process scaffold by @ahmdmhd

- Implement naming conversion in the export command with tests by @ahmdmhd

- Multiple schemas (#129) by @ahmdmhd

- Add QUDT units CLI commands and sync functionality by @mfkaptan-motius

### CI/CD

- Add gitlint hook for commit message validation by @mfkaptan-motius

### Changed

- Refactor utils into smaller modules by @mfkaptan-motius

- Remove static units.yaml dependency by @mfkaptan-motius

- Make the default units file as s2dm base in home by @mfkaptan-motius

- Switch to requests instead of urllib.request by @mfkaptan-motius

- Make sure to get the latest version from api by @mfkaptan-motius

- Unify logging with standard Python methods by @mfkaptan-motius

- Improvements based on review by @mfkaptan-motius

### Documentation

- Add documentation for units CLI commands by @mfkaptan-motius

- Update commands in readme files by @mfkaptan-motius in [#132](https://github.com/COVESA/s2dm/pull/132)

### Fixed

- Preserve custom directives when using the compose command by @mfkaptan-motius

- Search function and updated the links (#125) by @Giaccomole

- Search function and updated the links (#125) by @Giaccomole

- Fix broken exports due to multiple schema by @mfkaptan-motius

- Fix mypy errors by @mfkaptan-motius

- Patch default units directory for tests by @mfkaptan-motius

### Miscellaneous

- Bump astral-sh/setup-uv from 4 to 7 (#135) by @dependabot[bot] in [#135](https://github.com/COVESA/s2dm/pull/135)

- Bump actions/setup-node from 5 to 6 (#143) by @dependabot[bot] in [#143](https://github.com/COVESA/s2dm/pull/143)

### Testing

- Add test suite for QUDT units integration by @mfkaptan-motius

[0.7.0] - 2025-10-27: https://github.com/COVESA/s2dm/compare/v0.6.3..HEAD

<!-- generated by git-cliff -->

## [0.6.3] - 2025-09-29

### CI/CD

- Include develop branch in CI workflow triggers by @jdacoello in [#128](https://github.com/COVESA/s2dm/pull/128)

### Fixed

- Broken links on doc site landing page (#130) by @slawr in [#130](https://github.com/COVESA/s2dm/pull/130)

### Miscellaneous

- Bump actions/setup-node from 4 to 5 (#113) by @dependabot[bot] in [#113](https://github.com/COVESA/s2dm/pull/113)

- Bump actions/setup-python from 5 to 6 (#112) by @dependabot[bot] in [#112](https://github.com/COVESA/s2dm/pull/112)

[0.6.3] - 2025-09-29: https://github.com/COVESA/s2dm/compare/v0.6.2..HEAD

<!-- generated by git-cliff -->

## [0.6.2] - 2025-08-30

### Changed

- Merge pull request #102 from COVESA/dependabot/github_actions/actions/checkout-5 by @sschleemilch in [#102](https://github.com/COVESA/s2dm/pull/102)

- Merge pull request #109 from COVESA/dependabot/github_actions/actions/upload-pages-artifact-4 by @sschleemilch in [#109](https://github.com/COVESA/s2dm/pull/109)

### Fixed

- Update common_types.graphql by @jdacoello

### Miscellaneous

- Bump actions/checkout from 4 to 5 by @dependabot[bot]

- Bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot]

[0.6.2] - 2025-08-30: https://github.com/COVESA/s2dm/compare/v0.6.1..HEAD

<!-- generated by git-cliff -->

## [0.6.1] - 2025-08-05

### Changed

- Merge pull request #101 from COVESA/fix/jsonschema-expansion by @jdacoello in [#101](https://github.com/COVESA/s2dm/pull/101)

### Fixed

- Use $ref instead of copying properties in expanded instances by @jdacoello

- Prevent uniqueItems on expanded instance objects by @jdacoello

### Testing

- Add schema for nested instance expansion testing by @jdacoello

- Update expanded instances tests to expect $ref behavior by @jdacoello

[0.6.1] - 2025-08-05: https://github.com/COVESA/s2dm/compare/v0.6.0..HEAD

<!-- generated by git-cliff -->

## [0.6.0] - 2025-08-04

### Added

- Implement compose command that aggregates graphql schemas into a single schema file by @ahmdmhd

- Add --root-type to compose command to include only referenced types in graphql schema by @ahmdmhd

### Changed

- Pass console directly to compose by @ahmdmhd

- Merge pull request #100 from ahmdmhd/feat/graphql-compose by @sschleemilch in [#100](https://github.com/COVESA/s2dm/pull/100)

### Fixed

- Access console as ctx.obj in compose function by @ahmdmhd

[0.6.0] - 2025-08-04: https://github.com/COVESA/s2dm/compare/v0.5.1..HEAD

<!-- generated by git-cliff -->

## [0.5.1] - 2025-08-04

### Changed

- Merge pull request #99 from COVESA/fix/hugo-version-alignment by @jdacoello in [#99](https://github.com/COVESA/s2dm/pull/99)

### Fixed

- Align Hugo version between package.json and GitHub workflow by @jdacoello

[0.5.1] - 2025-08-04: https://github.com/COVESA/s2dm/compare/v0.5.0..HEAD

<!-- generated by git-cliff -->

## [0.5.0] - 2025-08-01

### Added

- Add --expanded-instances CLI option for JSON Schema export by @jdacoello

- Implement expanded instances for arrays with instance tags by @jdacoello

### CI/CD

- Fix uv sync by @nwesem

- Update cliff.toml to write contributors by @nwesem

### Changed

- Merge pull request #97 from COVESA/fix/jsonschema-exporter by @jdacoello in [#97](https://github.com/COVESA/s2dm/pull/97)

### Testing

- Add comprehensive test suite for expanded instances feature by @jdacoello

[0.5.0] - 2025-08-01: https://github.com/COVESA/s2dm/compare/v0.4.0..HEAD

<!-- generated by git-cliff -->

## [0.4.0] - 2025-07-31

### Added

- Add Trailer example

### Changed

- Merge pull request #96 from COVESA/feat/trailer-example in [#96](https://github.com/COVESA/s2dm/pull/96)

[0.4.0] - 2025-07-31: https://github.com/COVESA/s2dm/compare/v0.3.0..HEAD

<!-- generated by git-cliff -->

## [0.3.0] - 2025-07-31

### Added

- Add SKOS generation
- Add SKOS search with case sensitivity support
- Address PR review comments

### Changed

- Merge pull request #92 from COVESA/dependabot/github_actions/actions/configure-pages-5 in [#92](https://github.com/COVESA/s2dm/pull/92)
- Merge pull request #93 from Giaccomole/README-Doks in [#93](https://github.com/COVESA/s2dm/pull/93)
- Add S2DM ontology types and proper SKOS collection structure
- Improve and optimize SKOS tests
- Merge pull request #48 from COVESA/feat/skos-skeleton in [#48](https://github.com/COVESA/s2dm/pull/48)
- Merge pull request #95 from COVESA/fix/update-uv in [#95](https://github.com/COVESA/s2dm/pull/95)

### Documentation

- Update README.md to reflect S2DM website
- Add SKOS search documentation and examples

### Fixed

- Update uv.lock

### Miscellaneous

- Ignore dependabot commits in gitlint
- Don't run release pipeline in forks
- Bump actions/configure-pages from 4 to 5
- Ran pre-commit

### Testing

- Add SKOS generation tests
- Add SKOS search tests

[0.3.0] - 2025-07-31: https://github.com/COVESA/s2dm/compare/v0.2.0..HEAD

<!-- generated by git-cliff -->

## [0.2.0] - 2025-07-29

### Added

- Add first docs
- Add shacl command to the CLI
- Expand instance tags from the spec.
- SHACL exporter functioning
- Add ariadne for loading and validating multiple graphql files with a given path. Update documentation for model validation and exporters
- First draft of VSPEC generation.
- First draft vspec converted with Seat example
- Improve to_vspec exporter and add Seat example of VSS
- Enhance to_vspec processing for nested types
- Add unit mapping for various measurement types in to_vspec
- Add new GraphQL types and update VSS Seat example
- Add test case and example of COVESA AMM presentation
- Update .gitignore file.
- Add concept URI generator script
- Add spec history generation or update from existing history
- Add simple ci/cd workflows with github actions
- Add example/ directory with README and example files.
- Refactoring
- Parse @metadata(comment: String) as rdfs:comment.
- Added InCabinArea3x3
- Add basic CLI framework with click integration
- Add export commands for id, concept-uri, and spec-history
- Add constraint checker and graphql inspector tools
- Added modeling map with overlay
- Enhance version-bump command with semantic version detection
- Implement json schema exporter in python (#89)
- Doks Theme (#90)

### CI/CD

- Update CI configuration and coverage requirements
- Trigger ci on pushes to main
- Add release pipeline with automatic semantic versioning
- Apply zero-based versioning scheme
- Add DEPLOY_KEY to allow pushing to main from github actions
- Fix version replacement in release creation and manually update CHANGELOG

### Changed

- Made a first "iris" sub command
- Update GraphQL schema and dependencies
- Remove unnecessary lines in CONTRIBUTING.md and README.md
- Lines and formats, add figures.
- Refactor CLI options in s2dm/cli.py and add new subcommand
- Common types and GraphQL files of example 0
- SHACL exporter working without expansion. Supported field cases are: ['NON_NULL', 'SET_NON_NULL', 'DEFAULT', 'SET']
- Improve handling of list types in SHACL property shape creation
- Remove example 0 files that are covered in another repo. Improve the directory structure.
- Remove iris module and update CLI import. Enhance modeling guide with output type examples.
- Move examples folder and do some clean up.
- Enhance CLI commands for exporting schemas. Minor clean ups.
- Clean up
- Improve logging and code readability in to_vspec and utils
- Create history files based on schema
- Merge pull request that adds the first implementation of the identification functions
- Organize examples/
- Merge pull request #30 from COVESA/feat/refactoring-2
- Add mypy for tests dir
- Temporarily update min percentage of test coverage to 70%
- Merge pull request #2 from COVESA/feat/refactoring
- Update README.md
- Update main README (#35)
- Update SHACL exporter. (#44)
- Merge pull request #49 from COVESA/fix/shacl-exporter
- Merge pull request #53 from COVESA/feat/cabin-area-3-3
- Update concept models and services for CLI integration
- Merge pull request #56 from nwesem/ci/trig-main
- Docs/page update (#64)
- Merge pull request #66 from COVESA/excalidraw-map
- Merge pull request #67 from nwesem/feat/enhance-version-bump
- Click - pass obj instead of context with console
- Merge pull request #72 from COVESA/feat/click-pass-obj-instead-of-context
- Refactor page outline
- Merge pull request #73 from COVESA/refactor/web-page
- Merge pull request #42 from COVESA/develop
- Merge pull request #87 from COVESA/fix/shacl-comment
- Merge pull request #88 from COVESA/ci/fix-release-workflow
- Merge pull request #91 from ahmdmhd/fix/jsonschema-instance-expansion

### Documentation

- Update CONTRIBUTING.md and README.md for clarity and consistency
- Add Mozilla Public License Version 2.0 LICENSE
- Use GitHub pages with content from docs-gen folder
- Update README for spec history registry usage
- Add version bump CLI examples documentation

### Fixed

- Missing vssTypes
- Remove unused IRI generation command from CLI
- Mypy errors for utils.py, to_vspec.py, and to_shacl.py
- Resolve mypy type checking errors and improve type safety
- Fix imports related to idgen
- Mypy changes on tests
- Update docgen.yml
- Fixed some shacl exporter findings
- Removed duplicated log handlers and aligned log statements
- Expand instances in SHACL exporter.
- Wrong VssType in example, update Seat.graphql
- SHACL comment in properties. Test for GraphQL field cases
- Output correct object shape when processing instance tags
- Combine version bump and changelog update in single commit

### Miscellaneous

- Update uv.lock
- Add **init**.py to tests
- Update uv.lock
- Move all bumpversion config to .bumpversion.toml

### Testing

- Add comprehensive e2e and unit tests for CLI functionality
- Add GraphQL schema files for version bump testing
- Expand version-bump test coverage

[0.2.0] - 2025-07-29: https://github.com/COVESA/s2dm/compare/v0.1.0..HEAD

<!-- generated by git-cliff -->

## [0.1.0] - 2025-02-20

### Added

- Everything (init)
