-
Notifications
You must be signed in to change notification settings - Fork 40
Refactor Backend concept for data persistence
#370
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
s-heppner
merged 26 commits into
eclipse-basyx:develop
from
rwth-iat:improve/data_persistence
Sep 15, 2025
Merged
Refactor Backend concept for data persistence
#370
s-heppner
merged 26 commits into
eclipse-basyx:develop
from
rwth-iat:improve/data_persistence
Sep 15, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Backend concept for data persistence
Contributor
Author
|
For reference: Some of the discussions of this PR are at rwth-iat/basyx-python-sdk#58 as well. |
|
Looks good to me |
This was referenced Jan 20, 2025
Closed
Contributor
Author
|
Is this now ready to be merged? @zrgt could you maybe review it? |
zrgt
approved these changes
Sep 8, 2025
Merged
zrgt
pushed a commit
to rwth-iat/basyx-python-sdk
that referenced
this pull request
Nov 18, 2025
Previously, we tried to use the `Backend` concept for both data persistence and data integration. This led to complicated cross-dependencies, architectures and badly maintainable code. Now, we decided to split these two concepts and use the existing `Backend` `ObjectStore`s for just the data persistence. Concretely, this commit does the following: 1. Remove the abstract `Backend` class (backends.py), as well as their concrete implementations (`CouchDBBackend`, `LocalFileBackend`), as they are no longer needed 2. Remove the `Referable.source` attribute, as it was only needed for the `Backend` class 3. Remove methods related to the `Referable.source` attribute, such as `Referable.update()` and `Referable.commit()` (base.py), as they were used together to perform the data integration. 4. Adapt other related codes such as tutorials and tests to reflect these changes 5. Adapt documentation to reflect these changes
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Warning
These changes are not backward compatible and therefore require a
2.0.0release!Previously, we tried to use the
Backendconcept for both data persistence and data integration.This led to complicated cross-dependencies, architectures and badly maintainable code.
Now, we decided to split these two concepts and use the existing
BackendObjectStores for just the data persistence.Concretely, this PR does the following:
Backendclass (backends.py), as well as their concrete implementations (CouchDBBackend,LocalFileBackend), as they are no longer neededReferable.sourceattribute, as it was only needed for theBackendclassReferable.sourceattribute, such asReferable.update()andReferable.commit()(base.py), as they were used together to perform the data integration.