Unreleased
v3.2.0-55
New Features
Series may now depend on each other. Patchwork clients may use this information to download and apply the dependencies when applying a series. This dependency relationship is shallow; the dependencies of a dependency should not be applied. Multiple dependencies are allowed. The order they are applied in is the order they appear in the content from top to bottom.
Patchwork will now look for “Depends-on” entries when parsing mails. This may be done by referring to a patch or cover letter message ID in the commit message of a patch or the cover letter content:
Depends-on: <20240726221429.221611-1-user@example.com>Alternatively, the web URL of the patch or series may be given:Depends-on: http://patchwork.example.com/project/test/list?series=1111
Django 5.2 is now supported.
Django 6.0 is now supported.
Python 3.14 is now supported.
Upgrade Notes
Django 4.2, 5.0 and 5.1 are no longer supported. These releases are no longer supported upstream and most distributions provide a newer version.
Python 3.9 and 3.10 are no longer supported. These releases are no longer supported upstream and most distributions provide a newer version.
Bug Fixes
Fix a race condition in SeriesReference creation during concurrent email delivery.
Wrap the entire
parse_mail()function in a single database transaction to prevent partial state from being visible to concurrent readers.
API Changes
The API version has been updated to v1.4.
Add the “dependencies” and “dependents” fields to the series detail view.
Add the
show_dependenciesfield to projects. When this field is set toTrue, patch dependencies will be shown for any patches and cover letters received for that project.
Other Notes
The patch diff color palette was modified to make it more accessible for all users, including those with common color deficiencies.
v3.2.0
Prelude
This release is another smaller release that focuses on bumping the supported dependencies and updates the test matrix in advance of future, larger changes. As always, recent versions of Python (3.12, 3.13) and Django (5.0, 5.1) are now supported, while support for older Python (3.7, 3.8) and Django (3.2, 4.0, 4.1) versions has been removed. More information is included below.
New Features
The version of Django used is now checked on start-up. This can help avoid issues where deployers forget to update their Django version and see odd behavior as a result.
Django 4.2 is now supported.
Django 5.0 is now supported.
Django 5.1 is now supported.
The sample
pwclientrcfiles found at/project/<project>/pwclientrcwill now use therestbackend by default if the REST API is enabled. In addition, it is now possible to download a samplepwclientrcfile even if the XML-RPC API backend is disabled.
Python 3.12 is now supported.
Python 3.13 is now supported.
Upgrade Notes
Django 4.0 is no longer supported. It is no longer supported upstream and most distributions provide a newer version.
Django 3.2 and 4.1 are no longer supported. Both releases are no longer supported upstream and most distributions provide a newer version.
Python 3.8 is no longer supported. It is no longer supported upstream and most distributions provide a newer version.
Python 3.7 is no longer supported. It is no longer supported upstream and most distributions provide a newer version.
Bug Fixes
Message IDs containing slashes will now have these slashes percent-encoded. Previously, attempts to access submissions whose Message IDs contained slashes would result in a HTTP 404 on some Django versions. If you wish to access such a submission, you must now percent-encode the slashes first. For example, to access a patch, cover letter or comment with the following message ID:
You should now use:
Both the web UI and REST API have been updated to generate URLs in this format so this should only be noticable to users manually generating such URLs.
Fix an issue whereby comment-based events would cause a HTTP 500 error for the events API (
/api/events).