Release v4.0.5 (#3286)

- Icrease version
- Add RNs
- Update year in the copyright
This commit is contained in:
Polina Bungina
2025-02-20 18:29:23 +03:00
committed by GitHub
parent b573bd4c9d
commit 66cf21767d
4 changed files with 71 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2024 Compose, Zalando SE, Patroni Contributors
Copyright (c) 2025 Compose, Zalando SE, Patroni Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -77,7 +77,7 @@ master_doc = 'index'
# General information about the project.
project = 'Patroni'
copyright = '2024 Compose, Zalando SE, Patroni Contributors'
copyright = '2025 Compose, Zalando SE, Patroni Contributors'
author = 'Patroni Contributors'
# The version info for the project you're documenting, acts as replacement for

View File

@@ -3,6 +3,74 @@
Release notes
=============
Version 4.0.5
-------------
Released 2025-02-20
**Stability improvements**
- Compatibility with ``python-json-logger>=3.1`` (Alexander Kukushkin)
Get rid of the warnings produced by the old API usage.
- Compatibility with Python 3.13 (Alexander Kukushkin)
Run tests against Python 3.13.
- Compatibility with ``pyinstaller>=4.4`` (Joe Jensen)
Fall back to the default ``iter_modules`` if ``pyinstaller`` ``toc`` attribute is not present.
- Fix issues with PostgreSQL 9.5 support (Alexander Kukushkin)
- Properly handle ``pg_rewind`` output format.
- Consider ``synchronous_standby_names`` format not supporting "num" specification.
- Compatibility with the latest changes in ``urlparse`` (Alexander Kukushkin)
``urlparse`` doesn't accept multiple hosts with ``[]`` character in URL anymore. To mitigate the problem, switch to the native wrappers of ``PQconninfoParse()`` from ``libpq``, when it is possible, and use our implementation only for older ``psycopg2`` versions that are linked with an outdated version of ``libpq``.
**Bugfixes**
- Show only the members to be restarted upon restart confirmation (András Váczi)
Previously, when doing ``patronictl restart <clustername> --pending``, the confirmation listed all members, regardless of whether their restart is pending.
- Cancel long-running jobs on Patroni stop and remove data directory on replica bootstrap failure (Alexander Kukushkin)
Previously, Patroni could be doing replica bootstrap, while ``pg_basebackup`` / ``wal-g`` / ``pgBackRest`` / ``barman`` or similar keep running.
- Properly handle cluster names with a slash in ``patronictl edit-config`` (Antoni Mur)
Replace a forward slash in ``cluster_name`` with an underscore.
- Avoid dropping physical slots too early (Alexander Kukushkin)
Postpone removal of physical replication slots containing ``xmin`` after a failover: on the new primary -- until this member is promoted, on replicas -- until there is a leader in the cluster.
- Handle all exceptions raised by subprocess in ``controldata()`` (Alexander Kukushkin)
Patroni was not properly handling all exceptions possibly raised when calling ``pg_controldata`` utility.
- Fix bug with a slot for a former leader not retained on failover (Alexander Kukushkin)
Avoid falsely relying on members being present in DCS, while on failover ``/member`` key for the former leader is expiring exactly at the same time.
- Fix a couple of bugs in the quorum state machine (Alexander Kukushkin)
- When evaluating whether there are healthy nodes for a leader race, before demoting we need to take into account quorum requirements. Without it, the former leader may end up in recovery surrounded by asynchronous nodes.
- ``QuorumStateResolver`` wasn't correctly handling the case when a replica node quickly joined and disconnected.
**Improvements**
- Improve error on am empty or non-dictionary configuration file (Julian)
Throw a more explicit exception when validating if Patroni configuration file contains a valid ``Mapping`` object.
Version 4.0.4
-------------

View File

@@ -2,4 +2,4 @@
:var __version__: the current Patroni version.
"""
__version__ = '4.0.4'
__version__ = '4.0.5'