From ahassick at iol.unh.edu Fri Apr 4 06:13:28 2025 From: ahassick at iol.unh.edu (Adam Hassick) Date: Thu, 3 Apr 2025 15:13:28 -0400 Subject: [PATCH v4 0/7] Add support for series dependencies In-Reply-To: <20250130195643.757559-1-ahassick@iol.unh.edu> References: <20250130195643.757559-1-ahassick@iol.unh.edu> Message-ID: <CAC-YWqjYcbMav8H2tkPNr=4OC8azmq_O=qDgS2JAp40hotDUag@mail.gmail.com> Hi Stephen, There is a related pull request that I've opened on the git-pw project to add support for downloading and applying series dependencies. See: https://github.com/getpatchwork/git-pw/pull/77 If you could also give this a review when you have a chance, that would be great! 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 >