Versioning and Compatibility¶
ProxyStore follows semantic versioning.
Given a version MAJOR.MINOR.PATCH:
- Major releases may make breaking changes to the public API or to the format of objects exchanged between processes (e.g., pickled proxies).
- Minor releases add features in a backwards compatible manner.
- Patch releases fix bugs in a backwards compatible manner.
Public API¶
The public API is everything documented in the API Reference and the CLI Reference, except for:
- Names prefixed with an underscore (e.g.,
proxystore._compatorStore._set()). - Modules documented as internal implementation details. These are used by
ProxyStore itself and may change between releases without notice:
proxystore.endpoint: use endpoints via theproxystore-endpointCLI and theEndpointConnector.proxystore.globus: use theproxystore-globus-authCLI and theGlobusConnector.proxystore.utils.proxystore.store.cache.- The server functions and classes of
proxystore.connectors.zmq(theZeroMQConnectoris public).
Deprecated features emit a DeprecationWarning for
at least one minor release before they are removed in the next major
release.
Compatibility Between Versions¶
Processes using different versions of ProxyStore with the same major
version can exchange proxies, store configurations, and stream events.
For example, a proxy created with ProxyStore 2.3 can be resolved by a
process using ProxyStore 2.0, and vice versa.
Fields added by a newer version are ignored by an older version with a
VersionMismatchWarning.
Proxies are not compatible between major versions.
The configuration files and protocols of ProxyStore Endpoints are versioned separately (see the Endpoints Guide).
Python Versions¶
Each Python version is supported until its upstream end-of-life. Support for a Python version may be removed in a minor release after the version has reached its end-of-life. Older releases remain installable on those Python versions.