dataClay Claystone (4.x) ======================== We will be naming our major releases, starting now. So welcome to the new version `Claystone`, which is dataClay 4.x. 4.0 (June 2024) --------------- It has been a year of dataClay 3.x. This 4.0 version brings almost no breaking changes, but there are notorious architecture changes and new features. Highlights ~~~~~~~~~~ - Internal refactor to leverage the ``asyncio`` library (along the asynchronous implementation of the gRPC library, i.e. `gRPC AsyncIO API `_). These changes should be retrocompatible, but you can take advantage of the new asynchronous mechanisms by using the homonomous methods in the client API (e.g. :meth:`~dataclay.DataClayObject.a_make_persistent` instead of :meth:`~dataclay.DataClayObject.make_persistent`). - New experimental feature: :class:`~dataclay.alien.AlienDataClayObject`. See :doc:`/alien-objects` for a detailed explanation. - New microservice: the proxy. This can be used to circumvent NAT networks (e.g. Docker deployments) and also provides a more secure way to access the dataClay services. See :doc:`/deployment/proxy` for more information. Other changes ~~~~~~~~~~~~~ - Basic support for JWT tokens in the proxy. - Starting the client automatically starts a new thread and an event loop within. This is used internally to handle the asynchronous calls and gRPC clients. - Updates in the orchestration scripts. - Added explicit ``get_attribute``, ``set_attribute`` and ``del_attribute`` RPC calls on the backend. This is transparent for the applications (read, set and delete of attributes continue to work), but allows the introduction of fine-grain mechanisms on the proxy and also makes the debugging process clearer. - Offering a new :doc:`Zenoh bridging mechanism ` (similar to the :doc:`MQTT ` one). - Removed the session and password authentication. This feature will be handled by the proxy going forward. - Added healthcheck mechanisms (at the gRPC level) to monitor the status of the dataClay services. 4.1 (November 2024) ------------------- This minor release brings some bug fixes to the features introduced in 4.0, and also some new features. Highlights ~~~~~~~~~~ - Official support for Python 3.13. - Improved granularity and semantic of raised exceptions. The list and description of all the current exceptions can be found in the :doc:`/reference/dataclay.exceptions` reference page. - Fixed behavior of the proxy. Now the code works properly in an async configuration. - More detailed examples and utility functions to support JWT tokens in the proxy side. - Better defaults for the logging system. - Improved and expanded documentation for Telemetry. - Build system is now using `nox `_. - Support for PyCOMPSs `constraints `_. Should work out of the box with dataClay 4.1 and the upcoming COMPSs version. 4.2 (May 2025) -------------- An exciting new feature has been tested and is now available in this release: :doc:`/stub-objects`! Highlights ~~~~~~~~~~ - New :class:`~dataclay.stub.StubDataClayObject` class. This is a new way to use dataClay classes without triggering a waterfall requirement into the client. This is useful for creating lightweight clients that can interact with demanding libraries. This scenario is common in edge computing and IoT applications. It does not affect the requirements nor the performance on dataClay backends. Other changes ~~~~~~~~~~~~~ - Some changes on the requirements. The current requirements are much simpler and less strict, which should make it easier to install dataClay in already existing environments. - Python 3.13 is no longer officially supported. The codebase is compatible with Python 3.13, but certain combination of libraries are not compatible with it. In order to guarantee that existing use cases and libraries work smoothly, we have decided to avoid Python 3.13. Support for Python 3.13 is expected in the next major release. - Miscellaneous improvements on exceptions and serialization. - Removed legacy code and annotations from certain examples and demos. - Better build flow with `Hatch `_. - Bug fixes. 4.3 (August 2025) --------------- This minor release introduces several enhancements, new features, and bug fixes aimed at improving integration, usability, and system robustness. Highlights ~~~~~~~~~~ - A PersistentBlock component has been added to facilitate tighter integration between Dislib and dataClay. This enhancement enables the seamless persistence of distributed datasets, simplifying data management across distributed workflows. - LegacyDeps have been added to the serialization process. Also the dataclay object state has been divided into two: - metadata_dict: contains user-defined and system metadata. - dc_properties: stores internal properties specific to dataClay runtime. This separation improves modularity and clarity in object management and debugging. Other changes ~~~~~~~~~~~~~ - Support for MQTT authentication has been expanded. It is now possible to configure the broker connection using environment variables for both username and password, allowing for more flexible and secure deployments. - Bug fixes.