[PATCH v2 0/5] patch-detail: add unaddressed/addressed status to patch comments
Daniel Axtens
dja at axtens.net
Fri Aug 6 13:20:44 AEST 2021
Hi Raxel,
Some general comments:
> Currently, there is no state or status associated with patch comments.
> In particular, knowing whether a comment on a patch is addressed is
> useful for transparency and accountability in the review and
> contribution process. This series adds labels to comments to show
> whether they are “Addressed” or “Unaddressed”. Also, the addressed
> status of a comment can be manually changed given the required
> permissions to edit a patch. A future feature that would be useful to
> implement with this new feature is the ability to automatically add
> unaddressed comments to a user’s TODO page.
So:
- I wonder if a comment that adds a tag like "Reviewed-by:
<>"/Acked-by/Tested-by should automatically be labelled as
"Addressed" as these comments usually don't require a response from
the patch submitter. I haven't got strong feelings on this, I just
explored your series using some test data with a comment that was
just a "Reviewed-by" and it seemed odd to me. The more I think about
it the more I think if you're using pw as a code review platform you
probably don't mind just pressing "addressed" on these sorts of
comments? OTOH maybe if someone ever wants to build API tooling
around it (e.g. auto-merge a patch if it has an appropriate
Reviewed-by and all comments are addressed) then maybe they'd care a
bit more?
- I haven't checked, but what happens if (somehow) a state change
fails? It looks like the buttons flip from addressed <-> unaddressed
without a pending state --- what happens if something goes wrong?
(like a dropped internet connection) Is that reflected in the UI?
- One thing we've repeatedly screwed up in the past is accidentally
creating massive db load through the API. django-debug-toolbar is
quite helpful for spotting db query pattern changes but it's a bit
fiddly to get set up in Docker. I haven't looked to see what query
changes have been created yet, but I just wanted to flag that as
something you should check when making API changes.
I haven't reviewed all the patches in detail yet - having a split
between refactoring and user-visible change would help - but looking at
the final product I think this is going in a direction I'm happy with.
Kind regards,
Daniel
> Something important to note is that this patch series relies on the
> JS cookie library [1] and rest.js file [2], both introduced in my
> previous patch series. Also, the patch series was previously a RFC [3]
> that lacked tests and release notes. Also, the first patch now adds the
> OpenAPI definition of the new comment detail endpoint and upgrades
> the REST API to v1.3 accordingly.
>
> For the first patch, the addressed field is added to the data model and
> a new endpoint for the REST API to work with a specific comment is added
> as well. The endpoint is upgraded to v1.3 and defined for OpenAPI.
>
> For the second patch, tests are added for the new endpoint. Also, the
> addressed field is added to create_patch_comment in the api tests
> utils.py.
>
> For the third patch, the addressed status label and button to change the
> addressed status are added with styling.
>
> For the fourth patch, the REST API call is added when the buttons are
> clicked to change the addressed status of a comment. Also, the UI is set
> to update accordingly.
>
> For the fifth patch, release notes are added for these changes.
>
> [1] https://lists.ozlabs.org/pipermail/patchwork/2021-July/006994.html
> [2] https://lists.ozlabs.org/pipermail/patchwork/2021-July/006997.html
> [3] https://lists.ozlabs.org/pipermail/patchwork/2021-July/006974.html
>
> Raxel Gutierrez (5):
> api: add addressed field and detail endpoint for patch comments
> tests: add tests for patch comments detail endpoint
> patch-detail: add label and button for comment addressed status
> patch-detail: add functionality for comment status updates
> docs: add release note for addressed/unaddressed comments
>
> docs/api/schemas/generate-schemas.py | 4 +-
> docs/api/schemas/latest/patchwork.yaml | 144 +-
> docs/api/schemas/patchwork.j2 | 148 +-
> docs/api/schemas/v1.0/patchwork.yaml | 35 +-
> docs/api/schemas/v1.1/patchwork.yaml | 35 +-
> docs/api/schemas/v1.2/patchwork.yaml | 35 +-
> docs/api/schemas/v1.3/patchwork.yaml | 2749 +++++++++++++++++
> htdocs/css/style.css | 55 +-
> htdocs/js/submission.js | 52 +
> patchwork/api/base.py | 24 +-
> patchwork/api/check.py | 21 +-
> patchwork/api/comment.py | 76 +-
> patchwork/api/patch.py | 2 +-
> .../migrations/0045_patchcomment_addressed.py | 18 +
> patchwork/models.py | 5 +-
> patchwork/templates/patchwork/submission.html | 165 +-
> patchwork/tests/api/test_comment.py | 201 +-
> patchwork/tests/utils.py | 1 +
> patchwork/urls.py | 17 +-
> patchwork/views/patch.py | 1 +
> ...essed-patch-comments-bfe71689b6f35a22.yaml | 20 +
> templates/base.html | 2 +-
> 22 files changed, 3653 insertions(+), 157 deletions(-)
> create mode 100644 docs/api/schemas/v1.3/patchwork.yaml
> create mode 100644 htdocs/js/submission.js
> create mode 100644 patchwork/migrations/0045_patchcomment_addressed.py
> create mode 100644 releasenotes/notes/comment-detail-endpoint-for-addressed-unaddressed-patch-comments-bfe71689b6f35a22.yaml
>
> --
> 2.32.0.554.ge1b32706d8-goog
>
> _______________________________________________
> Patchwork mailing list
> Patchwork at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/patchwork
More information about the Patchwork
mailing list