Celery v5.4.0 and v5.3.x have consistently focused on enhancing the overall QA, both internally and externally.
This effort led to the new pytest-celery v1.0.0 release, developed concurrently with v5.3.0 & v5.4.0.
This release introduces two significant QA enhancements:
Smoke Tests: A new layer of automatic tests has been added to Celery's standard CI. These tests are designed to handle production scenarios and complex conditions efficiently. While new contributions will not be halted due to the lack of smoke tests, we will request smoke tests for advanced changes where appropriate.
Standalone Bug Report Script: The new pytest-celery plugin now allows for encapsulating a complete Celery dockerized setup within a single pytest script. Incorporating these into new bug reports will enable us to reproduce reported bugs deterministically, potentially speeding up the resolution process.
Contrary to the positive developments above, there have been numerous reports about issues with the Redis broker malfunctioning upon restarts and disconnections. Our initial attempts to resolve this were not successful (#8796).
With our enhanced QA capabilities, we are now prepared to address the core issue with Redis (as a broker) again.
The rest of the changes for this release are grouped below, with the changes from the latest release candidate listed at the end.
Celery v5.4.0 and v5.3.x have consistently focused on enhancing the overall QA, both internally and externally.
This effort led to the new pytest-celery v1.0.0 release, developed concurrently with v5.3.0 & v5.4.0.
This release introduces two significant QA enhancements:
Smoke Tests: A new layer of automatic tests has been added to Celery's standard CI. These tests are designed to handle production scenarios and complex conditions efficiently. While new contributions will not be halted due to the lack of smoke tests, we will request smoke tests for advanced changes where appropriate.
Standalone Bug Report Script <https://docs.celeryq.dev/projects/pytest-celery/en/latest/userguide/celery-bug-report.html>_: The new pytest-celery plugin now allows for encapsulating a complete Celery dockerized setup within a single pytest script. Incorporating these into new bug reports will enable us to reproduce reported bugs deterministically, potentially speeding up the resolution process.
Contrary to the positive developments above, there have been numerous reports about issues with the Redis broker malfunctioning
upon restarts and disconnections. Our initial attempts to resolve this were not successful (#8796).
With our enhanced QA capabilities, we are now prepared to address the core issue with Redis (as a broker) again.
The rest of the changes for this release are grouped below, with the changes from the latest release candidate listed at the end.
LP#2059910: The minimum CPU architecture for the Linux x86 binary wheels was set back to
"core2", but with SSE 4.2 enabled.
LP#2059977: Element.iterfind("//absolute_path") failed with a SyntaxError
where it should have issued a warning.
GH#416: The documentation build was using the non-standard which command.
Patch by Michał Górny.
5.2.0 (2024-03-30)
Other changes
LP#1958539: The lxml.html.clean implementation suffered from several (only if used)
security issues in the past and was now extracted into a separate library:
Projects that use lxml without "lxml.html.clean" will not notice any difference,
except that they won't have potentially vulnerable code installed.
The module is available as an "extra" setuptools dependency "lxml[html_clean]",
so that Projects that need "lxml.html.clean" will need to switch their requirements
from "lxml" to "lxml[html_clean]", or install the new library themselves.
The minimum CPU architecture for the Linux x86 binary wheels was upgraded to
"sandybridge" (launched 2011), and glibc 2.28 / gcc 12 (manylinux_2_28) wheels were added.
Built with Cython 3.0.10.
5.1.2 (2024-??-??)
Bugs fixed
LP#2059977: Element.iterfind("//absolute_path") failed with a SyntaxError
where it should have issued a warning.
All postprocessors are now run on heading content.
Footnote references are now stripped from heading content. Fixes #660.
A more robust striptags is provided to convert headings to plain text.
Unlike, the markupsafe implementation, HTML entities are not unescaped.
The plain text name, rich html, and unescaped raw data-toc-label are
saved to toc_tokens, allowing users to access the full rich text content of
the headings directly from toc_tokens.
The value of data-toc-label is sanitized separate from heading content
before being written to name. This fixes a bug which allowed markup through
in certain circumstances. To access the raw unsanitized data, retrieve the
value from token['data-toc-label'] directly.
An html.unescape call is made just prior to calling slugify so that
slugify only operates on Unicode characters. Note that html.unescape is
not run on name, html, or data-toc-label.
The functions get_name and stashedHTML2text defined in the toc extension
are both deprecated. Instead, third party extensions should use some
combination of the new functions run_postprocessors, render_inner_html and
striptags.
Fixed
Include scripts/*.py in the generated source tarballs (#1430).
Ensure lines after heading in loose list are properly detabbed (#1443).
Give smarty tree processor higher priority than toc (#1440).
Permit carets (^) and square brackets (]) but explicitly exclude
backslashes (\) from abbreviations (#1444).
In attribute lists (attr_list, fenced_code), quoted attribute values are
now allowed to contain curly braces (}) (#1414).
Release 3.5.2
Fixed
Fix type annotations for convertFile - it accepts only bytes-based buffers.
Also remove legacy checks from Python 2 (#1400)
Remove legacy import needed only in Python 2 (#1403)
Fix typo that left the attribute AdmonitionProcessor.content_indent unset
(#1404)
Fix edge-case crash in InlineProcessor with AtomicString (#1406).
Fix edge-case crash in codehilite with an empty code tag (#1405).
Improve and expand type annotations in the code base (#1401).
All postprocessors are now run on heading content.
Footnote references are now stripped from heading content. Fixes #660.
A more robust striptags is provided to convert headings to plain text.
Unlike, the markupsafe implementation, HTML entities are not unescaped.
The plain text name, rich html, and unescaped raw data-toc-label are
saved to toc_tokens, allowing users to access the full rich text content of
the headings directly from toc_tokens.
The value of data-toc-label is sanitized separate from heading content
before being written to name. This fixes a bug which allowed markup through
in certain circumstances. To access the raw unsanitized data, retrieve the
value from token['data-toc-label'] directly.
An html.unescape call is made just prior to calling slugify so that
slugify only operates on Unicode characters. Note that html.unescape is
not run on name, html, or data-toc-label.
The functions get_name and stashedHTML2text defined in the toc extension
are both deprecated. Instead, third party extensions should use some
combination of the new functions run_postprocessors, render_inner_html and
striptags.
Fixed
Include scripts/*.py in the generated source tarballs (#1430).
Ensure lines after heading in loose list are properly detabbed (#1443).
Give smarty tree processor higher priority than toc (#1440).
Permit carets (^) and square brackets (]) but explicitly exclude
backslashes (\) from abbreviations (#1444).
In attribute lists (attr_list, fenced_code), quoted attribute values are
now allowed to contain curly braces (}) (#1414).
[3.5.2] -- 2024-01-10
Fixed
Fix type annotations for convertFile - it accepts only bytes-based buffers.
Also remove legacy checks from Python 2 (#1400)
Remove legacy import needed only in Python 2 (#1403)
Fix typo that left the attribute AdmonitionProcessor.content_indent unset
(#1404)
Fix edge-case crash in InlineProcessor with AtomicString (#1406).
Fix edge-case crash in codehilite with an empty code tag (#1405).
Improve and expand type annotations in the code base (#1401).
Add support for integer, floating point, boolean NumPy scalar types__
(:ticket:[#332](https://github.com/psycopg/psycopg/issues/332)).
Add !timeout and !stop_after parameters to Connection.notifies()
(:ticket:340).
Add :ref:raw-query-cursors to execute queries using placeholders in
PostgreSQL format ($1, $2...) (:ticket:[#560](https://github.com/psycopg/psycopg/issues/560)).
Add psycopg.capabilities object to :ref:inspect the libpq capabilities <capabilities> (:ticket:[#772](https://github.com/psycopg/psycopg/issues/772)).
Add ~rows.scalar_row to return scalar values from a query (:ticket:[#723](https://github.com/psycopg/psycopg/issues/723)).
Prepared statements are now :ref:compatible with PgBouncer <pgbouncer>.
(:ticket:[#589](https://github.com/psycopg/psycopg/issues/589)).
Add ~Connection.set_autocommit() on sync connections, and similar
transaction control methods available on the async connections.
Add support for libpq functions to close prepared statements and portals
introduced in libpq v17 (:ticket:[#603](https://github.com/psycopg/psycopg/issues/603)).
Add support for libpq encrypted and non-blocking query cancellation
functions introduced in libpq v17 (:ticket:[#754](https://github.com/psycopg/psycopg/issues/754)).
The !context parameter of sql objects ~sql.Composable.as_string() and
~sql.Composable.as_bytes() methods is now optional (:ticket:[#716](https://github.com/psycopg/psycopg/issues/716)).
Disable receiving more than one result on the same cursor in pipeline mode,
to iterate through ~Cursor.nextset(). The behaviour was different than
in non-pipeline mode and not totally reliable (:ticket:[#604](https://github.com/psycopg/psycopg/issues/604)).
The Cursor now only preserves the results set of the last
~Cursor.execute(), consistently with non-pipeline mode.
Add ~Connection.cancel_safe() for encrypted and non-blocking cancellation
If possible, use such method internally upon KeyboardInterrupt and Copy
termination (:ticket:[#754](https://github.com/psycopg/psycopg/issues/754)).
Add support for libpq function to retrieve results in chunks introduced in
libpq v17 (:ticket:[#793](https://github.com/psycopg/psycopg/issues/793)).
We’ve just uploaded mypy 1.10 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:
python3 -m pip install -U mypy
You can read the full documentation for this release on Read the Docs.
Support TypeIs (PEP 742)
Mypy now supports TypeIs (PEP 742), which allows
functions to narrow the type of a value, similar to isinstance(). Unlike TypeGuard,
TypeIs can narrow in both the if and else branches of an if statement:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the python-dependencies group with 10 updates:
5.3.1
5.4.0
4.2.11
5.0.4
3.14.0
3.15.1
5.1.0
5.2.1
3.4.3
3.6
3.1.8
3.1.18
0.9.9
1.0.0
3.0.1
3.0.2
24.4.0
24.4.2
1.9.0
1.10.0
Updates
celery
from 5.3.1 to 5.4.0Release notes
Sourced from celery's releases.
... (truncated)
Changelog
Sourced from celery's changelog.
... (truncated)
Commits
92514ac
Bump version: 5.4.0rc2 → 5.4.0 (#8974)a5accc2
Added changelog for v5.4.0 (#8973)d0aae65
Added a checklist item for using pytest-celery in a bug report (#8971)54df3e9
Added documentation to the smoke tests infra (#8970)3e018cb
Bump pytest-order from 1.2.0 to 1.2.1 (#8941)8ad421c
Bump pytest-celery to v1.0.0 (#8962)2acc150
Doc: Enhance "Testing with Celery" section (#8955)afeeff8
Update optimizing.rst (#8945)481cf8e
[pre-commit.ci] pre-commit autoupdate (#8950)6e50deb
Bump pytest-celery to 1.0.0rc3 (#8946)Updates
django
from 4.2.11 to 5.0.4Commits
476d7c5
[5.0.x] Bumped version for 5.0.4 release.e4a0644
[5.0.x] Added release date for 5.0.4.fead2dd
[5.0.x] Fixed #35336 -- Addressed crash when adding a GeneratedField with % l...14ab15d
[5.0.x] Fixed #35344, Refs #34838 -- Corrected output_field of resolved colum...7b144e7
[5.0.x] Restored django.db.models.F import in final code snippet added at the...3264e88
[5.0.x] Fixed typo in docs/topics/signals.txt.345e3cf
[5.0.x] Fixed #35329 -- Fixed migrations crash when adding partial unique con...71368b6
[5.0.x] Added RowNumber() link in Rank() docs.8fd953f
[5.0.x] Fixed #35273 -- Fixed rendering AdminFileWidget's attributes.710ca57
[5.0.x] Fixed #25595 -- Doc'd that URLValidator rejects file:// URIs without ...Updates
djangorestframework
from 3.14.0 to 3.15.1Commits
3285916
Version 3.15.1 (#9339)eb361d2
SearchFilter.get_search_terms returns list. (#9338)400b4c5
Revert "Fix NamespaceVersioning ignoring DEFAULT_VERSION on non-None namespac...4ef3aaf
Revert #9030 (#9333)4f10c4e
Revert "Fix Respectcan_read_model
permission in DjangoModelPermissions (#8...a4d5807
Revert "feat: Add some changes to ValidationError to support django style vad...da78a14
Revert "Re-prefetch related objects after updating (#8043)" (#9327)0e4ed81
Revert "feat: Add some changes to ValidationError to support django style vad...56a5b35
Add drf-sendables to third-party-packages.md (#9261)d7c8dcf
Revert PR that adds autocomplete_fields to TokenAdmin, as this break some use...Updates
lxml
from 5.1.0 to 5.2.1Changelog
Sourced from lxml's changelog.
... (truncated)
Commits
47f94ff
Update changelog.932a41e
Update macOS build isntructions.888153a
Merge branch 'lxml-5.1'fcf00fb
Update changelog.76fd4f9
Fix SyntaxError in Element.iterfind() that should have been a warning.4faebe3
Fix test.9b8e36d
Fix SyntaxError in Element.iterfind() that should have been a warning.175c66a
Build: Reduce the number of build jobs by disabling some old targets.06ad31c
Prepare release of 5.2.1.24dafd3
Build: Fix Makefile to work on systems withoutwhich(1)
(GH-416)Updates
markdown
from 3.4.3 to 3.6Release notes
Sourced from markdown's releases.
... (truncated)
Changelog
Sourced from markdown's changelog.
... (truncated)
Commits
e524b8f
Bump version to 3.63d8afc6
Allow attr_list quoted values to contain curly braces9edba85
Refactor abbr escapinge4ab4a6
Refactor TOC sanitationa18765c
Explicitly omit carot and backslash from abbr421f1e8
Give smarty tree processor higher priority than tocc334a3e
Ensure lines after heading in loose list are properly detabbedea92856
Update the license template so GitHub can detect ita2effd6
Disable mkdocstrings show_symbol_type_toc option to work around searching iss...91f9a12
Restore Attribute symbol type in mkdocstrings templateUpdates
psycopg
from 3.1.8 to 3.1.18Changelog
Sourced from psycopg's changelog.
... (truncated)
Commits
8585a23
chore: bump psycopg package version to 3.1.18ab646b7
fix(c): drop spurious loop break in pipeline_communicatebebfe97
chore: bump cibuildwheel version89394a6
chore: bump checkout action to v4ed579e5
docs: fix tickets formatd4a4e8e
Merge branch 'musl-ctypes' into maint-3.18bc51e6
docs: mention musl-ctypes workaround in news fileafb040a
fix: addlibc.so
fallback for musl systems to the ctypes impl06ef0d9
test: drop ineffective marker on fixtureb955118
Merge branch 'fix-interval-overflow' into maint-3.1Updates
solrpy
from 0.9.9 to 1.0.0Commits
Updates
werkzeug
from 3.0.1 to 3.0.2Release notes
Sourced from werkzeug's releases.
Changelog
Sourced from werkzeug's changelog.
Commits
d70dcea
Release version 3.0.2ad703fd
Bump the slsa-github-generator action version5741398
Raise an error if the converter arguments cannot be parsed0b47237
Fix issue with repeated-slash requests redirectingf516c40
Handle TypeError in TypeConversionDict4c09d1b
Add missing CHANGES entry for #28327ab3823
Fix: Useissubclass
instead ofisinstance
4e5bdca
Make the exception tests more robust70ad4d6
Use more precise type for formparser.MultiPartParser.parse return6eafc0e
Merge branch '2.3.x' into 3.0.xUpdates
black
from 24.4.0 to 24.4.2Release notes
Sourced from black's releases.
Changelog
Sourced from black's changelog.
Commits
3702ba2
Prepare release 24.4.2 (#4335)e4aaa8a
Fix incorrect f-string tokenization (#4332)ba88fc3
Simplify string tokenization regexes (#4331)5683242
New release templatee7fb048
Prepare release 24.4.1 (#4328)3f0f8f1
Support PEP 696 (#4327)2f88085
Github Action: Directly install from repo ifexport-subst
is skipped (#4313)12ce3db
Move changelog entry to right section (#4326)1354be2
Add support to style function definitions with newlines before function stubs...f4b644b
Prevent wrapping of multiline fstrings in parens (#4325)Updates
mypy
from 1.9.0 to 1.10.0Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
3faf0fc
Remove +dev for version for release 1.10a5998d2
Update CHANGELOG.md (#17159)62ea5b0
Various updates to changelog for 1.10 (#17158)2f0864c
Update CHANGELOG.md with draft for release 1.10 (#17150)e1443bb
fix: incorrect returned type of access descriptors on unions of types (#16604)5161ac2
Sync typeshed (#17124)e2fc1f2
Fix crash when expanding invalid Unpack in aCallable
alias (#17028)3ff6e47
Docs: docstrings in checker.py, ast_helpers.py (#16908)732d98e
Fix string formatting for string enums (#16555)8019010
Narrow individual items when matching a tuple to a sequence pattern (#16905)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show