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

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_dependencies field to projects. When this field is set to True, 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.

  • The sample pwclientrc files found at /project/<project>/pwclientrc will now use the rest backend by default if the REST API is enabled. In addition, it is now possible to download a sample pwclientrc file even if the XML-RPC API backend is disabled.

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).