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

Adam Hassick ahassick at iol.unh.edu
Thu Feb 6 02:16:53 AEDT 2025


Aaron,

Please take a look at the new version of this series and let me know
if this implementation, where the feature may be enabled per-project,
is satisfactory.

Regards,
Adam

On Thu, Jan 30, 2025 at 2:56 PM Adam Hassick <ahassick at iol.unh.edu> wrote:
>
> 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