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

Stephen Finucane stephen at that.guru
Thu Jan 30 05:10:22 AEDT 2025


On Wed, 2025-01-29 at 09:44 -0500, Adam Hassick wrote:
> On Wed, Jan 29, 2025 at 7:14 AM Stephen Finucane <stephen at that.guru> wrote:
> > 
> > On Tue, 2025-01-28 at 10:05 -0500, Adam Hassick wrote:
> > > On Mon, Jan 27, 2025 at 2:16 PM Patrick Robb <probb at iol.unh.edu> wrote:
> > > > 
> > > > Hi Stephen,
> > > > 
> > > > I don't think we've emailed before, but I work with Adam on the DPDK Community Lab, which reports checks to the DPDK patchwork instance. Thank you for doing the work way back to lay the groundwork for Patchwork test checks!
> > > > 
> > > > There was some discussion during Adam's v1 of this series about whether the "ENABLE_DEPENDS_ON_PARSING" flag could be dropped, or if it was required by some of the communities which use Patchwork other than DPDK: https://patchwork.ozlabs.org/project/patchwork/patch/20240617221900.156155-4-ahassick@iol.unh.edu/
> > > > 
> > > > It is indeed important for some of these communities to be able to disable the depends-on feature, as by policy they do not want to allow patch dependencies in their communities. For example OvS and netdev both would like to opt out of patch dependencies. I am adding Aaron Conole who is the person who alerted me to this and who might want to offer additional comment.
> > > > 
> > > > If it is okay, Adam will submit a new patchseries version this week which adds the opt out flag back in.
> > 
> > Okay, this makes sense.
> > 
> > > 
> > > Before I go ahead and implement this, I would like to discuss how this
> > > should be implemented.
> > > 
> > > Stephen, do you think it should be an option in the Django settings.py
> > > file as I had implemented it in the v1 submission?
> > > Maybe we could come up with another way to enable and configure
> > > optional features that aligns with the refactoring goals of the
> > > project.
> > 
> > Can we make this a field of the project so that it can be enabled on a per-
> > project (rather than per-deployment) basis? That also allows us to expose it via
> > the '/projects' REST API.
> 
> Yes, this seems like an elegant solution to me. Then we can check the
> flag on the project object, which is known before we parse
> dependencies, in the parser.
> 
> Correct me if I'm wrong, but I don't see any template for a project
> settings page.
> For now, we can have this option configurable through the Django admin site.

Correct: there is no web UI for project settings so we'll need Django admin.
This should also be possible to expose via the REST API though, so at least it
could be set by a future client.

Stephen

> 
> Thanks,
> Adam Hassick
> 
> 
> > Cheers,
> > Stephen
> > 
> > > 
> > > > Thanks. -Patrick
> > > > 
> > > > On Mon, Jan 27, 2025 at 7:17 AM Stephen Finucane <stephen at that.guru> wrote:
> > > > > 
> > > > > On Thu, 2025-01-16 at 10:18 -0500, Adam Hassick wrote:
> > > > > > Hi Stephen,
> > > > > > 
> > > > > > Is there any chance you could review this soon? It has been a while
> > > > > > since submission.
> > > > > 
> > > > > Hi Adam,
> > > > > 
> > > > > I have seen this and am not ignoring you: I just haven't gotten to it yet 🙈️. I
> > > > > was struck down with the flu over Christmas break when I'd hoped to review this,
> > > > > and I've been travelling/otherwise occupied each weekend since (and will be away
> > > > > over the next two weekends and the week in-between). Apologies for the delay:
> > > > > I'll do my best to review this one evening this week, otherwise it will be the
> > > > > week after next.
> > > > > 
> > > > > Stephen
> > > > > 
> > > > > > 
> > > > > > Best Regards,
> > > > > > Adam Hassick
> > > > > > 
> > > > > > 
> > > > > > On Fri, Nov 15, 2024 at 3:36 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.
> > > > > > > 
> > > > > > > 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.
> > > > > > > 
> > > > > > > Adam Hassick (7):
> > > > > > >   models: Add field for series dependencies
> > > > > > >   api: Add fields to series detail view
> > > > > > >   parser: Parse "Depends-on" tags in emails
> > > > > > >   tests: Add tests for new functionality
> > > > > > >   docs: 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        |   18 +-
> > > > > > >  docs/api/schemas/patchwork.j2                 |   18 +
> > > > > > >  docs/api/schemas/v1.4/patchwork.yaml          | 3242 +++++++++++++++++
> > > > > > >  docs/usage/overview.rst                       |   11 +
> > > > > > >  patchwork/api/series.py                       |   26 +-
> > > > > > >  .../migrations/0048_series_dependencies.py    |   23 +
> > > > > > >  patchwork/models.py                           |   26 +
> > > > > > >  patchwork/parser.py                           |   85 +-
> > > > > > >  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                |  271 ++
> > > > > > >  patchwork/urls.py                             |   10 +-
> > > > > > >  ...-series-dependencies-6696458586e795c7.yaml |   18 +
> > > > > > >  22 files changed, 4430 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.47.0
> > > > > > > 
> > > > > 
> > 



More information about the Patchwork mailing list