[PATCH v4 0/7] Add support for series dependencies

Adam Hassick ahassick at iol.unh.edu
Fri Jan 31 06:56:35 AEDT 2025


This patch series adds support for series dependencies. A series
dependency may be declared by another series when that series alone will
not apply, compile, or otherwise function properly without the dependent
series.

Including the "Depends-on" tag in any patch commit message or in the cover
letter blurb will signal Patchwork to add the referenced series as a
dependency. The value for this tag may be a message ID of the dependent
series cover letter or any patch in the dependent series. Or,
alternatively, it may be the web URL of the dependent series or any patch
in that series.

This feature is disabled by default and can be enabled on a per-project
basis via the "parse_dependencies" feature flag. The feature flag is
exposed via the Patchwork REST API.

v2:
* Use message IDs instead of object IDs.
* Check for invalid dependencies before adding them.

v3:
* Fix a few nits in the parser.
* Update migrations.

v4:
* Add a feature flag to the Project object.
* Change parser to only parse dependencies when the feature flag is enabled.

Adam Hassick (7):
  models: Add fields for series dependencies
  api: Add fields to series detail view
  parser: Parse "Depends-on" tags in emails
  tests: Add tests for new functionality
  docs: Add feature info and increment API version
  docs: Add generated API schemas
  release-notes: Add release note

 docs/api/rest/index.rst                       |   42 +-
 docs/api/rest/schemas/v1.3.rst                |    4 +-
 docs/api/rest/schemas/v1.4.rst                |    5 +
 docs/api/schemas/generate-schemas.py          |    4 +-
 docs/api/schemas/latest/patchwork.yaml        |   21 +-
 docs/api/schemas/patchwork.j2                 |   23 +
 docs/api/schemas/v1.4/patchwork.yaml          | 3245 +++++++++++++++++
 docs/usage/overview.rst                       |   13 +
 patchwork/api/project.py                      |    2 +
 patchwork/api/series.py                       |   26 +-
 .../migrations/0048_series_dependencies.py    |   32 +
 patchwork/models.py                           |   30 +
 patchwork/parser.py                           |   92 +-
 patchwork/tests/api/test_project.py           |   28 +
 patchwork/tests/api/test_series.py            |   33 +-
 .../tests/series/dependency-base-patch.mbox   |  102 +
 .../series/dependency-multi-2.mbox.template   |  110 +
 .../series/dependency-multi.mbox.template     |  109 +
 .../series/dependency-one-cover.mbox.template |  128 +
 .../dependency-one-first-patch.mbox.template  |  125 +
 patchwork/tests/test_parser.py                |   52 +
 patchwork/tests/test_series.py                |  302 ++
 patchwork/urls.py                             |   10 +-
 ...-series-dependencies-6696458586e795c7.yaml |   22 +
 24 files changed, 4528 insertions(+), 32 deletions(-)
 create mode 100644 docs/api/rest/schemas/v1.4.rst
 create mode 100644 docs/api/schemas/v1.4/patchwork.yaml
 create mode 100644 patchwork/migrations/0048_series_dependencies.py
 create mode 100644 patchwork/tests/series/dependency-base-patch.mbox
 create mode 100644 patchwork/tests/series/dependency-multi-2.mbox.template
 create mode 100644 patchwork/tests/series/dependency-multi.mbox.template
 create mode 100644 patchwork/tests/series/dependency-one-cover.mbox.template
 create mode 100644 patchwork/tests/series/dependency-one-first-patch.mbox.template
 create mode 100644 releasenotes/notes/add-series-dependencies-6696458586e795c7.yaml

-- 
2.48.1



More information about the Patchwork mailing list