On Fri, 2025-02-07 at 09:59 -0500, Aaron Conole wrote: > Adam Hassick <ahass...@iol.unh.edu> writes: > > > The following patch will add the generated schema files as they are very > > large. > > > > * Increment the API version from v1.3 to v1.4. > > * Update schema documentation to reflect the version change. > > * Add blurb documenting the "Depends-on" tag to the usage overview. > > > > Signed-off-by: Adam Hassick <ahass...@iol.unh.edu>
I've some tweaks made here to handle the parse_dependencies -> show_dependencies change, but otherwise LGTM. Reviewed-by: Stephen Finucane <step...@that.guru> > > --- > > Acked-by: Aaron Conole <acon...@redhat.com> > > > 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/patchwork.j2 | 23 +++++++++++++++ > > docs/usage/overview.rst | 13 +++++++++ > > patchwork/urls.py | 10 +++++-- > > 7 files changed, 74 insertions(+), 27 deletions(-) > > create mode 100644 docs/api/rest/schemas/v1.4.rst > > > > diff --git a/docs/api/rest/index.rst b/docs/api/rest/index.rst > > index 67022e6..cdf9104 100644 > > --- a/docs/api/rest/index.rst > > +++ b/docs/api/rest/index.rst > > @@ -8,7 +8,7 @@ This guide provides an overview of how one can interact > > with the REST API. For > > detailed information on type and response format of the various resources > > exposed by the API, refer to the web browsable API. This can be found at: > > > > - https://patchwork.example.com/api/1.3/ > > + https://patchwork.example.com/api/1.4/ > > > > where `patchwork.example.com` refers to the URL of your Patchwork instance. > > > > @@ -57,16 +57,16 @@ Patchwork instance hosted at `patchwork.example.com`, > > run: > > > > .. code-block:: shell > > > > - $ curl -s 'https://patchwork.example.com/api/1.3/' | python -m > > json.tool > > + $ curl -s 'https://patchwork.example.com/api/1.4/' | python -m > > json.tool > > { > > - "bundles": "https://patchwork.example.com/api/1.3/bundles/", > > - "covers": "https://patchwork.example.com/api/1.3/covers/", > > - "events": "https://patchwork.example.com/api/1.3/events/", > > - "patches": "https://patchwork.example.com/api/1.3/patches/", > > - "people": "https://patchwork.example.com/api/1.3/people/", > > - "projects": "https://patchwork.example.com/api/1.3/projects/", > > - "series": "https://patchwork.example.com/api/1.3/series/", > > - "users": "https://patchwork.example.com/api/1.3/users/" > > + "bundles": "https://patchwork.example.com/api/1.4/bundles/", > > + "covers": "https://patchwork.example.com/api/1.4/covers/", > > + "events": "https://patchwork.example.com/api/1.4/events/", > > + "patches": "https://patchwork.example.com/api/1.4/patches/", > > + "people": "https://patchwork.example.com/api/1.4/people/", > > + "projects": "https://patchwork.example.com/api/1.4/projects/", > > + "series": "https://patchwork.example.com/api/1.4/series/", > > + "users": "https://patchwork.example.com/api/1.4/users/" > > } > > > > > > @@ -82,14 +82,14 @@ well-supported. To repeat the above example using > > `requests`:, run > > >>> r = requests.get('https://patchwork.example.com/api/1.3/') > > >>> print(json.dumps(r.json(), indent=2)) > > { > > - "bundles": "https://patchwork.example.com/api/1.3/bundles/", > > - "covers": "https://patchwork.example.com/api/1.3/covers/", > > - "events": "https://patchwork.example.com/api/1.3/events/", > > - "patches": "https://patchwork.example.com/api/1.3/patches/", > > - "people": "https://patchwork.example.com/api/1.3/people/", > > - "projects": "https://patchwork.example.com/api/1.3/projects/", > > - "series": "https://patchwork.example.com/api/1.3/series/", > > - "users": "https://patchwork.example.com/api/1.3/users/" > > + "bundles": "https://patchwork.example.com/api/1.4/bundles/", > > + "covers": "https://patchwork.example.com/api/1.4/covers/", > > + "events": "https://patchwork.example.com/api/1.4/events/", > > + "patches": "https://patchwork.example.com/api/1.4/patches/", > > + "people": "https://patchwork.example.com/api/1.4/people/", > > + "projects": "https://patchwork.example.com/api/1.4/projects/", > > + "series": "https://patchwork.example.com/api/1.4/series/", > > + "users": "https://patchwork.example.com/api/1.4/users/" > > } > > > > Tools like `curl` and libraries like `requests` can be used to build > > anything > > @@ -108,7 +108,7 @@ Versioning > > ---------- > > > > By default, all requests will receive the latest version of the API: > > currently > > -``1.3``: > > +``1.4``: > > > > .. code-block:: http > > > > @@ -119,7 +119,7 @@ changes breaking your application: > > > > .. code-block:: http > > > > - GET /api/1.3 HTTP/1.1 > > + GET /api/1.4 HTTP/1.1 > > > > Older API versions will be deprecated and removed over time. For more > > information, refer to :ref:`rest-api-versions`. > > @@ -275,6 +275,7 @@ Supported Versions > > 1.1, 2.1, ✓ > > 1.2, 2.2, ✓ > > 1.3, 3.1, ✓ > > + 1.4, unreleased, ✓ > > > > Further information about this and more can typically be found in > > :doc:`the release notes </releases/index>`. > > @@ -292,6 +293,7 @@ Auto-generated schema documentation is provided below. > > /api/rest/schemas/v1.1 > > /api/rest/schemas/v1.2 > > /api/rest/schemas/v1.3 > > + /api/rest/schemas/v1.4 > > > > .. Links > > > > diff --git a/docs/api/rest/schemas/v1.3.rst b/docs/api/rest/schemas/v1.3.rst > > index 17a4421..6bbf1a5 100644 > > --- a/docs/api/rest/schemas/v1.3.rst > > +++ b/docs/api/rest/schemas/v1.3.rst > > @@ -1,5 +1,5 @@ > > -API v1.3 (latest) > > -================= > > +API v1.3 > > +======== > > > > .. openapi:: ../../schemas/v1.3/patchwork.yaml > > :examples: > > diff --git a/docs/api/rest/schemas/v1.4.rst b/docs/api/rest/schemas/v1.4.rst > > new file mode 100644 > > index 0000000..11e34f6 > > --- /dev/null > > +++ b/docs/api/rest/schemas/v1.4.rst > > @@ -0,0 +1,5 @@ > > +API v1.4 (latest) > > +================= > > + > > +.. openapi:: ../../schemas/v1.4/patchwork.yaml > > + :examples: > > diff --git a/docs/api/schemas/generate-schemas.py > > b/docs/api/schemas/generate-schemas.py > > index 14b7414..52008df 100755 > > --- a/docs/api/schemas/generate-schemas.py > > +++ b/docs/api/schemas/generate-schemas.py > > @@ -14,8 +14,8 @@ except ImportError: > > yaml = None > > > > ROOT_DIR = os.path.dirname(os.path.realpath(__file__)) > > -VERSIONS = [(1, 0), (1, 1), (1, 2), (1, 3), None] > > -LATEST_VERSION = (1, 3) > > +VERSIONS = [(1, 0), (1, 1), (1, 2), (1, 3), (1, 4), None] > > +LATEST_VERSION = (1, 4) > > > > > > def generate_schemas(): > > diff --git a/docs/api/schemas/patchwork.j2 b/docs/api/schemas/patchwork.j2 > > index 516fbe8..1ce1c6a 100644 > > --- a/docs/api/schemas/patchwork.j2 > > +++ b/docs/api/schemas/patchwork.j2 > > @@ -2616,6 +2616,11 @@ components: > > commit_url_format: > > title: Web SCM URL format for a particular commit > > type: string > > +{% endif %} > > +{% if version >= (1, 4) %} > > + parse_dependencies: > > + title: Whether the parse dependencies feature is enabled. > > + type: boolean > > {% endif %} > > Series: > > type: object > > @@ -2699,6 +2704,24 @@ components: > > $ref: '#/components/schemas/PatchEmbedded' > > readOnly: true > > uniqueItems: true > > +{% if version >= (1, 4) %} > > + dependencies: > > + title: Dependencies > > + type: array > > + items: > > + type: string > > + format: url > > + readOnly: true > > + uniqueItems: true > > + dependents: > > + title: Dependents > > + type: array > > + items: > > + type: string > > + format: url > > + readOnly: true > > + uniqueItems: true > > +{% endif %} > > User: > > type: object > > title: User > > diff --git a/docs/usage/overview.rst b/docs/usage/overview.rst > > index 297569e..8a81692 100644 > > --- a/docs/usage/overview.rst > > +++ b/docs/usage/overview.rst > > @@ -139,6 +139,19 @@ the email. The following tags are available on a > > standard Patchwork install: > > > > Reviewed-by: Stephen Finucane <step...@that.guru> > > > > +Patchwork includes an optional built-in tag for declaring dependencies > > between > > +series. The message ID of a patch or a cover letter, or the web URL to a > > patch > > +or a series may be used to indicate a dependency. This tag is disabled for > > +projects by default, and may be enabled by setting the > > ``parse_dependencies`` > > +flag to ``True``. When enabled, this may be included in the cover letter > > or any > > +patch file of a series to declare a dependency: > > + > > +``Depends-on:`` > > + For example:: > > + > > + Depends-on: <20240726221429.221611-1-u...@example.com> > > + Depends-on: https://pw.example.com/project/myproject/list?series=1234 > > + > > The available tags, along with the significance of said tags, varies from > > project to project and Patchwork instance to Patchwork instance. The > > `kernel > > project documentation`__ provides an overview of the supported tags for the > > diff --git a/patchwork/urls.py b/patchwork/urls.py > > index ecd3668..11cd8e7 100644 > > --- a/patchwork/urls.py > > +++ b/patchwork/urls.py > > @@ -347,12 +347,16 @@ if settings.ENABLE_REST_API: > > > > urlpatterns += [ > > re_path( > > - r'^api/(?:(?P<version>(1.0|1.1|1.2|1.3))/)?', > > include(api_patterns) > > + r'^api/(?:(?P<version>(1.0|1.1|1.2|1.3|1.4))/)?', > > + include(api_patterns), > > ), > > re_path( > > - r'^api/(?:(?P<version>(1.1|1.2|1.3))/)?', > > include(api_1_1_patterns) > > + r'^api/(?:(?P<version>(1.1|1.2|1.3|1.4))/)?', > > + include(api_1_1_patterns), > > + ), > > + re_path( > > + r'^api/(?:(?P<version>(1.3|1.4))/)?', include(api_1_3_patterns) > > ), > > - re_path(r'^api/(?:(?P<version>(1.3))/)?', > > include(api_1_3_patterns)), > > # token change > > path( > > 'user/generate-token/', > > _______________________________________________ > Patchwork mailing list > Patchwork@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/patchwork _______________________________________________ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork