Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add maintainer notes to patches #1

Closed
wants to merge 49 commits into from
Closed

Add maintainer notes to patches #1

wants to merge 49 commits into from

Conversation

andrepapoti
Copy link

@andrepapoti andrepapoti commented Mar 7, 2024

Description

Add support for maintainers to add notes to patches.
Notes can be either public or private enabling non maintainers users of a certain patches to see them or not.
The API for this feature allows to create, read, update, and delete notes. Reading can be either a detailed view of a note or a list of notes for a specified patch.
The patch serializer was update to include the notes related to it

Related

@andrepapoti andrepapoti marked this pull request as draft March 7, 2024 19:38
@andrepapoti andrepapoti marked this pull request as ready for review March 11, 2024 20:37
@andrepapoti andrepapoti force-pushed the i441 branch 2 times, most recently from d5c5697 to 69d060c Compare March 13, 2024 14:23
@andrepapoti andrepapoti changed the title I441 Add maintainer notes to patches Mar 19, 2024
Avinesh and others added 2 commits April 6, 2024 10:47
@andrepapoti andrepapoti force-pushed the i441 branch 2 times, most recently from 3c68f5d to 0dedae2 Compare April 8, 2024 19:51
stephenfin and others added 12 commits July 12, 2024 10:32
Signed-off-by: Stephen Finucane <[email protected]>
I now have a standard UID and GID of 1000, making this file unnecessary.

Signed-off-by: Stephen Finucane <[email protected]>
djangorestframework, django-filter, django-debug-toolbar, sqlparse,
python-dateutil and openapi-core all have updates.

The only change here is, yet again, openapi-core related, as we swap out
a deprecated API with its replacement.

Signed-off-by: Stephen Finucane <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
Updates the requirements on [psycopg2](https://github.com/psycopg/psycopg2) to permit the latest version.
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS)
- [Commits](psycopg/psycopg2@2.9.6...2.9.9)

---
updated-dependencies:
- dependency-name: psycopg2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Updates the requirements on [django](https://github.com/django/django) to permit the latest version.
- [Commits](django/django@5.0...5.0.7)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Updates the requirements on [psycopg2-binary](https://github.com/psycopg/psycopg2) to permit the latest version.
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS)
- [Commits](psycopg/psycopg2@2.9.6...2.9.9)

---
updated-dependencies:
- dependency-name: psycopg2-binary
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
No need to set the default Python version.

Signed-off-by: Stephen Finucane <[email protected]>
Updates the requirements on [openapi-core](https://github.com/python-openapi/openapi-core) to permit the latest version.
- [Release notes](https://github.com/python-openapi/openapi-core/releases)
- [Commits](python-openapi/openapi-core@0.19.0...0.19.2)

---
updated-dependencies:
- dependency-name: openapi-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Updates the requirements on [mysqlclient](https://github.com/PyMySQL/mysqlclient) to permit the latest version.
- [Release notes](https://github.com/PyMySQL/mysqlclient/releases)
- [Changelog](https://github.com/PyMySQL/mysqlclient/blob/main/HISTORY.rst)
- [Commits](PyMySQL/mysqlclient@v2.2.0...v2.2.4)

---
updated-dependencies:
- dependency-name: mysqlclient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Updates the requirements on [django-debug-toolbar](https://github.com/jazzband/django-debug-toolbar) to permit the latest version.
- [Release notes](https://github.com/jazzband/django-debug-toolbar/releases)
- [Changelog](https://github.com/jazzband/django-debug-toolbar/blob/main/docs/changes.rst)
- [Commits](django-commons/django-debug-toolbar@4.4...4.4.6)

---
updated-dependencies:
- dependency-name: django-debug-toolbar
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Updates the requirements on [sqlparse](https://github.com/andialbrecht/sqlparse) to permit the latest version.
- [Changelog](https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG)
- [Commits](andialbrecht/sqlparse@0.5.0...0.5.1)

---
updated-dependencies:
- dependency-name: sqlparse
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
We also add a release note for Python 3.12 support.

Signed-off-by: Stephen Finucane <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
stephenfin and others added 19 commits October 23, 2024 18:22
Another smaller release, this time with no new API versions.

Signed-off-by: Stephen Finucane <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
Preformatted content must not be indented
because any space is kept in the output,
making the content wrongly indented.

When aligning message headers to the left,
the new HTML code has been indented
including some preformatted content indented with two spaces.

The fix is to remove the indent of the content.

Signed-off-by: Thomas Monjalon <[email protected]>
Fixes: fe34ab2 ("patch-detail: left align message headers")
Reviewed-by: Robin Jarry <[email protected]>
Reviewed-by: Stephen Finucane <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
The colors used to display patch diffs are confusing. The context color
is very similar to the added line color and the contrast between added
and removed lines is very low.

Originally, the choice of purple/blue (instead of the more common
red/green palette) may have been made with colorblindness accessibility
in mind. However, after inspecting the current colors with
colorblindness "simulators", I found that the low contrast was
consistent no matter what vision deficiency (if any) you might have.

Update the colors to use a more common red/green palette. Add background
colors to increase contrast for colorblind people. Use less confusing
colors for context and diff hunks. Use normal line height to prevent
background colors from overlapping. Use a different color for email
quotes (blue) to avoid confusion with added lines.

I have made a compilation of the current and updated color palette
previews for normal vision and all common color deficiencies. I also
included the same diff as seen from Github interface for reference.

Link: http://files.diabeteman.com/patchwork-diff-colors/
Signed-off-by: Robin Jarry <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
Closes: getpatchwork#579
Cc: Mauro Carvalho Chehab <[email protected]>
This was deprecated in 4.1 and removed in 5.0. I missed it.

[1] https://docs.djangoproject.com/en/5.0/releases/4.1/#features-deprecated-in-4-1

Signed-off-by: Stephen Finucane <[email protected]>
We prevent users changing the column that sorting is done on when
allowing users to change the order of patches in a bundle. However, we
still show a chevron and clicking the link will appear to do something.
This is confusing/misleading. Remove the chevron and the link in this
situation.

Signed-off-by: Stephen Finucane <[email protected]>
Add ids to table cells, and rename selectors using hyphen delimited
strings to clean up and improve readability of patch-list.html. Also,
create a partial template errors.html for errors that render with form
submission.These changes make the code healthier, ready for change, and
overall more readable.

No user-visible change should be noticed.

Signed-off-by: Raxel Gutierrez <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
[stephenfin: Addressed merge conflicts and renamed some Python variables
             in snake_case also]
Move patch-list related JS code to a new patch-list.js file, to
make the JavaScript easy to read and change in one place. This makes
automatic code formatting easier, makes it more straightforward to
measure test coverage and discover opportunities for refactoring, and
simplifies a possible future migration to TypeScript if the project
chooses to go in that direction.

No user-visible change should be noticed.

Signed-off-by: Raxel Gutierrez <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
[stephenfin: Addressed merged conflicts]
Move patch forms in patch-list and detail page to a new template file
patch-forms.html and move them to the top of the patch-list page to
improve their discoverability.

Refactor forms.py, __init__.py, patch.py, and test_bundles.py files so
that the shared bundle form in patch-forms.html works for both the
patch-list and patch-detail pages. In particular, the changes normalize
the behavior of the error and update messages of the patch forms and
updates tests to reflect the changes. Overall, these changes make patch
forms ready for change and more synchronized in their behavior. More
specifically:

- Previously patch forms changes were separated between the patch-detail
  and patch-list pages. Thus, desired changes to the patch forms
  required changes to patch-list.html, submission.html, and forms.py.
  So, the most important benefit to this change is that forms.py and
  patch-forms.html become the two places to adjust the forms to handle
  form validation and functionality as well as UI changes.

- Previously the patch forms in patch-list.html handled error and
  update messages through views in patch.py, whereas the patch forms in
  submission.html handled the messages with forms.py. Now, with a single
  patch forms component in patch-forms.html, forms.py is set to handle
  the messages and handle form validation for both pages.

Signed-off-by: Raxel Gutierrez <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
[stephenfin: Address merge conflicts]
Add styling to the new patch list html code to make the change property
and bundle action forms more usable. Before [1] and after [2] images for
reference.

[1] https://i.imgur.com/Pzelipp.png
[2] https://i.imgur.com/UtNJXuf.png

Signed-off-by: Raxel Gutierrez <[email protected]>
Signed-off-by: Stephen Finucane <[email protected]>
[stephenfin: Addressed merge conflicts, tweak CSS slightly]
Signed-off-by: andrepapoti <[email protected]>
Added NoteList api. It allows the user to fetch all notes from a
specific test or create a new one
Added NoteDetail api. It allows the user to fetch, update and delete
notes

Signed-off-by: andrepapoti <[email protected]>
Patch serializer returns a fields containing it's notes.
Some notes may be filtered out depending on the request's user and on
the note maintainer_only attribute

Signed-off-by: andrepapoti <[email protected]>
Bump latest API version to 1.4
Update patchwork.j2 with new note endpoints
Add note endpoints to django urls

Signed-off-by: andrepapoti <[email protected]>
Signed-off-by: andrepapoti <[email protected]>
The submission template now includes a section to display notes, these
can be filtered out depending if the request user is a maintainer for
the patch's project and on the note maintainer_only attribute

Signed-off-by: andrepapoti <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Private maintainer's notes
7 participants