Zeo

Latest version: v6.0.0

Safety actively analyzes 681857 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

6.0.1

------------------

- Nothing changed yet.

6.0.0

------------------

- Drop support for Python 2.7, 3.5, 3.6.

- Add support for Python 3.12.

- Switch to using `async/await` directly instead of `coroutine/yield`

- Drop experimental support for credentials object: the corresponding
``ClientStorage.__init__`` parameter ``credentials`` is retained but ignored.
From now on ZEO supports authentication only via SSL certificates.

Note that ZEO 5 never supported authenticating via ``username`` and
``password`` - support for such basic auth was dropped in 2016 before ZEO 5.0
was released.

- Fix problems with Python 3.12.0b4
(`issue 231 <https://github.com/zopefoundation/ZEO/issues/231>_`).

- Ensure test compatibility with both ``ZODB<6`` and ``ZODB>=6``
by looking for ZODB inherited tests with prefixes
``check`` (used by ``ZODB<6``)
and ``test`` (used by ``ZODB>=6``)
(`issue 233 <https://github.com/zopefoundation/ZEO/issues/233>_`).

5.4.0

------------------

- Reimplement and streamline the ``asyncio`` part of the ``ClientStorage``
implementation:

- switch from futures with explicit callbacks to `async/await`-like style
- use standard ``asyncio`` features to implement timeouts
- redesign the API of the class implementing the ZEO client protocol
- significantly improve source documentation and tests
- fix several concurrency bugs
- add optional ``cython`` based optimization;
it speeds up reads but slows down writes.
To use it, install ``cython`` (and its dependencies) and
run ``cythonize -i *.pyx`` in ``src/ZEO/asyncio``.

- Remove support for interoperability with ZEO4 server. It turned out that ZEO5
client, contrary to interoperability with ZEO5 server, implements support for
interoperability with ZEO4 server incorrectly with concurrency bugs that lead
to data corruption. The fix is not trivial and we believe that in 2022 noone
actually uses ZEO5.client-ZEO4.server configuration. That's why support for
ZEO4 server was dropped rather than fixed.

See `issue 209 <https://github.com/zopefoundation/ZEO/issues/209>`_ for details.

- If the ``zeopack`` script cannot connect to a server it sets exit status 1
See `214 <https://github.com/zopefoundation/ZEO/issues/214>`_.

- Remove ``asyncio/mtacceptor`` module. It turned out that multi-threaded ZEO5
server has concurrency issues that lead to data corruption. Multi-threaded
server mode was already deprecated and scheduled for removal, so the fix is
to finally remove it. From now on ZEO server is always single-threaded.

See `issue 209 <https://github.com/zopefoundation/ZEO/issues/209>`_ for details.

- Test ZEO only with the following storages
``FileStorage`` with server side blobs,
``FileStorage`` with shared blob directory,
``MappingStorage`` (without blobs).

Those tests cover all storage features with impact on ZEO:
without blobs, with shared blobs and with server side blobs;
load, store, two phase commit, undo.
Therefore, passing tests for those storages provide high confidence that ZEO
works for other properly implemented storages as well.
See `198 <https://github.com/zopefoundation/ZEO/issues/198>`_.

- Lint the code with flake8

- Add support for Python 3.10, 3.11.

- Add ``ConflictError`` to the list of unlogged server exceptions
(the client/its application should determine whether it wants
them logged).

Prevent ``no current transaction: tpc_abort()`` server log entries.
The storage API allows ``tpc_abort`` to be called with an
invalid transaction (the call should be ignored in this case)
and the server's ``tpc_vote`` relies on this.

Change the server's log message label for request exceptions
from ``Bad request ...`` to ``... raised exception:``,
hinting towards a server rather than client problem.

See `issue 156 <https://github.com/zopefoundation/ZEO/issues/156>`_.

- Remove support for ``python setup.py test``. It hadn't been working
for some time. From now the only supported way to run tests is via
``zope-testrunner``.

5.3.0

------------------

- Remove tests for the ``asyncio/mtacceptor`` module, it appears unused
and presents a maintenance burden. The module will be removed in
ZEO version 6.

- Remove GitHub Actions testing for Python 3.5, it has reached end of life.

- Add support for Python 3.8 and Python 3.9.

- Add more accurate error handling for ``asyncio.CancelledError``.
See `issue 165 <https://github.com/zopefoundation/ZEO/issues/165>`_.

- Fix bug related to blobs stored by ``ZEO``
`150 <https://github.com/zopefoundation/ZEO/issues/150>`_.

5.2.3

------------------

- Ensure ``ZEO`` satisfies the ``ZODB >= 5.6`` requirement that
``lastTransaction()`` changes only after invalidation processing.
Violating this requirement can lead to race conditions and
associated data corruption
`166 <https://github.com/zopefoundation/ZEO/issues/166>`_.

- Add automated tests against the ZODB ``master`` branch
see `issue 177 <https://github.com/zopefoundation/ZEO/issues/177>`_.

- Fix data corruption due to race between load and external invalidations.
See `issue 155 <https://github.com/zopefoundation/ZEO/issues/155>`_.

- Improve log message when client cache is out of sync with server.
See `issue 142 <https://github.com/zopefoundation/ZEO/issues/142>`_.

5.2.2

Not secure
------------------

- Remove support for Python 3.4

- Provide proper CA test certificates to allow the SSL tests succeed for Py3

- Replace deprecated occurrences of ``Thread.isAlive()`` by ``Thread.is_alive()``
See `pull request 154 <https://github.com/zopefoundation/ZEO/pull/154>`_.

- Include both modified and just created objects into invalidations.
See `pull request 160 <https://github.com/zopefoundation/ZEO/pull/160>`_.

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.