Patchwork is a web-based patch tracking system designed to facilitate the contribution and management of contributions to an open-source project.
Clone or download
stephenfin Don't passthrough 'Content-Type: multipart/signed' header
We don't GPG signatures, therefore this header is incorrect. Stop
passing it through.

Test for the other dropped header are also included.

Signed-off-by: Stephen Finucane <>
Acked-by: Veronika Kabatova <>
Closes: #221
Latest commit 2209369 Nov 4, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs docs: Fix design doc Oct 30, 2018
htdocs views: Provide a way to view, (re)generate tokens Jun 14, 2017
lib models: Convert Series-Patch relationship to 1:N Oct 17, 2018
patchwork Don't passthrough 'Content-Type: multipart/signed' header Nov 12, 2018
releasenotes docs: Update links for django-rest-framework 3.7, 3.8 Oct 18, 2018
templates htdocs: Add clipboard.js Jun 14, 2017
tools Update license header Sep 19, 2018
.dockerignore tools: drop vagrant Feb 27, 2018
.gitignore Add support for 'django-dbbackup' Oct 10, 2018
.landscape.yml Add configuration file Sep 7, 2016
.mailmap Update mailmap with new email Sep 25, 2016
.travis.yml travis: Use consistent quote style Oct 30, 2018
CONTRIBUTING.rst docs: Note new requirement to include a SPDX line Sep 19, 2018
COPYING COPYING: Add the text of the GPLv2 license Nov 10, 2014
README.rst README: Note latest version of requirements Oct 30, 2018
docker-compose-pg.yml docker-compose: Re-add 'PGPASSWORD' to correct section May 3, 2018
docker-compose.yml docker: Add 'depends_on' Apr 26, 2018 Update documentation and default settings to suit patchwork deploymen… May 28, 2015
requirements-dev.txt Update django from 2.1.2 to 2.1.3 Nov 2, 2018
requirements-prod.txt Update psycopg2-binary from 2.7.5 to 2.7.6 Nov 9, 2018
requirements-test.txt Update psycopg2-binary from 2.7.5 to 2.7.6 Nov 9, 2018
tox.ini tox: Disable W504 ("line break after binary operator") Oct 26, 2018



Requirements Status Codecov Code Health Build Status Documentation Status

Patchwork is a patch tracking system for community-based projects. It is intended to make the patch management process easier for both the project's contributors and maintainers, leaving time for the more important (and more interesting) stuff.

Patches that have been sent to a mailing list are "caught" by the system, and appear on a web page. Any comments posted that reference the patch are appended to the patch page too. The project's maintainer can then scan through the list of patches, marking each with a certain state, such as Accepted, Rejected or Under Review. Old patches can be sent to the archive or deleted.

Currently, Patchwork is being used for a number of open-source projects, mostly subsystems of the Linux kernel. Although Patchwork has been developed with the kernel workflow in mind, the aim is to be flexible enough to suit the majority of community projects.


  • Python (2.7, 3.4 - 3.6)
  • Django (1.11 - 2.0)
  • Django REST Framework (3.6 - 3.9)
  • Django Filters (1.0 - 2.0)

Development Installation

Docker is the recommended installation methods for a Patchwork development environment. To install Patchwork:

  1. Install Docker and docker-compose.

  2. Clone the Patchwork repo:

    $ git clone
  3. Build the images. This will download over 200MB from the internet:

    $ docker-compose build
  4. Run docker-compose up:

    $ docker-compose up

The Patchwork instance will now be deployed at http://localhost:8000/.

For more information, including helpful command line options and alternative installation methods, refer to the documentation.

Talks and Presentations

  • Mailing List, Meet CI (slides) - FOSDEM 2017
  • Patches carved into stone tablets (slides) - Kernel Recipes Conference 2016
  • A New Patchwork (slides) - FOSDEM 2016
  • Patchwork: reducing your patch workload (slides) - Linux Plumbers Conference 2011

Additional Information

For further information, refer to the documentation.


For bug reports, patch submissions or other questions, use the mailing list.