Skip to content

Conversation

@moritzsommer
Copy link
Contributor

@moritzsommer moritzsommer commented Sep 24, 2025

Previously, the repository server used one and the same folder for loading data during start-up and storing it persistently. This resulted in a mixture of input AAS/Submodel files (AASX, JSON and XML) and persistently stored AAS/Submodel files from the LocalFileObjectStore (JSON).

This separates the server's input and storage into two separate directories, preventing their files from being mixed. Moreover, the option to overwrite existing AAS/Submodels in the storage was added and the option to persistently store data was adapted. In accordance with the new changes, the README and Dockerfile were adapted to present the changes to the end users.

Fixes #404

Previously, the repository server used one and the same folder for
loading data during start-up and storing it persistently. This resulted
in a mixture of input AAS/Submodel files (AASX, JSON and XML) and
persistently stored AAS/Submodel files from the `LocalFileObjectStore`
(JSON).

This separates the server's input and storage into two different
directories to prevent their files being mixed. Moreover, the option to
overwrite existing AAS/Submodels in the storage got added and the option
to persistently store data got adapted. In accordance with the new
changes, the `README` and `Dockerfile` were adapted to present the
changes to the end users.

Fixes eclipse-basyx#404
@s-heppner
Copy link
Contributor

s-heppner commented Sep 24, 2025

I suppose the CI fails due to #417?

Edit: Disregard this.

zrgt and others added 5 commits October 21, 2025 08:44
Previously, `ConceptDescription` were not parsed properly due to the
type missing in
`app.interfaces.base.HTTPApiDecoder.type_constructables_map`, 
specifying which types are constructable.

This adds this line

Fixes eclipse-basyx#395
The current version of `lxml>=4.2,<5` fails on modern Debian 13 
machines, as there is a dependency conflict with a base library.

This adapts both `lxml` and `pyecma376-2` versions to work with the new
Linux base libraries.

Fixes eclipse-basyx#417
…basyx#410)

This introduces several utility methods and refactorings for `Referable` objects and `Key` 
handling.

`idShortPath` Utility Functions
  - Add `Referable.get_identifiable_root()` to retrieve the root 
    `Identifiable` object of a referable.
  - Add `Referable.get_id_short_path()` to generate an `idShortPath`, 
    useful in client/server contexts.
  - Add `Referable.parse_id_short_path` to handle `idShortPath` strings
  - Add `Referable.build_id_short_path` to generate `idShortPath` string
    from list[str]
  - Add `Referable.validate_id_short_path` to check if the `idShortPath`
    is correct
  - Refactored `get_referable`, so that now it can accept 
    `id_short_path` as a string

`Key` Handling
  - Add `find_registered_referable_type_in_key_types_classes()` to 
    encapsulate usage of `KEY_TYPES_CLASSES`.
  - Refactor `Key.from_referable` to leverage the new method.

Tests
  - Add unit tests for the new `Referable` methods.
  - Fix minor typos in `test_base.py`.

Fixes eclipse-basyx#414
I always forget to run it locally...
Copy link
Contributor

@s-heppner s-heppner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you very much!

@s-heppner s-heppner merged commit d05eb2a into eclipse-basyx:develop Oct 27, 2025
15 checks passed
@s-heppner s-heppner deleted the fix/404 branch October 27, 2025 08:09
@s-heppner s-heppner mentioned this pull request Oct 27, 2025
zrgt added a commit to rwth-iat/basyx-python-sdk that referenced this pull request Nov 18, 2025
Previously, the repository server used one and the same folder for
loading data during start-up and storing it persistently. This resulted
in a mixture of input AAS/Submodel files (AASX, JSON and XML) and
persistently stored AAS/Submodel files from the `LocalFileObjectStore`
(JSON).

This separates the server's input and storage into two different
directories to prevent their files being mixed. Moreover, the option to
overwrite existing AAS/Submodels in the storage got added and the option
to persistently store data got adapted. In accordance with the new
changes, the `README` and `Dockerfile` were adapted to present the
changes to the end users.

Fixes eclipse-basyx#404

---------

Co-authored-by: s-heppner <[email protected]>
Co-authored-by: Igor Garmaev <[email protected]>
s-heppner added a commit that referenced this pull request Dec 5, 2025
Prepare Release v2.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.

> [!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 `sdk` to `server` (See: #388)
- Backward Incompatible: Refactor `backend` concept for data persistence (See: #370)
- Backward Incompatible: Refactor server `start-up` options (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 `Referable` and `Key` handling (See: #410)

**Bugfixes:**
- Fix type issues found with a new version of `mypy` (See: #399)
- Fix parsing of `ConceptDescription`s in the server (See: #420)
- Update `pyecma376-2` and `lxml` dependencies (See: #419)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants