This release implements the following versions of the AAS specification:
| Specification | Version |
|---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Part 1: Metamodel | [v3.0.1 (01001-3-1)](https://industrialdigitaltwin.org/wp-content/uploads/2024/06/IDTA-01001-3-0-1_SpecificationAssetAdministrationShell_Part1_Metamodel.pdf) |
| Schemata (JSONSchema, XSD) | [v3.0.8 (IDTA-01001-3-0-1_schemasV3.0.8)](https://github.com/admin-shell-io/aas-specs/releases/tag/IDTA-01001-3-0-1_schemasV3.0.8) |
| Part 2: API | [v3.0 (01002-3-0)](https://industrialdigitaltwin.org/en/wp-content/uploads/sites/2/2023/06/IDTA-01002-3-0_SpecificationAssetAdministrationShell_Part2_API_.pdf) |
| Part 3a: Data Specification IEC 61360 | [v3.0 (01003-a-3-0)](https://industrialdigitaltwin.org/wp-content/uploads/2023/04/IDTA-01003-a-3-0_SpecificationAssetAdministrationShell_Part3a_DataSpecification_IEC61360.pdf) |
| Part 5: Package File Format (AASX) | [v3.0 (01005-3-0)](https://industrialdigitaltwin.org/wp-content/uploads/2023/04/IDTA-01005-3-0_SpecificationAssetAdministrationShell_Part5_AASXPackageFileFormat.pdf) |
Version 1.1 of the BaSyx-Python SDK comes with a refactor of the GitHub repository. We decided for a monolithic repository structure to enable multiple packages inside this one repository. This way we can keep all packages interoperable with each other, while allowing users to only install what they need in their projects.
Most notably, we now have a working implementation of the "Specification of the Asset Administration Shell Part 2 API", which comes with an executable server Docker image!
For more information, see [server](https://github.com/eclipse-basyx/basyx-python-sdk/tree/1.1.0/server).
What's changed:
**Changelog**
- Notable
- [Refactor towards a Monolithic Repository Structure](https://github.com/eclipse-basyx/basyx-python-sdk/pull/317):
- [Extract the Compliance Tool into its own package](https://github.com/eclipse-basyx/basyx-python-sdk/tree/main/compliance_tool)
- [Add API Support](https://github.com/eclipse-basyx/basyx-python-sdk/pull/238)
- [Add Docker Server](https://github.com/eclipse-basyx/basyx-python-sdk/pull/322)
- [Drop support for Python <= 3.8](https://github.com/eclipse-basyx/basyx-python-sdk/pull/332) - We now support Python 3.9 to 3.12
- Make the interfaces of the JSON and XML adapters coherent. *Todo: Say here what this means precisely, reference examples/tutorials*
- Improvements
- Adapter
- [Make XML and JSON interfaces coherent](https://github.com/eclipse-basyx/basyx-python-sdk/pull/251)
- [adapter.xml: Verify declared namespaces before deserializing](https://github.com/eclipse-basyx/basyx-python-sdk/commit/ae4a768215e91509d4843191ef08bbea4fd70e54)
- [adapter.xml: Improve element formatting in error messages](https://github.com/eclipse-basyx/basyx-python-sdk/commit/6f3480aee9b477655ddb3278db31aa73c90bb370)
- [adapter.aasx: Improve error messages](https://github.com/eclipse-basyx/basyx-python-sdk/commit/a7512646e1a3d63eedeb66ea8847978d1d50a88a)
- [adapter.aasx: Allow deleting files from `SupplementaryFileContainer`](https://github.com/eclipse-basyx/basyx-python-sdk/commit/67432b553213f96e153528469a59ec84031ca1d0)
- [adapter.xml, test.adapter.xml: Add lxml typechecking](https://github.com/eclipse-basyx/basyx-python-sdk/commit/2ef4cfe671ae81ccd77583fed055c3b61cb9149a)
- Dependencies
- [Refactor away from `setup.py` and towards `pyproject.toml`](https://github.com/eclipse-basyx/basyx-python-sdk/pull/313)
- [Remove `psutil` dependency](https://github.com/eclipse-basyx/basyx-python-sdk/commit/69c60aa9fb08e179f721c69f4e060d1617991b65)
- [Remove duplicate `sphinx` dependency](https://github.com/eclipse-basyx/basyx-python-sdk/commit/31d4c5acc7948bdb4e551e0389f766d37c620ed3)
- [Update `sphinx` dependencies](https://github.com/eclipse-basyx/basyx-python-sdk/commit/8ed22a85ed4ffc9d8d5f747ea5a6c2f58586539b)
- [Add `lxml-stubs` dependency](https://github.com/eclipse-basyx/basyx-python-sdk/commit/c737670bab83ee104118e45e753cbb24534b8289)
- Continuous Integration
- [Add README codeblock checks](https://github.com/eclipse-basyx/basyx-python-sdk/commit/fb884bfd863bdc2e00b19086151894f3f74c5199)
- [Use `X_PYTHON_VERSION` for package job](https://github.com/eclipse-basyx/basyx-python-sdk/commit/58b7c984fcacd20cf9c2d34711323e407ea55672)
- [Move version declaration to basyx.aas module](https://github.com/eclipse-basyx/basyx-python-sdk/commit/6a0cac5c4d8cdded830d4c9caba5436a5243fc8d)
- [Add check for sphinx autodocs](https://github.com/eclipse-basyx/basyx-python-sdk/commit/600d3931dd528dfc33fa6dcc236137eeda39eb01)
- Documentation
- [Readme: Fix the getting started](https://github.com/eclipse-basyx/basyx-python-sdk/commit/5255a1fae3aac923d10ce20f091c256b81a3e6d6)
- [Readme: Add Release Schedule](https://github.com/eclipse-basyx/basyx-python-sdk/commit/0927305a93f694807d071766d9c569a32f4ea987)
- [examples: Fix typos in tutorials](https://github.com/eclipse-basyx/basyx-python-sdk/commit/5e08a466c3cfbadecd371b88740c7381600c5f04)
- [examples.tutorial_storage: Fix assertion](https://github.com/eclipse-basyx/basyx-python-sdk/commit/3031ccf238326cca8af4b368cbb59ed1462ac7e7)
- [adapter.aasx: improve `AASXWriter` docstring](https://github.com/eclipse-basyx/basyx-python-sdk/pull/237)
- [setup: Update development status to Production/Stable](setup: Update development status to Production/Stable)
- [Update Copyright Notices](https://github.com/eclipse-basyx/basyx-python-sdk/commit/971d99abcb6c1d58be3ba10cfa044d5b3fe9c80f)
- [Improve the documentation of the `PyECMA376-2` intersphinx](https://github.com/eclipse-basyx/basyx-python-sdk/commit/1c5660edac74c6382296ca4c498b4d695715755b)
- [Remove lxml intersphinx workaround](https://github.com/eclipse-basyx/basyx-python-sdk/commit/ce1568f33da6ddf5f0fca78b09320a4338df72cf)
- Bugfixes:
- [Fix negative XSD range edge cases](https://github.com/eclipse-basyx/basyx-python-sdk/commit/7369d2ec7bec0bb0c873b367ffd1a833d01b6bdc)
- [backend, model: Remove calls to trivial super().__init__() methods](https://github.com/eclipse-basyx/basyx-python-sdk/commit/ecf4c13290ebe58cf99c6599d1f3963d68651eee)
- [Incorrect parameter type hint or method realization of write_aas_xml_file()](https://github.com/eclipse-basyx/basyx-python-sdk/issues/42)
- [model.datatypes: Fix error when copying `Dates`](https://github.com/eclipse-basyx/basyx-python-sdk/pull/295)
- [Add setter func for `base.HasKind.kind`](https://github.com/eclipse-basyx/basyx-python-sdk/pull/323)
- [basyx.adapter: Allow empty strings in XML deserialization for some attrs](https://github.com/eclipse-basyx/basyx-python-sdk/pull/339)
For further information, see [Release Plan 1.1.0 (Python)](https://projects.eclipse.org/projects/dt.basyx/releases/1.1.0-python).