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)
Docker is the recommended installation methods for a Patchwork development environment. To install Patchwork:
Install Docker and docker-compose.
Clone the Patchwork repo:
$ git clone https://github.com/getpatchwork/patchwork.git
Create a
.env
file in the root directory of the project and store yourUID
attribute there:$ cd patchwork && echo "UID=$UID" > .env
Build the images. This will download over 200MB from the internet:
$ docker-compose build
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.
- 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
For further information, refer to the documentation.
For bug reports, patch submissions or other questions, use the mailing list.