Release Notes

2.5.0

New Features

  • The series list and patch list commands now support --since and --before filters to list items created since or before a given date-time.

2.4.0

New Features

  • The patch apply command will now respect the pw.applyPatchDeps git config option. This can be a boolean value (one of: yes, on, true, 1, no, off, false, 0).

  • Python 3.11 is now officially supported and tested.

2.3.0

New Features

  • Support for Python 3.10 has been added.

Upgrade Notes

  • Support for Python 3.5 and 3.6 has been dropped.

2.2.0

New Features

  • The -f / --format option used for many list commands now supports a new option: yaml. This can be useful in environments where limited horizontal space is available.

2.1.0

New Features

  • The series download command now accepts an optional toggle flag pair, --separate / --combine, to either download series patches to separate files or to a combined mbox file (default).

  • The patch download, bundle download, and series download commands now accept a directory for the OUTPUT argument as well as a file. If a directory is provided, the file will use the name provided by Patchwork but will be downloaded to the specified directory rather than the current working directory.

  • It is no longer necessary to provide credentials when interacting with read-only APIs. You will continue to be prompted for credentials for write access.

2.0.0

New Features

  • It is now possible to filter patches by hash. For example:

    git pw patch list --hash HASH
    

1.9.0

New Features

  • The following bundle commands have been added:

    • bundle create

    • bundle update

    • bundle delete

    • bundle add

    • bundle remove

    Together, these allow for creation, modification and deletion of bundles. Bundles are custom, user-defined groups of patches that can be used to keep patch lists, preserving order, for future inclusion in a tree.

    These commands require API v1.2.

Other Notes

  • git-pw 1.9.0 will be the last version to support Python 2.7. git-pw 2.0.0 will require Python 3.5 or greater.

1.8.0

New Features

  • The --state option of the git pw patch update command now supports auto-complete for the default set of states provided by Patchwork. If necessary, these states can be overridden using the pw.states git config setting.

1.7.0

Upgrade Notes

  • git-pw no longer officially supports PyPy.

  • CSV-formatted output is now quoted by default.

Bug Fixes

  • Resolved an issue that prevented viewing patch diffs/mboxes in stdout on Python 3.

  • An info-level log is now correctly skipped when downloading patches, bundles or series to STDOUT on Python 3.

  • An issue with the unicode data when using the CSV format on Python 2.7 has been resolved.

1.6.0

Upgrade Notes

  • Support for Python 3.4 has been dropped.

1.5.2

Upgrade Notes

  • Downloaded patches, series and bundles are now saved to a temporary directory instead of the current directory.

Bug Fixes

  • An issue that resulted in invalid output on Python 3 when a patch or series was not successfully applied has been resolved.

1.5.0

New Features

  • Many commands now take a --format/-f parameter, which can be used to control the output format. Three formats are currently supported:

    • table (default)

    • simple (a version of table with less markup)

    • csv (comma-separated output)

  • All list comands now take a --column/-c parameter, which can be used to control what columns are output. This can be specified multiples times. All columns are output by default.

1.4.0

New Features

  • It is now possible to filter patches, bundles and series and the IDs of users that submitted or are delegated to the item in question. For example:

    $ git pw patch list --submitter 1
    
  • Filtering patches, bundles and series by user will now only display a warning if multiple matches are found for a given filter and you’re using API v1.0. Previously this would have been an unconditional error.

Bug Fixes

  • Resolve an issue that prevented the following filtering when using API v1.1:

    • Filter patches or series by submitter using the submitter’s name

    • Filter patches by delegate using the delegate’s email

    • Filter bundles by owner using the owner’s email

1.3.0

New Features

  • git-pw will now choose use the same rules as Git to select the pager used for list commands. This means the pager will be chosen based on a variety of environment variables and git config options:

    The order of preference is the $GIT_PAGER environment variable, then core.pager configuration, then $PAGER, and then the default chosen at compile time (usually less)

Upgrade Notes

  • git pw patch apply, git pw bundle apply and git pw series apply will now pass any additional arugments provided through to git am. For example:

    $ git pw patch apply 123 --signoff
    

    Previously it was necessary to escape these arguments with --.

  • A warning is now raised when using multiple filters (e.g. git pw bundle --owner foo --owner bar) with Patchwork API v1.0. This is not supported and will result in confusing results.

1.2.0

New Features

  • Patchwork API v1.1 is now supported.

  • Patches, series and bundles downloaded using the download command will now be saved to a file by default instead of output to stdout. By default, this will use the name provided by Patchwork but you can override this by passing a specific filename. For example:

    $ git pw patch download 1234 hello-world.patch
    

    You can also output to stdout using the - shortcut. For example:

    $ git pw patch download 1234 -
    
  • You can now list multiple patches for git pw patch update. This allows you to do bulk updates, e.g. for a series of patches (because series states are not yet supported). For example:

    $ git pw patch update --state accepted 123 124 125 126
    
  • It’s now possible to use a bundle name in addition to the numeric ID for the bundle download, bundle apply and bundle show commands. For example:

    $ git pw bundle show 'My sample bundle'
    

    As bundle names are not necessarily unique, this will fail if multiple bundles match the provided string.

Upgrade Notes

  • Configuring a server without the API version, e.g. via git config pw.server will now result in a warning. An error will be raised in a future release of git-pw.

  • Patches, series and bundles downloaded using the download command will now be saved to a file by default. To continue outputing to stdout, use -. For example:

    $ git pw patch download 1234 -
    

Bug Fixes

  • HTTP 404 and HTTP 5xx errors are now handled correctly.

1.1.2

Bug Fixes

  • Patches are now automatically filtered by new state, as originally intended. You can override this by specifying the --state filter.

  • Some issues with filtering patches, series and bundles by submitters and delegates, submitters, and owners respectively are resolved.

  • API errors are now handled correctly.

1.1.0

Upgrade Notes

  • Project configuration, e.g. via git config pw.project, is now required. Previously, not configuring a project would result in items for for all projects being listed. This did not scale for larger instances such as patchwork.ozlabs.org and proved confusing for some users. If this functionality is required, you must explicitly request it using the * character, e.g. git pw patch list --project='*'.

Bug Fixes

  • The git pw {patch,series,bundle} apply commands will now save the downloaded patches before applying them. This avoids ascii/unicode issues on different versions of Python and avoids the need to load the entire patch into memory.

Other Notes

  • Python 3.2 and 3.3 are no longer supported as both versions are EOL.

1.0.0

Prelude

Initial release of git-pw using the new REST API provided in Patchwork 2.0