Releases: eclipse-basyx/basyx-python-sdk
2.0.0
Release Notes
Version 2.0.0 of the BaSyx-Python SDK comes with a major refactoring of the server and a renewed concept for data persistence.
Previously, the server code was split between the sdk and server packages (due to historic development of the code).
Now all the code relevant just for the server is located in server, where it belongs. Since this means, some code that was previously in sdk is not there anymore, this is a breaking change and warranted the new major release.
Note
This release does not have any changes in implemented AAS specification versions. It is the preparotory release in order to get ready for the new versions of the specifications, as well as new features for the SDK, such as Registry and Discovery server.
This release implements the following versions of the AAS specification:
| Specification | Version |
|---|---|
| Part 1: Metamodel | v3.0.1 (01001-3-0-1) |
| Schemata (JSONSchema, XSD) | v3.0.8 (IDTA-01001-3-0-1_schemasV3.0.8) |
| Part 2: API | v3.0 (01002-3-0) |
| Part 3a: Data Specification IEC 61360 | v3.0 (01003-a-3-0) |
| Part 5: Package File Format (AASX) | v3.0 (01005-3-0) |
Warning
Due to these major refactorings, there were some backward incompatible changes. Please check the documentation, if you encounter any issues.
Changelog
Notable:
- Backward Incompatible: Refactor server functionality from
sdktoserver(See: #388) - Backward Incompatible: Refactor
backendconcept for data persistence (See: #370) - Backward Incompatible: Refactor server
start-upoptions (See: #418) - Remove support for Python 3.9 (as it is EoL) (See #433)
Improvements:
- Clarify documentation of running the server with Docker (See: #398)
- Document running the server without Docker (See: #403)
- Improve XML serialization (See: #406)
- Improve server reading of JSON and XML files (See: #408)
- Add more utility methods for
ReferableandKeyhandling (See: #410)
Bugfixes:
- Fix type issues found with a new version of
mypy(See: #399) - Fix parsing of
ConceptDescriptions in the server (See: #420) - Update
pyecma376-2andlxmldependencies (See: #419)
For more details, check out https://projects.eclipse.org/projects/dt.basyx/releases/2.0.0-python
1.2.1
Release Notes
Version 1.2.1 of the BaSyx-Python SDK is a small bugfix patch, specifically for Windows installs.
This release implements the following versions of the AAS specification:
| Specification | Version |
|---|---|
| Part 1: Metamodel | v3.0.1 (01001-3-0-1) |
| Schemata (JSONSchema, XSD) | v3.0.8 (IDTA-01001-3-0-1_schemasV3.0.8) |
| Part 2: API | v3.0 (01002-3-0) |
| Part 3a: Data Specification IEC 61360 | v3.0 (01003-a-3-0) |
| Part 5: Package File Format (AASX) | v3.0 (01005-3-0) |
An outdated version of our dependency lxml caused our pip installs to fail on Windows.
This small patch updates the lxml version to a one that works with Windows.
Changelog
- Update
lxmldependency inpyproject.toml#392
1.2.0
Release Notes
Version 1.2.0 of the BaSyx-Python SDK is all about bugfixes and comes with lots of improvements to our CI checks.
This release implements the following versions of the AAS specification:
| Specification | Version |
|---|---|
| Part 1: Metamodel | v3.0.1 (01001-3-0-1) |
| Schemata (JSONSchema, XSD) | v3.0.8 (IDTA-01001-3-0-1_schemasV3.0.8) |
| Part 2: API | v3.0 (01002-3-0) |
| Part 3a: Data Specification IEC 61360 | v3.0 (01003-a-3-0) |
| Part 5: Package File Format (AASX) | v3.0 (01005-3-0) |
Most notably, this release fixes the installation of the compliance tool, that was broken due to paths that were not correctly updated when moving it into its new location of the monolithic repository (#356).
Furthermore, we improve the way ModelReferences are deserialized into Python objects by inferring the type of the object they refer to from the last Key of the ModelReference.
The main new feature is a so called SetObjectStore (#340) that automatically gets updated, if an object inside of it has a change to its Identifier. However, this safety comes with the disadvantage of being slower in accessing than the existing DictObjectStore. You can read all about the advantages and disadvantages and when to use which of these two stores in their docstrings.
Changelog
Notable:
- Fix compliance tool imports and unittests and refactor to use a
pyproject.toml(See: #356, and dae335). - Improve the way
ModelReferences are deserialized by automatically inferring the type of the object they refer to, rather than always using the genericmodel.Reference(See: #337, also: 933b9f). - Add a new
SetObjectStore(See: #340)
Improvements:
- Improve the
README.mddocumentation by fixing typos and broken links (See: 831bb8, 899f40, and 9cb5b8). - Improve the "Code Quality" section in
CONTRIBUTING.md(See: #376). - Add a CI check that checks that the copyright year in the license header of each file is correct (See: 2a94f3)
Bugfixes:
- Add a missing import in
tutorial_serialization_deserialization.py(See: #363) - Update the version of
pyecma-dependency, as there was a bugfix release that affected us (See: 789cb4). - Move dependencies only needed when testing to
[dev]section in the SDK'spyproject.toml(See: #369). - Fix the installation of dependencies, when generating the developer documentation (See: d32fd6)
- Fix the redirects and wrong return status codes in
http.pyaccording to the specification; and change the way the SDK dependency is installed in theserver(See: #362).
For more information, see https://projects.eclipse.org/projects/dt.basyx/releases/1.2.0-python
1.1.0
This release implements the following versions of the AAS specification:
| Specification | Version |
|---|---|
| Part 1: Metamodel | v3.0.1 (01001-3-1) |
| Schemata (JSONSchema, XSD) | v3.0.8 (IDTA-01001-3-0-1_schemasV3.0.8) |
| Part 2: API | v3.0 (01002-3-0) |
| Part 3a: Data Specification IEC 61360 | v3.0 (01003-a-3-0) |
| Part 5: Package File Format (AASX) | v3.0 (01005-3-0) |
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.
What's changed:
Changelog
- Notable
- Refactor towards a Monolithic Repository Structure:
- Drop support for Python <= 3.8 - 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
- adapter.xml: Verify declared namespaces before deserializing
- adapter.xml: Improve element formatting in error messages
- adapter.aasx: Improve error messages
- adapter.aasx: Allow deleting files from
SupplementaryFileContainer - adapter.xml, test.adapter.xml: Add lxml typechecking
- Dependencies
- Continuous Integration
- Documentation
- Readme: Fix the getting started
- Readme: Add Release Schedule
- examples: Fix typos in tutorials
- examples.tutorial_storage: Fix assertion
- adapter.aasx: improve
AASXWriterdocstring - [setup: Update development status to Production/Stable](setup: Update development status to Production/Stable)
- Update Copyright Notices
- Improve the documentation of the
PyECMA376-2intersphinx - Remove lxml intersphinx workaround
- Adapter
- Bugfixes:
- Fix negative XSD range edge cases
- backend, model: Remove calls to trivial super().init() methods
- Incorrect parameter type hint or method realization of write_aas_xml_file()
- model.datatypes: Fix error when copying
Dates - Add setter func for
base.HasKind.kind - basyx.adapter: Allow empty strings in XML deserialization for some attrs
For further information, see Release Plan 1.1.0 (Python).
1.0.0
This release implements version 3.0 of the AAS specification:
| Specification | Version |
|---|---|
| Part 1: Metamodel | v3.0 (01001-3-0) |
| Part 2: API | not implemented yet |
| Part 3a: Data Specification IEC 61360 | v3.0 (01003-a-3-0) |
| Part 5: Package File Format (AASX) | v3.0 (01005-3-0) |
For the details, see Release Plan 1.0.0 (Python)
0.2.2
For details, see Release Plan 0.2.2 (Python)