# Patchwork

OVN uses Patchwork to track the status of patches sent to the ovs-dev mailing list. Our Patchwork instance can be found on ozlabs.org.

Patchwork provides a number of useful features for developers working on OVN:

- Tracking the lifecycle of patches (accepted, rejected, under-review, …)

- Assigning reviewers (delegates) to patches

- Downloading/applying patches, series, and bundles via the web UI or the REST API (see git-pw)

- A usable UI for viewing patch discussions

## git-pw

The git-pw tool provides a way to download and apply patches, series, and bundles. You can install git-pw from PyPi like so:

    $ pip install --user git-pw

To actually use git-pw, you must configure it with the Patchwork instance URL, Patchwork project, and your Patchwork user authentication token. The URL and project are provided below, but you must obtain your authentication token from your Patchwork User Profile page. If you do not already have a Patchwork user account, you should create one now.

Once your token is obtained, configure git-pw as below. Note that this must be run from within the OVN Git repository:

    $ git config pw.server https://patchwork.ozlabs.org/
    $ git config pw.project ovn
    $ git config pw.token $PW_TOKEN  # using the token obtained earlier

Once configured, run the following to get information about available commands:

    $ git pw --help

## pwclient

The pwclient is a legacy tool that provides some of the functionality of git-pw but uses the legacy XML-RPC API. It is considered deprecated in its current form and git-pw should be used instead.