Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

Update amqp from 2.5.2 to 5.3.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update argh from 0.26.2 to 0.31.3.

Changelog

0.31.3

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

Bugs fixed:

- wrong type annotation of `errors` in `wrap_errors` (PR 229 by laazy)
- tests were failing under Python 3.13 (issue 228 by mgorny)
- regression: can't set argument name with `dest` via decorator
(issue 224 by mathieulongtin)

0.31.2

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

Bugs fixed:

- broken support for `Optional[List]` (but not `Optional[list]`), a narrower
case of the problem fixed earlier (issue 216).

0.31.1

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

Bugs fixed:

- broken support for type alias `List` (issue 216).

Enhancements:

- cleaned up the README, rearranged other documentation.

0.31.0

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

Breaking changes:

- The typing hints introspection feature is automatically enabled for any
command (function) which does **not** have any arguments specified via `arg`
decorator.

This means that, for example, the following function used to fail and now
it will pass::

   def main(count: int):
       assert isinstance(count, int)

This may lead to unexpected behaviour in some rare cases.

- A small change in the legacy argument mapping policy `BY_NAME_IF_HAS_DEFAULT`
concerning the order of variadic positional vs. keyword-only arguments.

The following function now results in ``main alpha [args ...] beta`` instead of
``main alpha beta [args ...]``::

   def main(alpha, *args, beta): ...

This does **not** concern the default name mapping policy.  Even for the
legacy one it's an edge case which is extremely unlikely to appear in any
real-life application.

- Removed the previously deprecated decorator `expects_obj`.

Enhancements:

- Added experimental support for basic typing hints (issue 203)

The following hints are currently supported:

- ``str``, ``int``, ``float``, ``bool`` (goes to ``type``);
- ``list`` (affects ``nargs``), ``list[T]`` (first subtype goes into ``type``);
- ``Literal[T1, T2, ...]`` (interpreted as ``choices``);
- ``Optional[T]`` AKA ``T | None`` (currently interpreted as
 ``required=False`` for optional and ``nargs="?"`` for positional
 arguments; likely to change in the future as use cases accumulate).

The exact interpretation of the type hints is subject to change in the
upcoming versions of Argh.

- Added `always_flush` argument to `dispatch()` (issue 145)

- High-level functions `argh.dispatch_command()` and `argh.dispatch_commands()`
now accept a new parameter `old_name_mapping_policy`.  The behaviour hasn't
changed because the parameter is `True` by default.  It will change to
`False` in Argh v.0.33 or v.1.0.

Deprecated:

- the `namespace` argument in `argh.dispatch()` and `argh.parse_and_resolve()`.
Rationale: continued API cleanup.  It's already possible to mutate the
namespace object between parsing and calling the endpoint; it's unlikely that
anyone would need to specify a custom namespace class or pre-populate it
before parsing.  Please file an issue if you have a valid use case.

Other changes:

- Refactoring.

0.30.5

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

Bugs fixed:

- A combination of `nargs` with a list as default value would lead to the
values coming from CLI being wrapped in another list (issue 212).

Enhancements:

- Argspec guessing: if `nargs` is not specified but the default value
is a list, ``nargs="*"`` is assumed and passed to argparse.

0.30.4

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

There were complaints about the lack of a deprecation cycle for the legacy name
mapping policy.  This version addresses the issue:

- The handling introduced in v.0.30.2 (raising an exception for clarity)
is retained for cases when no name mapping policy is specified but function
signature contains defaults in non-kwonly args **and kwonly args are also
defined**::

   def main(alpha, beta=1, *, gamma=2):   error — explicit policy required

In a similar case but when **kwonly args are not defined** Argh now assumes
the legacy name mapping policy (`BY_NAME_IF_HAS_DEFAULT`) and merely issues
a deprecation warning with the same message as the exception mentioned above::

   def main(alpha, beta=2):     `[-b BETA] alpha` + DeprecationWarning

This ensures that most of the old scripts still work the same way despite the
new policy being used by default and enforced in cases when it's impossible
to resolve the mapping conflict.

Please note that this "soft" handling is to be removed in version v0.33
(or v1.0 if the former is not deemed necessary).  The new name mapping policy
will be used by default without warnings, like in v0.30.

0.30.3

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

Bugs fixed:

- Regression: a positional argument with an underscore used in `arg` decorator
would cause Argh fail on the assembling stage. (208)

0.30.2

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

Bugs fixed:

- As reported in 204 and 206, the new default name mapping policy in fact
silently changed the CLI API of some scripts: arguments which were previously
translated as CLI options became optional positionals. Although the
instructions were supplied in the release notes, the upgrade may not
necessarily be intentional, so a waste of users' time is quite likely.

To alleviate this, the default value for `name_mapping_policy` in standard
functions has been changed to `None`; if it's not specified, Argh falls back
to the new default policy, but raises `ArgumentNameMappingError` with
detailed instructions if it sees a non-kwonly argument with a default value.

Please specify the policy explicitly in order to avoid this error if you need
to infer optional positionals (``nargs="?"``) from function signature.

0.30.1

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

Bugs fixed:

- Regression: certain special values in argument default value would cause an
exception (204)

Enhancements:

- Improved the tutorial.
- Added a more informative error message when the reason is likely to be
related to the migration from Argh v0.29 to a version with a new argument
name mapping policy.

Other changes:

- Added `py.typed` marker file for :pep:`561`.

0.30.0

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

Backwards incompatible changes:

- A new policy for mapping function arguments to CLI arguments is used by
default (see :class:`argh.assembling.NameMappingPolicy`).

The following function does **not** map to ``func foo [--bar]`` anymore::

   def func(foo, bar=None):
       ...

Since this release it maps to ``func foo [bar]`` instead.
Please update the function this way to keep `bar` an "option"::

   def func(foo, *, bar=None):
       ...

If you cannot modify the function signature to use kwonly args for options,
please consider explicitly specifying the legacy name mapping policy::

   set_default_command(
       func, name_mapping_policy=NameMappingPolicy.BY_NAME_IF_HAS_DEFAULT
   )

- The name mapping policy `BY_NAME_IF_HAS_DEFAULT` slightly deviates from the
old behaviour. Kwonly arguments without default values used to be marked as
required options (``--foo FOO``), now they are treated as positionals
(``foo``). Please consider the new default policy (`BY_NAME_IF_KWONLY`) for
a better treatment of kwonly.

- Removed previously deprecated features (184 → 188):

- argument help string in annotations — reserved for type hints;
- `argh.SUPPORTS_ALIASES`;
- `argh.safe_input()`;
- previously renamed arguments for `add_commands()`: `namespace`,
 `namespace_kwargs`, `title`, `description`, `help`;
- `pre_call` argument in `dispatch()`.  The basic usage remains simple but
 more granular functions are now available for more control.

 Instead of this::

   argh.dispatch(..., pre_call=pre_call_hook)

 please use this::

   func, ns = argh.parse_and_resolve(...)
   pre_call_hook(ns)
   argh.run_endpoint_function(func, ns, ...)

Deprecated:

- The `expects_obj` decorator.  Rationale: it used to support the old,
"un-pythonic" style of usage, which essentially lies outside the scope of
Argh.  If you are not using the mapping of function arguments onto CLI, then
you aren't reducing the amount of code compared to vanilla Argparse.

- The `add_help_command` argument in `dispatch()`.
Rationale: it doesn't add much to user experience; it's not much harder to
type ``--help`` than it is to type ``help``; moreover, the option can be
added anywhere, unlike its positional counterpart.

Enhancements:

- Added support for Python 3.12.
- Added type annotations to existing Argh code (185 → 189).
- The `dispatch()` function has been refactored, so in case you need finer
control over the process, two new, more granular functions can be used:

- `endpoint_function, namespace = argh.parse_and_resolve(...)`
- `argh.run_endpoint_function(endpoint_function, namespace, ...)`

Please note that the names may change in the upcoming versions.

- Configurable name mapping policy has been introduced for function argument
to CLI argument translation (191 → 199):

- `BY_NAME_IF_KWONLY` (default and recommended).
- `BY_NAME_IF_HAS_DEFAULT` (close to pre-v.0.30 behaviour);

Please check API docs on :class:`argh.assembling.NameMappingPolicy` for
details.

0.29.4

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

Bugs fixed:

- Test coverage reported as <100% when argcomplete is installed (187)

0.29.3

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

Technical releases for packaging purposes.  No changes in functionality.

0.29.0

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

Backwards incompatible changes:

- Wrapped exceptions now cause ``dispatching.dispatch()`` to raise
``SystemExit(1)`` instead of returning without error. For most users, this
means failed commands will now exit with a failure status instead of a
success. (161)

Deprecated:

- Renamed arguments in `add_commands()` (165):

- `namespace` → `group_name`
- `namespace_kwargs` → `group_kwargs`

The old names are deprecated and will be removed in v.0.30.

Enhancements:

- Can control exit status (see Backwards Incompatible Changes above) when
raising ``CommandError`` using the ``code`` keyword arg.

Bugs fixed:

-  Positional arguments should not lead to removal of short form of keyword
arguments. (115)

Other changes:

- Avoid depending on iocapture by using pytest's built-in feature (177)

0.28.1

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

- Fixed bugs in tests (171, 172)

0.28.0

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

A major cleanup.

Backward incompatible changes:

- Dropped support for Python 2.7 and 3.7.

Deprecated features, to be removed in v.0.30:

- `argh.assembling.SUPPORTS_ALIASES`.

- Always `True` for recent versions of Python.

- `argh.io.safe_input()` AKA `argh.interaction.safe_input()`.

- Not relevant anymore.  Please use the built-in `input()` instead.

- argument `pre_call` in `dispatch()`.

Even though this hack seems to have been used in some projects, it was never
part of the official API and never recommended.

Describing your use case in the `discussion about shared arguments`_ can
help improve the library to accomodate it in a proper way.

.. _discussion about shared arguments: https://github.com/neithere/argh/issues/63

- Argument help as annotations.

- Annotations will only be used for types after v.0.30.
- Please replace any instance of::

   def func(foo: "Foobar"):

 with the following::

   arg('-f', '--foo', help="Foobar")
   def func(foo):

 It will be decided later how to keep this functionality "DRY" (don't repeat
 yourself) without conflicts with modern conventions and tools.

- Added deprecation warnings for some arguments deprecated back in v.0.26.

0.27.2

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

Minor packaging fix:

* chore: include file required by tox.ini in the sdist (155)

0.27.1

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

Minor building and packaging fixes:

* docs: add Read the Docs config (160)
* chore: include tox.ini in the sdist (155)

0.27.0

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

This is the last version to support Python 2.7.

Backward incompatible changes:

- Dropped support for Python 2.6.

Enhancements:

- Added support for Python 3.7 through 3.11.
- Support introspection of function signature behind the `wraps` decorator
(issue 111).

Fixed bugs:

- When command function signature contained ``**kwargs`` *and* positionals
without defaults and with underscores in their names, a weird behaviour could
be observed (issue 104).
- Fixed introspection through decorators (issue 111).
- Switched to Python's built-in `unittest.mock` (PR 154).
- Fixed bug with `skip_unknown_args=True` (PR 134).
- Fixed tests for Python 3.9.7+ (issue 148).

Other changes:

- Included the license files in manifest (PR 112).
- Extended the list of similar projects (PR 87).
- Fixed typos and links in documentation (PR 110, 116, 156).
- Switched CI to Github Actions (PR 153).
Links

Update atomicwrites from 1.3.0 to 1.4.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update attrs from 19.3.0 to 25.4.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update beautifulsoup4 from 4.8.1 to 4.14.3.

Changelog

4.11.1

This release was done to ensure that the unit tests are packaged along
with the released source. There are no functionality changes in this
release, but there are a few other packaging changes:

* The Japanese and Korean translations of the documentation are included.
* The changelog is now packaged as CHANGELOG, and the license file is
packaged as LICENSE. NEWS.txt and COPYING.txt are still present,
but may be removed in the future.
* TODO.txt is no longer packaged, since a TODO is not relevant for released
code.

4.11.0

* Ported unit tests to use pytest.

* Added special string classes, RubyParenthesisString and RubyTextString,
to make it possible to treat ruby text specially in get_text() calls.
[bug=1941980]

* It's now possible to customize the way output is indented by
providing a value for the 'indent' argument to the Formatter
constructor. The 'indent' argument works very similarly to the
argument of the same name in the Python standard library's
json.dump() function. [bug=1955497]

* If the charset-normalizer Python module
(https://pypi.org/project/charset-normalizer/) is installed, Beautiful
Soup will use it to detect the character sets of incoming documents.
This is also the module used by newer versions of the Requests library.
For the sake of backwards compatibility, chardet and cchardet both take
precedence if installed. [bug=1955346]

* Added a workaround for an lxml bug
(https://bugs.launchpad.net/lxml/+bug/1948551) that causes
problems when parsing a Unicode string beginning with BYTE ORDER MARK.
[bug=1947768]

* Issue a warning when an HTML parser is used to parse a document that
looks like XML but not XHTML. [bug=1939121]

* Do a better job of keeping track of namespaces as an XML document is
parsed, so that CSS selectors that use namespaces will do the right
thing more often. [bug=1946243]

* Some time ago, the misleadingly named "text" argument to find-type
methods was renamed to the more accurate "string." But this supposed
"renaming" didn't make it into important places like the method
signatures or the docstrings. That's corrected in this
version. "text" still works, but will give a DeprecationWarning.
[bug=1947038]

* Fixed a crash when pickling a BeautifulSoup object that has no
tree builder. [bug=1934003]

* Fixed a crash when overriding multi_valued_attributes and using the
html5lib parser. [bug=1948488]

* Standardized the wording of the MarkupResemblesLocatorWarning
warnings to omit untrusted input and make the warnings less
judgmental about what you ought to be doing. [bug=1955450]

* Removed support for the iconv_codec library, which doesn't seem
to exist anymore and was never put up on PyPI. (The closest
replacement on PyPI, iconv_codecs, is GPL-licensed, so we can't use
it--it's also quite old.)

4.10.0

* This is the first release of Beautiful Soup to only support Python
3. I dropped Python 2 support to maintain support for newer versions
(58 and up) of setuptools. See:
https://github.com/pypa/setuptools/issues/2769 [bug=1942919]

* The behavior of methods like .get_text() and .strings now differs
depending on the type of tag. The change is visible with HTML tags
like <script>, <style>, and <template>. Starting in 4.9.0, methods
like get_text() returned no results on such tags, because the
contents of those tags are not considered 'text' within the document
as a whole.

But a user who calls script.get_text() is working from a different
definition of 'text' than a user who calls div.get_text()--otherwise
there would be no need to call script.get_text() at all. In 4.10.0,
the contents of (e.g.) a <script> tag are considered 'text' during a
get_text() call on the tag itself, but not considered 'text' during
a get_text() call on the tag's parent.

Because of this change, calling get_text() on each child of a tag
may now return a different result than calling get_text() on the tag
itself. That's because different tags now have different
understandings of what counts as 'text'. [bug=1906226] [bug=1868861]

* NavigableString and its subclasses now implement the get_text()
method, as well as the properties .strings and
.stripped_strings. These methods will either return the string
itself, or nothing, so the only reason to use this is when iterating
over a list of mixed Tag and NavigableString objects. [bug=1904309]

* The 'html5' formatter now treats attributes whose values are the
empty string as HTML boolean attributes. Previously (and in other
formatters), an attribute value must be set as None to be treated as
a boolean attribute. In a future release, I plan to also give this
behavior to the 'html' formatter. Patch by Isaac Muse. [bug=1915424]

* The 'replace_with()' method now takes a variable number of arguments,
and can be used to replace a single element with a sequence of elements.
Patch by Bill Chandos. [rev=605]

* Corrected output when the namespace prefix associated with a
namespaced attribute is the empty string, as opposed to
None. [bug=1915583]

* Performance improvement when processing tags that speeds up overall
tree construction by 2%. Patch by Morotti. [bug=1899358]

* Corrected the use of special string container classes in cases when a
single tag may contain strings with different containers; such as
the <template> tag, which may contain both TemplateString objects
and Comment objects. [bug=1913406]

* The html.parser tree builder can now handle named entities
found in the HTML5 spec in much the same way that the html5lib
tree builder does. Note that the lxml HTML tree builder doesn't handle
named entities this way. [bug=1924908]

* Added a second way to pass specify encodings to UnicodeDammit and
EncodingDetector, based on the order of precedence defined in the
HTML5 spec, starting at:
https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding

Encodings in 'known_definite_encodings' are tried first, then
byte-order-mark sniffing is run, then encodings in 'user_encodings'
are tried. The old argument, 'override_encodings', is now a
deprecated alias for 'known_definite_encodings'.

This changes the default behavior of the html.parser and lxml tree
builders, in a way that may slightly improve encoding
detection but will probably have no effect. [bug=1889014]

* Improve the warning issued when a directory name (as opposed to
the name of a regular file) is passed as markup into the BeautifulSoup
constructor. [bug=1913628]

4.9.3

* Implemented a significant performance optimization to the process of
searching the parse tree. Patch by Morotti. [bug=1898212]

4.9.2

* Fixed a bug that caused too many tags to be popped from the tag
stack during tree building, when encountering a closing tag that had
no matching opening tag. [bug=1880420]

* Fixed a bug that inconsistently moved elements over when passing
a Tag, rather than a list, into Tag.extend(). [bug=1885710]

* Specify the soupsieve dependency in a way that complies with
PEP 508. Patch by Mike Nerone. [bug=1893696]

* Change the signatures for BeautifulSoup.insert_before and insert_after
(which are not implemented) to match PageElement.insert_before and
insert_after, quieting warnings in some IDEs. [bug=1897120]

4.9.1

* Added a keyword argument 'on_duplicate_attribute' to the
BeautifulSoupHTMLParser constructor (used by the html.parser tree
builder) which lets you customize the handling of markup that
contains the same attribute more than once, as in:
<a href="url1" href="url2"> [bug=1878209]

* Added a distinct subclass, GuessedAtParserWarning, for the warning
issued when BeautifulSoup is instantiated without a parser being
specified. [bug=1873787]

* Added a distinct subclass, MarkupResemblesLocatorWarning, for the
warning issued when BeautifulSoup is instantiated with 'markup' that
actually seems to be a URL or the path to a file on
disk. [bug=1873787]

* The new NavigableString subclasses (Stylesheet, Script, and
TemplateString) can now be imported directly from the bs4 package.

* If you encode a document with a Python-specific encoding like
'unicode_escape', that encoding is no longer mentioned in the final
XML or HTML document. Instead, encoding information is omitted or
left blank. [bug=1874955]

* Fixed test failures when run against soupselect 2.0. Patch by Tomáš
Chvátal. [bug=1872279]

4.9.0

* Added PageElement.decomposed, a new property which lets you
check whether you've already called decompose() on a Tag or
NavigableString.

* Embedded CSS and Javascript is now stored in distinct Stylesheet and
Script tags, which are ignored by methods like get_text() since most
people don't consider this sort of content to be 'text'. This
feature is not supported by the html5lib treebuilder. [bug=1868861]

* Added a Russian translation by 'authoress' to the repository.

* Fixed an unhandled exception when formatting a Tag that had been
decomposed.[bug=1857767]

* Fixed a bug that happened when passing a Unicode filename containing
non-ASCII characters as markup into Beautiful Soup, on a system that
allows Unicode filenames. [bug=1866717]

* Added a performance optimization to PageElement.extract(). Patch by
Arthur Darcet.

4.8.2

* Added Python docstrings to all public methods of the most commonly
used classes.

* Added a Chinese translation by Deron Wang and a Brazilian Portuguese
translation by Cezar Peixeiro to the repository.

* Fixed two deprecation warnings. Patches by Colin
Watson and Nicholas Neumann. [bug=1847592] [bug=1855301]

* The html.parser tree builder now correctly handles DOCTYPEs that are
not uppercase. [bug=1848401]

* PageElement.select() now returns a ResultSet rather than a regular
list, making it consistent with methods like find_all().
Links

Update billiard from 3.6.1.0 to 4.2.4.

Changelog

4.2.4

--------------------
- Eliminate usage of 'return' in 'finally' blocks (438)
- Prepare for release: v4.2.4 (439)

4.2.3

--------------------
- Ensure that task results are delivered during pool shutdown (435)
- Prepare for release: v4.2.3 (436)

4.2.0

--------------------
- Update process.py to close during join only if process has completed.
- Adjust the __repr__ in ApplyResult.
- Remove python 3.7 from CI.
- Added Python 3.12 support.
- Fixed (co_positions): resolve issue caused by absence co_positions (395).
- Fixed: Replaced mktemp usage for Python 3 from python 2.
- Changed nose test to pytest (397) in Integration test.
- Changed nose dependency for unit test (383).

4.1.0

--------------------
- Fixed a python 2 to 3 compat issue which was missed earlier (374).
- Adde Python 3.11 primary support

4.0.2

--------------------
- ExceptionWithTraceback should be an exception.

4.0.1

--------------------
- Add support for Python 3.11 _posixsubprocess.fork_exec() arguments.
- Keep exception traceback somehow (368).

4.0.0

--------------------
- Support Sphinx 4.x.
- Remove dependency to case.
- Drop support of Python < 3.7.
- Update to psutil 5.9.0.
- Add python_requires to enforce Python version.
- Replace deprecated threading Event.isSet with Event.is_set.
- Prevent segmentation fault in get_pdeathsig while using ctypes (361).
- Migrated CI to Github actions.
- Python 3.10 support added.

3.6.4.0

--------------------
- Issue 309: Add Python 3.9 support to spawnv_passfds()
- fix 314
Links

Update blinker from 1.4 to 1.9.0.

Changelog

1.9.0

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

Released 2024-11-08

-   Drop support for Python 3.8. :pr:`175`
-   Remove previously deprecated ``__version__``, ``receiver_connected``,
 ``Signal.temporarily_connected_to`` and ``WeakNamespace``. :pr:`172`
-   Skip weakref signal cleanup if the interpreter is shutting down.
 :issue:`173`

1.8.2

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

Released 2024-05-06

-   Simplify type for ``_async_wrapper`` and ``_sync_wrapper`` arguments.
 :pr:`156`

1.8.1

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

Released 2024-04-28

-   Restore identity handling for ``str`` and ``int`` senders. :pr:`148`
-   Fix deprecated ``blinker.base.WeakNamespace`` import. :pr:`149`
-   Fix deprecated ``blinker.base.receiver_connected import``. :pr:`153`
-   Use types from ``collections.abc`` instead of ``typing``. :pr:`150`
-   Fully specify exported types as reported by pyright. :pr:`152`

1.8.0

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

Released 2024-04-27

-   Deprecate the ``__version__`` attribute. Use feature detection, or
 ``importlib.metadata.version("blinker")``, instead. :issue:`128`
-   Specify that the deprecated ``temporarily_connected_to`` will be removed in
 the next version.
-   Show a deprecation warning for the deprecated global ``receiver_connected``
 signal and specify that it will be removed in the next version.
-   Show a deprecation warning for the deprecated ``WeakNamespace`` and specify
 that it will be removed in the next version.
-   Greatly simplify how the library uses weakrefs. This is a significant change
 internally but should not affect any public API. :pr:`144`
-   Expose the namespace used by ``signal()`` as ``default_namespace``.
 :pr:`145`

1.7.0

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

Released 2023-11-01

-   Fixed messages printed to standard error about unraisable exceptions during
 signal cleanup, typically during interpreter shutdown. :pr:`123`
-   Allow the Signal ``set_class`` to be customised, to allow calling of
 receivers in registration order. :pr:`116`.
-   Drop Python 3.7 and support Python 3.12. :pr:`126`

1.6.3

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

Released 2023-09-23

-   Fix ``SyncWrapperType`` and ``AsyncWrapperType`` :pr:`108`
-   Fixed issue where ``connected_to`` would not disconnect the receiver if an
 instance of ``BaseException`` was raised. :pr:`114`

1.6.2

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

Released 2023-04-12

-   Type annotations are not evaluated at runtime. typing-extensions is not a
 runtime dependency. :pr:`94`

1.6.1

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

Released 2023-04-09

-   Ensure that ``py.typed`` is present in the distributions (to enable other
 projects to use Blinker's typing).
-   Require typing-extensions > 4.2 to ensure it includes ``ParamSpec``.
 :issue:`90`

1.6

-----------

Released 2023-04-02

-   Add a ``muted`` context manager to temporarily turn off a signal. :pr:`84`
-   ``int`` instances with the same value will be treated as the same sender,
 the same as ``str`` instances. :pr:`83`
-   Add a ``send_async`` method to allow signals to send to coroutine receivers.
 :pr:`76`
-   Update and modernise the project structure to match that used by the Pallets
 projects. :pr:`77`
-   Add an initial set of type hints for the project.

1.5

-----------

Released 2022-07-17

-   Support Python >= 3.7 and PyPy. Python 2, Python < 3.7, and Jython
 may continue to work, but the next release will make incompatible
 changes.
Links

Update bokeh from 1.4.0 to 3.8.2.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update celery from 4.3.0 to 5.6.2.

Changelog

5.6.2

=====

:release-date: 2026-01-04
:release-by: Tomer Nosrati

What's Changed
~~~~~~~~~~~~~~

- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string (10045)
- Bugfix: Revoked tasks now immediately update backend status to REVOKED (9869)
- Prepare for release: v5.6.2 (10049)

.. _version-5.6.1:

5.6.1

=====

:release-date: 2025-12-29
:release-by: Tomer Nosrati

What's Changed
~~~~~~~~~~~~~~

- Fix Redis Sentinel ACL authentication support (10013)
- Fix: Broker heartbeats not sent during graceful shutdown (9986)
- docs 5410 -- Document confirm_publish broker transport option (10016)
- close DB pools only in prefork mode (10020)
- Fix: Avoid unnecessary Django database connection creation during cleanup (10015)
- reliable prefork detection (10023)
- better coverage (10029)
- Docs: clarify `result_extended` vs periodic task metadata and show `headers["periodic_task_name"]` example (10030)
- Stop importing pytest_subtests (10032)
- Only use exceptiongroup backport for Python < 3.11 (10033)
- Prepare for release: v5.6.1 (10037)

.. _version-5.6.0:

5.6.0

=====

:release-date: 2025-11-30
:release-by: Tomer Nosrati

Celery v5.6.0 is now available.

Key Highlights
~~~~~~~~~~~~~~

See :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.

Python 3.9 Minimum Version
--------------------------

Celery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python
version is now 3.9. Users still on Python 3.8 must upgrade their Python version
before upgrading to Celery 5.6.0.

Additionally, this release includes initial support for Python 3.14.

SQS: Reverted to ``pycurl`` from ``urllib3``
--------------------------------------------

The switch from ``pycurl`` to ``urllib3`` for the SQS transport (introduced in

5.6.0rc2

========

:release-date: 2025-11-22
:release-by: Tomer Nosrati

Celery v5.6.0 Release Candidate 2 is now available for testing.
Please help us test this version and report any issues.

What's Changed
~~~~~~~~~~~~~~

- Remove Python 4.0 version condition for pytest dependencies (9993)
- Sanitize broker URL in delayed delivery logs (avoid leaking credentials) (9997)
- Don't fail task on timeout during cold shutdown (9678)
- Add Py39-314t to CI (9999)
- asynpool: Don't return from inside a finally block (10000)
- Prepare for (pre) release: v5.6.0rc2 (10005)

.. _version-5.6.0rc1:

5.6.0rc1

========

:release-date: 2025-11-02
:release-by: Tomer Nosrati

Celery v5.6.0 Release Candidate 1 is now available for testing.
Please help us test this version and report any issues.

What's Changed
~~~~~~~~~~~~~~

- Add support for Django Connection pool (9953)
- Pin tblib to ==3.1.0 (9967)
- fix(worker): continue to attempt to bind other queues after a native delayed delivery binding failure has occurred (9959)
- Handle UnpicklingError in persistent scheduler initialization (9952)
- Bug Fix: Nested Chords Fail When Using django-celery-results with a Redis Backend (9950)
- Add support pymongo  4.12 (9665)
- Make tests compatible with pymongo >= 4.14 (9968)
- tblib updated from 3.1.0 to 3.2.0 (9970)
- Fix remaining function typing and docstring (9971)
- Fix regex pattern in version parsing and remove duplicate entry in __all__ (9978)
- Bump Kombu to v5.6.0 and removed <5.7 limit on kombu (9981)
- Prepare for (pre) release: v5.6.0rc1 (9982)

.. _version-5.6.0b2:

5.6.0b3

=======
:release-date: 15 September, 2025
:release-by: Tomer Nosrati

What's Changed
~~~~~~~~~~~~~~

- Remove custom `LifoQueue` class conflicting with recent gevent (2314)
- Replace deprecated datetime.utcnow() with datetime.now(timezone.utc) (2355)
- Prepare for (pre) release: v5.6.0b3 (2359)

.. _version-5.6.0b2:

5.6.0b2

=======

:release-date: 2025-10-20
:release-by: Tomer Nosrati

Celery v5.6.0 Beta 2 is now available for testing.
Please help us test this version and report any issues.

What's Changed
~~~~~~~~~~~~~~

- GitHub Actions: Test on Python 3.14 release candidate 2 (9891)
- Update pypy to python 3.11 (9896)
- Feature: Add support credential_provider to Redis Backend (9879)
- Celery.timezone: try tzlocal.get_localzone() before using LocalTimezone (9862)
- Run integration tests on Python 3.14 (9903)
- Fix arithmetic overflow for MSSQL result backend (9904)
- Add documentation for task_id param for apply_async function (9906)
- Support redis client name (9900)
- Bump Kombu to v5.6.0rc1 (9918)
- Fix broker connection retry attempt counter in the error log (9911)
- fix: restrict disable-prefetch feature to Redis brokers only (9919)
- fix(): preserve group order in replaced signature (9910)
- Remove Python 3.8 from CI workflow (9930)
- Update default Python versions in integration tests (9931)
- Update tox.ini to remove Python 3.8 (9932)
- Remove Python 3.8 from Dockerfile (9933)
- Update Python version requirement to 3.9 (9935)
- Update pypy version from 3.10 to 3.11 in Dockerfile (9934)
- Flake8 fixes (9955)
- Remove test-pypy3.txt from Dockerfile dependencies (9939)
- Remove backports.zoneinfo for Python 3.9 compatibility (9956)
- Update pytest-cov version for Python compatibility (9957)
- Update pytest-rerunfailures and pre-commit versions (9958)
- Prepare for (pre) release: v5.6.0b2 (9938)

.. _version-5.6.0b1:

5.6.0b1

=======

:release-date: 2025-09-15
:release-by: Tomer Nosrati

Celery v5.6.0 Beta 1 is now available for testing.
Please help us test this version and report any issues.

What's Changed
~~~~~~~~~~~~~~

- docs: mention of json serializer recursive reference message size blowup (5000) (9743)
- docs: typo in canvas.rst (9744)
- Makes _on_retry return a float as required to be used as errback on retry_over_time (9741)
- Update canvas.rst doc calculation order for callback (9758)
- Updated Blacksmith logo (9763)
- Made the Sponsors logos link to their website (9764)
- add missing cloudamqp logo (9767)
- Improve sponsor visibility (9768)
- fix: (9773) task_id must not be empty with chain as body of a chord (9774)
- Update setup.py to fix deprecation warning (9771)
- Adds integration test for chord_unlock bug when routed to quorum/topic queue (9766)
- Add xfail test for default queue/exchange fallback ignoring task_default_* settings (9765)
- Add xfail test for RabbitMQ quorum queue global QoS race condition (9770)
- fix: (8786) time out when chord header fails with group body (9788)
- Fix 9738 : Add root_id and parent_id to .apply() (9784)
- Replace DelayedDelivery connection creation to use context manger (9793)
- Fix 9794: Pydantic integration fails with __future__.annotations. (9795)
- add go and rust implementation in docs (9800)
- Fix memory leak in exception handling (Issue 8882) (9799)
- Fix handlers docs (Issue 9787) (9804)
- Remove importlib_metadata leftovers (9791)
- Update timeout minutes for smoke tests CI (9807)
- Revert "Remove dependency on `pycurl`" (9620)
- Add Blacksmith Docker layer caching to all Docker builds (9840)
- Bump Kombu to v5.6.0b1 (9839)
- Disable pytest-xdist for smoke tests and increase retries (CI ONLY) (9842)
- Fix Python 3.13 compatibility in events dumper (9826)
- Dockerfile Build Optimizations (9733)
- Migrated from useblacksmith/build-push-actionv1 to useblacksmith/setup-docker-builderv1 in the CI (9846)
- Remove incorrect example (9854)
- Revert "Use Django DB max age connection setting" (9824)
- Fix pending_result memory leak (9806)
- Update python-package.yml (9856)
- Bump Kombu to v5.6.0b2 (9858)
- Refactor integration and smoke tests CI (9855)
- Fix `AsyncResult.forget()` with couchdb backend method raises `TypeError: a bytes-like object is required, not 'str'` (9865)
- Improve Docs for SQS Authentication (9868)
- Added `.github/copilot-instructions.md` for GitHub Copilot (9874)
- misc: credit removal (9877)
- Choose queue type and exchange type when creating missing queues (fix 9671) (9815)
- fix: prevent celery from hanging due to spawned greenlet errors in greenlet drainers (9371)
- Feature/disable prefetch fixes (9863)
- Add worker_eta_task_limit configuration to manage ETA task memory usage (9853)
- Update runner version in Docker workflow (9884)
- Prepare for (pre) release: v5.6.0b1 (9890)

.. _version-5.5.3:

5.5.4

=====
:release-date: 01 June, 2025
:release-by: Tomer Nosrati

What's Changed
~~~~~~~~~~~~~~

- chore: add Codecov test analytics (2290)
- Added DeepWiki to README (2295)
- redis.connection.ConnectionPool API change: get_connection does not accept arguments (2294)
- Update mongodb.txt to match celery version (2297)
- Update ubuntu version as per blacksmiths update (2301)
- Resolve logger warnings (2302)
- Fixed lint error from `kombu/transport/native_delayed_delivery.py` (2308)
- Prepare for release: v5.5.4 (2309)

.. _version-5.5.3:

5.5.3

=====

:release-date: 2025-06-01
:release-by: Tomer Nosrati

What's Changed
~~~~~~~~~~~~~~

- make the tests run on python 3.13 for gcs backend (9677)
- Added DeepWiki to README (9683)
- Limit redis to <=v5.2.1 to match Kombu (9693)
- Use EX_OK instead of literal zero (9684)
- Make wheel metadata reproducible (9687)
- let celery install from kombu dependencies for better align (9696)
- Fix stamping documentation to clarify stamped_headers key is optional in visitor methods (9697)
- Support apply_async without queue argument on quorum queues (9686)
- Updated rabbitmq doc about using quorum queues with task routes (9707)
- Add: Dumper Unit Test (9711)
- Add unit test for event.group_from (9709)
- refactor: add beat_cron_starting_deadline documentation warning (9712)
- fix: resolve issue 9569 by supporting distinct broker transport options for workers (9695)
- Fixes issue with retry callback arguments in DelayedDelivery (9708)
- get_exchange-unit-test (9710)
- ISSUE-9704: Update documentation of result_expires, filesystem backend is supported (9716)
- update to blacksmith ubuntu 24.04 (9717)
- Added unit tests for celery.utils.iso8601 (9725)
- Update introduction.rst docs (9728)
- Prepare for release: v5.5.3 (9732)

.. _version-5.5.2:

5.5.2

=====

:release-date: 2025-04-25
:release-by: Tomer Nosrati

What's Changed
~~~~~~~~~~~~~~

- Fix calculating remaining time across DST changes (9669)
- Remove `setup_logger` from COMPAT_MODULES (9668)
- Fix mongodb bullet and fix github links in contributions section (9672)
- Prepare for release: v5.5.2 (9675)

.. _version-5.5.1:

5.5.1

=====

:release-date: 2025-04-08
:release-by: Tomer Nosrati

What's Changed
~~~~~~~~~~~~~~

- Fixed "AttributeError: list object has no attribute strip" with quorum queues and failover brokers (9657)
- Prepare for release: v5.5.1 (9660)

.. _version-5.5.0:

5.5.0

=====

:release-date: 2025-03-31
:release-by: Tomer Nosrati

Celery v5.5.0 is now available.

Key Highlights
~~~~~~~~~~~~~~

See :ref:`whatsnew-5.5` for a complete overview or read the main highlights below.

Redis Broker Stability Improvements
-----------------------------------

Long-standing disconnection issues with the Redis broker have been identified and
resolved in Kombu 5.5.0, which is included with this release. These improvements
significantly enhance stability when using Redis as a broker.

Additionally, the Redis backend now has better exception handling with the new
``exception_safe_to_retry`` feature, which improves resilience during temporary
Redis connection issues. See :ref:`conf-redis-result-backend` for complete
documentation.

Contributed by `drienkop <https://github.com/drienkop>`_ in
`9614 <https://github.com/celery/celery/pull/9614>`_.

``pycurl`` replaced with ``urllib3``
------------------------------------

Replaced the :pypi:`pycurl` dependency with :pypi:`urllib3`.

We're monitoring the performance impact of this change and welcome feedback from users
who notice any significant differences in their environments.

Contributed by `spawn-guy <https://github.com/spawn-guy>`_ in Kombu
`2134 <https://github.com/celery/kombu/pull/2134>`_ and integrated in Celery via
`9526 <https://github.com/celery/celery/pull/9526>`_.

RabbitMQ Quorum Queues Support
------------------------------

Added support for RabbitMQ's new `Quorum Queues <https://www.rabbitmq.com/docs/quorum-queues>`_
feature, including compatibility with ETA tasks. This implementation has some limitations compared
to classic queues, so please refer to the documentation for details.

`Native Delayed Delivery <https://docs.particular.net/transports/rabbitmq/delayed-delivery>`_
is automatically enabled when quorum queues are detected to implement the ETA mechanism.

See :ref:`using-quorum-queues` for complete documentation.

Configuration options:

- :setting:`broker_native_delayed_delivery_queue_type`: Specifies the queue type for
delayed delivery (default: ``quorum``)
- :setting:`task_default_queue_type`: Sets the default queue type for tasks
(default: ``classic``)
- :setting:`worker_detect_quorum_queues`: Controls automatic detection of quorum
queues (default: ``True``)

Contributed in `9207 <https://github.com/celery/celery/pull/9207>`_,
`9121 <https://github.com/celery/celery/pull/9121>`_, and
`9599 <https://github.com/celery/celery/pull/9599>`_.

For details regarding the 404 errors, see
`New Year's Security Incident <https://github.com/celery/celery/discussions/9525>`_.

Soft Shutdown Mechanism
-----------------------

Soft shutdown is a time limited warm shutdown, initiated just before the cold shutdown.
The worker will allow :setting:`worker_soft_shutdown_timeout` seconds for all currently
executing tasks to finish before it terminates. If the time limit is reached, the worker
will initiate a cold shutdown and cancel all currently executing tasks.

This feature is particularly valuable when using brokers with visibility timeout
mechanisms, such as Redis or SQS. It allows the worker enough time to re-queue
tasks that were not completed before exiting, preventing task loss during worker
shutdown.

See :ref:`worker-stopping` for complete documentation on worker shutdown types.

Configuration options:

- :setting:`worker_soft_shutdown_timeout`: Sets the duration in seconds for the soft
shutdown period (default: ``0.0``, disabled)
- :setting:`worker_enable_soft_shutdown_on_idle`: Controls whether soft shutdown
should be enabled even when the worker is idle (default: ``False``)

Contributed by `Nusnus <https://github.com/Nusnus>`_ in
`9213 <https://github.com/celery/celery/pull/9213>`_,
`9231 <https://github.com/celery/celery/pull/9231>`_, and
`9238 <https://github.com/celery/celery/pull/9238>`_.

Pydantic Support
----------------

New native support for Pydantic models in tasks. This integration
allows you to leverage Pydantic's powerful data validation and serialization
capabilities directly in your Celery tasks.

Example usage:

.. code-block:: python

 from pydantic import BaseModel
 from celery import Celery

 app = Celery('tasks')

 class ArgModel(BaseModel):
     value: int

 class ReturnModel(BaseModel):
     value: str

 app.task(pydantic=True)
 def x(arg: ArgModel) -> ReturnModel:
      args/kwargs type hinted as Pydantic model will be converted
     assert isinstance(arg, ArgModel)

      The returned model will be converted to a dict automatically
     return ReturnModel(value=f"example: {arg.value}")

See :ref:`task-pydantic` for complete documentation.

Configuration options:

- ``pydantic=True``: Enables Pydantic integration for the task
- ``pydantic_strict=True/False``: Controls whether strict validation is enabled
(default: ``False``)
- ``pydantic_context={...}``: Provides additional context for validation
- ``pydantic_dump_kwargs={...}``: Customizes serialization behavior

Contributed by `mathiasertl <https://github.com/mathiasertl>`_ in
`9023 <https://github.com/celery/celery/pull/9023>`_,
`9319 <https://github.com/celery/celery/pull/9319>`_, and
`9393 <https://github.com/celery/celery/pull/9393>`_.

Google Pub/Sub Transport
------------------------

New support for Google Cloud Pub/Sub as a message transport, expanding
Celery's cloud integration options.

See :ref:`broker-gcpubsub` for complete documentation.

For the Google Pub/Sub support you have to install additional dependencies:

.. code-block:: console

 $ pip install "celery[gcpubsub]"

Then configure your Celery application to use the Google Pub/Sub transport:

.. code-block:: python

 broker_url = 'gcpubsub://projects/project-id'

Contributed by `haimjether <https://github.com/haimjether>`_ in
`9351 <https://github.com/celery/celery/pull/9351>`_.

Python 3.13 Support
-------------------

Official support for Python 3.13. All core dependencies have been
updated to ensure compatibility, including Kombu and py-amqp.

This release maintains compatibility with Python 3.8 through 3.13, as well as
PyPy 3.10+.

Contributed by `Nusnus <https://github.com/Nusnus>`_ in
`9309 <https://github.com/celery/celery/pull/9309>`_ and
`9350 <https://github.com/celery/celery/pull/9350>`_.

REMAP_SIGTERM Support
---------------------

The "REMAP_SIGTERM" feature, previously undocumented, has been tested, documented,
and is now officially supported. This feature allows you to remap the SIGTERM
signal to SIGQUIT, enabling you to initiate a soft or cold shutdown using TERM
instead of QUIT.

This is particularly useful in containerized environments where SIGTERM is the
standard signal for graceful termination.

See :ref:`Cold Shutdown documentation <worker-REMAP_SIGTERM>` for more info.

To enable this feature, set the environment variable:

.. code-block:: bash

 export REMAP_SIGTERM="SIGQUIT"

Contributed by `Nusnus <https://github.com/Nusnus>`_ in
`9461 <https://github.com/celery/celery/pull/9461>`_.

Database Backend Improvements
-----------------------------

New ``create_tables_at_setup`` option for the database
backend. This option controls when database tables are created, allowing for
non-lazy table creation.

By default (``create_tables_at_setup=True``), tables are created during backend
initialization. Setting this to ``False`` defers table creation until they are
actually needed, which can be useful in certain deployment scenarios where you want
more control over database schema management.

See :ref:`conf-database-result-backend` for complete documentation.

Configuration:

.. code-block:: python

 app.conf.result_backend = 'db+sqlite:///results.db'
 app.conf.database_create_tables_at_setup = False

Contributed by `MarcBresson <https://github.com/MarcBresson>`_ in
`9228 <https://github.com/celery/celery/pull/9228>`_.

What's Changed
~~~~~~~~~~~~~~

- (docs): use correct version celery v.5.4.x (8975)
- Update mypy to 1.10.0 (8977)
- Limit pymongo<4.7 when Python <= 3.10 due to breaking changes in 4.7 (8988)
- Bump pytest from 8.1.1 to 8.2.0 (8987)
- Update README to Include FastAPI in Framework Integration Section (8978)
- Clarify return values of ..._on_commit methods (8984)
- add kafka broker docs (8935)
- Limit pymongo<4.7 regardless of Python version (8999)
- Update pymongo[srv] requirement from <4.7,>=4.0.2 to >=4.0.2,<4.8 (9000)
- Update elasticsearch requirement from <=8.13.0 to <=8.13.1 (9004)
- security: SecureSerializer: support generic low-level serializers (8982)
- don't kill if pid same as file (8997) (8998)
- Update cryptography to 42.0.6 (9005)
- Bump cryptography from 42.0.6 to 42.0.7 (9009)
- don't kill if pid same as file (8997) (8998) (9007)
- Added -vv to unit, integration and smoke tests (9014)
- SecuritySerializer: ensure pack separator will not be conflicted with serialized fields (9010)
- Update sphinx-click to 5.2.2 (9025)
- Bump sphinx-click from 5.2.2 to 6.0.0 (9029)
- Fix a typo to display the help message in first-steps-with-django (9036)
- Pinned requests to v2.31.0 due to docker-py bug 3256 (9039)
- Fix certificate validity check (9037)
- Revert "Pinned requests to v2.31.0 due to docker-py bug 3256" (9043)
- Bump pytest from 8.2.0 to 8.2.1 (9035)
- Update elasticsearch requirement from <=8.13.1 to <=8.13.2 (9045)
- Fix detection of custom task set as class attribute with Django (9038)
- Update elastic-transport requirement from <=8.13.0 to <=8.13.1 (9050)
- Bump pycouchdb from 1.14.2 to 1.16.0 (9052)
- Update pytest to 8.2.2 (9060)
- Bump cryptography from 42.0.7 to 42.0.8 (9061)
- Update elasticsearch requirement from <=8.13.2 to <=8.14.0 (9069)
- [enhance feature] Crontab schedule: allow using month names (9068)
- Enhance tox environment: [testenv:clean] (9072)
- Clarify docs about Reserve one task at a time (9073)
- GCS docs fixes (9075)
- Use hub.remove_writer instead of hub.remove for write fds (4185) (9055)
- Class method to process crontab string (9079)
- Fixed smoke tests env bug when using integration tasks that rely on Redis (9090)
- Bugfix - a task will run multiple times when chaining chains with groups (9021)
- Bump mypy from 1.10.0 to 1.10.1 (9096)
- Don't add a separator to global_keyprefix if it already has one (9080)
- Update pymongo[srv] requirement from <4.8,>=4.0.2 to >=4.0.2,<4.9 (9111)
- Added missing import in examples for Django (9099)
- Bump Kombu to v5.4.0rc1 (9117)
- Removed skipping Redis in t/smoke/tests/test_consumer.py tests (9118)
- Update pytest-subtests to 0.13.0 (9120)
- Increased smoke tests CI timeout (9122)
- Bump Kombu to v5.4.0rc2 (9127)
- Update zstandard to 0.23.0 (9129)
- Update pytest-subtests to 0.13.1 (9130)
- Changed retry to tenacity in smoke tests (9133)
- Bump mypy from 1.10.1 to 1.11.0 (9135)
- Update cryptography to 43.0.0 (9138)
- Update pytest to 8.3.1 (9137)
- Added support for Quorum Queues (9121)
- Bump Kombu to v5.4.0rc3 (9139)
- Cleanup in Changelog.rst (9141)
- Update Django docs for CELERY_CACHE_BACKEND (9143)
- Added missing docs to previous releases (9144)
- Fixed a few documentation build warnings (9145)
- docs(README): link invalid (9148)
- Prepare for (pre) release: v5.5.0b1 (9146)
- Bump pytest from 8.3.1 to 8.3.2 (9153)
- Remove setuptools deprecated test command from setup.py (9159)
- Pin pre-commit to latest version 3.8.0 from Python 3.9 (9156)
- Bump mypy from 1.11.0 to 1.11.1 (9164)
- Change "docker-compose" to "docker compose" in Makefile (9169)
- update python versions and docker compose (9171)
- Add support for Pydantic model validation/serialization (fixes 8751) (9023)
- Allow local dynamodb to be installed on another host than localhost (8965)
- Terminate job implementation for gevent concurrency backend (9083)
- Bump Kombu to v5.4.0 (9177)
- Add check for soft_time_limit and time_limit values (9173)
- Prepare for (pre) release: v5.5.0b2 (9178)
- Added SQS (localstack) broker to canvas smoke tests (9179)
- Pin elastic-transport to <= latest version 8.15.0 (9182)
- Update elasticsearch requirement from <=8.14.0 to <=8.15.0 (9186)
- improve formatting (9188)
- Add basic helm chart for celery (9181)
- Update kafka.rst (9194)
- Update pytest-order to 1.3.0 (9198)
- Update mypy to 1.11.2 (9206)
- all added to routes (9204)
- Fix typos discovered by codespell (9212)
- Use tzdata extras with zoneinfo backports (8286)
- Use `docker compose` in Contributing's doc build section (9219)
- Failing test for issue 9119 (9215)
- Fix date_done timezone issue (8385)
- CI Fixes to smoke tests (9223)
- fix: passes current request context when pushing to request_stack (9208)
- Fix broken link in the Using RabbitMQ docs page (9226)
- Added Soft Shutdown Mechanism (9213)
- Added worker_enable_soft_shutdown_on_idle (9231)
- Bump cryptography from 43.0.0 to 43.0.1 (9233)
- Added docs regarding the relevancy of soft shutdown and ETA tasks (9238)
- Show broker_connection_retry_on_startup warning only if it evaluates as False (9227)
- Fixed docker-docs CI failure (9240)
- Added docker cleanup auto-fixture to improve smoke tests stability (9243)
- print is not thread-safe, so should not be used in signal handler (9222)
- Prepare for (pre) release: v5.5.0b3 (9244)
- Correct the error description in exception message when validate soft_time_limit (9246)
- Update msgpack to 1.1.0 (9249)
- chore(utils/time.py): rename `_is_ambigious` -> `_is_ambiguous` (9248)
- Reduced Smoke Tests to min/max supported python (3.8/3.12) (9252)
- Update pytest to 8.3.3 (9253)
- Update elasticsearch requirement from <=8.15.0 to <=8.15.1 (9255)
- update mongodb without deprecated `[srv]` extra requirement (9258)
- blacksmith.sh: Migrate workflows to Blacksmith (9261)
- Fixes 9119: inject dispatch_uid for retry-wrapped receivers (9247)
- Run all smoke tests CI jobs together (9263)
- Improve documentation on visibility timeout (9264)
- Bump pytest-celery to 1.1.2 (9267)
- Added missing "app.conf.visibility_timeout" in smoke tests (9266)
- Improved stability with t/smoke/tests/test_consumer.py (9268)
- Improved Redis container stability in the smoke tests (9271)
- Disabled EXHAUST_MEMORY tests in Smoke-tasks (9272)
- Marked xfail for test_reducing_prefetch_count with Redis - flaky test (9273)
- Fixed pypy unit tests random failures in the CI (9275)
- Fixed more pypy unit tests random failures in the CI (9278)
- Fix Redis container from aborting randomly (9276)
- Run Integration & Smoke CI tests together after unit tests passes (9280)
- Added "loglevel verbose" to Redis containers in smoke tests (9282)
- Fixed Redis error in the smoke tests: "Possible SECURITY ATTACK detected" (9284)
- Refactored the smoke tests github workflow (9285)
- Increased --reruns 3->4 in smoke tests (9286)
- Improve stability of smoke tests (CI and Local) (9287)
- Fixed Smoke tests CI "test-case" lables (specific instead of general) (9288)
- Use assert_log_exists instead of wait_for_log in worker smoke tests (9290)
- Optimized t/smoke/tests/test_worker.py (9291)
- Enable smoke tests dockers check before each test starts (9292)
- Relaxed smoke tests flaky tests mechanism (9293)
- Updated quorum queue detection to handle multiple broker instances (9294)
- Non-lazy table creation for database backend (9228)
- Pin pymongo to latest version 4.9 (9297)
- Bump pymongo from 4.9 to 4.9.1 (9298)
- Bump Kombu to v5.4.2 (9304)
- Use rabbitmq:3 in stamping smoke tests (9307)
- Bump pytest-celery to 1.1.3 (9308)
- Added Python 3.13 Support (9309)
- Add log when global qos is disabled (9296)
- Added official release docs (whatsnew) for v5.5 (9312)
- Enable Codespell autofix (9313)
- Pydantic typehints: Fix optional, allow generics (9319)
- Prepare for (pre) release: v5.5.0b4 (9322)
- Added Blacksmith.sh to the Sponsors section in the README (9323)
- Revert "Added Blacksmith.sh to the Sponsors section in the README" (9324)
- Added Blacksmith.sh to the Sponsors section in the README (9325)
- Added missing " |oc-sponsor-3|” in README (9326)
- Use Blacksmith SVG logo (9327)
- Updated Blacksmith SVG logo (9328)
- Revert "Updated Blacksmith SVG logo" (9329)
- Update pymongo to 4.10.0 (9330)
- Update pymongo to 4.10.1 (9332)
- Update user guide to recommend delay_on_commit (9333)
- Pin pre-commit to latest version 4.0.0 (Python 3.9+) (9334)
- Update ephem to 4.1.6 (9336)
- Updated Blacksmith SVG logo (9337)
- Prepare for (pre) release: v5.5.0rc1 (9341)
- Fix: Treat dbm.error as a corrupted schedule file (9331)
- Pin pre-commit to latest version 4.0.1 (9343)
- Added Python 3.13 to Dockerfiles (9350)
- Skip test_pool_restart_import_modules on PyPy due to test issue (9352)
- Update elastic-transport requirement from <=8.15.0 to <=8.15.1 (9347)
- added dragonfly logo (9353)
- Update README.rst (9354)
- Update README.rst (9355)
- Update mypy to 1.12.0 (9356)
- Bump Kombu to v5.5.0rc1 (9357)
- Fix `celery --loader` option parsing (9361)
- Add support for Google Pub/Sub transport (9351)
- Add native incr support for GCSBackend (9302)
- fix(perform_pending_operations): prevent task duplication on shutdown… (9348)
- Update grpcio to 1.67.0 (9365)
- Update google-cloud-firestore to 2.19.0 (9364)
- Annotate celery/utils/timer2.py (9362)
- Update cryptography to 43.0.3 (9366)
- Update mypy to 1.12.1 (9368)
- Bump mypy from 1.12.1 to 1.13.0 (9373)
- Pass timeout and confirm_timeout to producer.publish() (9374)
- Bump Kombu to v5.5.0rc2 (9382)
- Bump pytest-cov from 5.0.0 to 6.0.0 (9388)
- default strict to False for pydantic tasks (9393)
- Only log that global QoS is disabled if using amqp (9395)
- chore: update sponsorship logo (9398)
- Allow custom hostname for celery_worker in celery.contrib.pytest / celery.contrib.testing.worker (9405)
- Removed docker-docs from CI (optional job, malfunctioning) (9406)
- Added a utility to format changelogs from the auto-generated GitHub release notes (9408)
- Bump codecov/codecov-action from 4 to 5 (9412)
- Update elasticsearch requirement from <=8.15.1 to <=8.16.0 (9410)
- Native Delayed Delivery in RabbitMQ (9207)
- Prepare for (pre) release: v5.5.0rc2 (9416)
- Document usage of broker_native_delayed_delivery_queue_type (9419)
- Adjust section in what's new document regarding quorum queues support (9420)
- Update pytest-rerunfailures to 15.0 (9422)
- Document group unrolling (9421)
- fix small typo acces -> access (9434)
- Update cryptography to 44.0.0 (9437)
- Added pypy to Dockerfile (9438)
- Skipped flaky tests on pypy (all pass after ~10 reruns) (9439)
- Allowing managed credentials for azureblockblob (9430)
- Allow passing Celery objects to the Click entry point (9426)
- support Request termination for gevent (9440)
- Prevent event_mask from being overwritten. (9432)
- Update pytest to 8.3.4 (9444)
- Prepare for (pre) release: v5.5.0rc3 (9450)
- Bugfix: SIGQUIT not initiating cold shutdown when `task_acks_late=False` (9461)
- Fixed pycurl dep with Python 3.8 (9471)
- Update elasticsearch requirement from <=8.16.0 to <=8.17.0 (9469)
- Bump pytest-subtests from 0.13.1 to 0.14.1 (9459)
- documentation: Added a type annotation to the periodic task example (9473)
- Prepare for (pre) release: v5.5.0rc4 (9474)
- Bump mypy from 1.13.0 to 1.14.0 (9476)
- Fix cassandra backend port settings not working (9465)
- Unroll group when a group with a single item is chained using the | operator (9456)
- fix(django): catch the right error when trying to close db connection (9392)
- Replacing a task with a chain which contains a group now returns a result instead of hanging (9484)
- Avoid using a group of one as it is now unrolled into a chain (9510)
- Link to the correct IRC network (9509)
- Bump pytest-github-actions-annotate-failures from 0.2.0 to 0.3.0 (9504)
- Update canvas.rst to fix output result from chain object (9502)
- Unauthorized Changes Cleanup (9528)
- [RE-APPROVED] fix(django): catch the right error when trying to close db connection (9529)
- [RE-APPROVED] Link to the correct IRC network (9531)
- [RE-APPROVED] Update canvas.rst to fix output result from chain object (9532)
- Update test-ci-base.txt (9539)
- Update install-pyenv.sh (9540)
- Update elasticsearch requirement from <=8.17.0 to <=8.17.1 (9518)
- Bump google-cloud-firestore from 2.19.0 to 2.20.0 (9493)
- Bump mypy from 1.14.0 to 1.14.1 (9483)
- Update elastic-transport requirement from <=8.15.1 to <=8.17.0 (9490)
- Update Dockerfile by adding missing Python version 3.13 (9549)
- Fix typo for default of sig (9495)
- fix(crontab): resolve constructor type conflicts (9551)
- worker_max_memory_per_child: kilobyte is 1024 bytes (9553)
- Fix formatting in quorum queue docs (9555)
- Bump cryptography from 44.0.0 to 44.0.1 (9556)
- Fix the send_task method when detecting if the native delayed delivery approach is available (9552)
- Reverted PR 7814 & minor code improvement (9494)
- Improved donation and sponsorship visibility (9558)
- Updated the Getting Help section, replacing deprecated with new resources (9559)
- Fixed django example (9562)
- Bump Kombu to v5.5.0rc3 (9564)
- Bump ephem from 4.1.6 to 4.2 (9565)
- Bump pytest-celery to v1.2.0 (9568)
- Remove dependency on `pycurl` (9526)
- Set TestWorkController.__test__ (9574)
- Fixed bug when revoking by stamped headers a stamp that does not exist (9575)
- Canvas Stamping Doc Fixes (9578)
- Bugfix: Chord with a chord in header doesn't invoke error callback on inner chord header failure (default config) (9580)
- Prepare for (pre) release: v5.5.0rc5 (9582)
- Bump google-cloud-firestore from 2.20.0 to 2.20.1 (9584)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants