getpatchwork / patchwork

Patchwork is a web-based patch tracking system designed to facilitate the contribution and management of contributions to an open-source project.
http://jk.ozlabs.org/projects/patchwork/
GNU General Public License v2.0
273 stars 82 forks source link

========= Patchwork

.. image:: https://pyup.io/repos/github/getpatchwork/patchwork/shield.svg :target: https://pyup.io/repos/github/getpatchwork/patchwork/ :alt: Requirements Status

.. image:: https://codecov.io/gh/getpatchwork/patchwork/branch/main/graph/badge.svg :target: https://codecov.io/gh/getpatchwork/patchwork :alt: Codecov

.. image:: https://github.com/getpatchwork/patchwork/actions/workflows/ci.yaml/badge.svg :target: https://github.com/getpatchwork/patchwork/actions/workflows/ci.yaml :alt: Build Status

.. image:: https://readthedocs.org/projects/patchwork/badge/?version=latest :target: http://patchwork.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://img.shields.io/discord/857116373653127208.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2 :target: https://discord.gg/hGWjXVTAbB :alt: Discord

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.

Usage

Patchwork provides a web UI, a REST API, and a XML-RPC API (deprecated). You can use the APIs to build you own application or you can use one the many existing clients.

There are many existing Patchwork instances. Unless you're a larger project that is already hosting many of its own resources, you may wish to request a project on one of these instances.

https://patchwork.readthedocs.io/en/latest/development/api/ https://patchwork.readthedocs.io/en/latest/usage/clients/

Requirements

Patchwork requires reasonably recent versions of:

The precise versions supported are listed in the release notes_.

Development Installation

Docker_ is the recommended installation method for a Patchwork development environment. To install Patchwork:

  1. Install Docker and docker-compose.

  2. Clone the Patchwork repo::

    $ git clone https://github.com/getpatchwork/patchwork.git

  3. (Optional) Create a .env file in the root directory of the project and store your UID and GID attributes there::

    $ cd patchwork && printf "UID=$(id -u)\nGID=$(id -g)\n" > .env

    This should only be necessary if you have a UID or GID other than 1000.

  4. Build the images. This will download a number of packages from the internet, and compile several versions of Python::

    $ docker-compose build

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

https://speakerdeck.com/stephenfin/mailing-list-meet-ci https://github.com/gregkh/presentation-stone-tools/blob/34a3963/stone-tools.pdf https://speakerdeck.com/stephenfin/a-new-patchwork-bringing-ci-patch-tracking-and-more-to-the-mailing-list https://www.linuxplumbersconf.org/2011/ocw/system/presentations/255/original/patchwork.pdf

Additional Information

For further information, refer to the documentation_.

Contact

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

.. _release notes: https://patchwork.readthedocs.io/en/latest/releases/ .. _docker-compose: https://docs.docker.com/compose/install/ .. _Docker: https://docs.docker.com/engine/installation/linux/ .. _documentation: https://patchwork.readthedocs.io/ .. _mailing list: https://ozlabs.org/mailman/listinfo/patchwork