- 15 Jul, 2020 2 commits
-
-
Arkadiusz Hiler authored
Quoting RFC: "However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged." Most of the existing software is threating the local part (i.e. the thing before @) of emails as case insensitive. Some people use different capitalization at different times, e.g. arkadiusz.hiler@example.com with git-send-email and Arkadiusz.Hiler@example.com with their regular client. To mitigate this Person's email is now case insensitive for the sake of searching and normalized to lower case pre_save. It's not perfect by any means and still can be bypassed by doing .update() on the QuerySet, but will work in most of the usual cases. Tests and migration deduplicating existing entries are provided. Fixes: #32Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
class Series: submitter = models.ForeignKey(Person, ... Would result in Person having a field named series_set QuerySet that represents the other side of this one-to-many relation. related_name is used to overwrite that and it looks like it purpose was misunderstood as it had been set to "submitters" - Person.submitters doesn't make much sense. Let's remove related_name an use the default name. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 09 Jul, 2020 1 commit
-
-
Arkadiusz Hiler authored
Results send to Patchwork can now be marked as markdown (on a Test model level). Such results are then rendered into HTML and displayed on the web views. Emails that are sent to the mailing list / recipients for such results are going to be multipart/alternative containing both the text form (raw Markdown) and the rendered HTML. Fixes: #6Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 07 Jul, 2020 2 commits
-
-
Arkadiusz Hiler authored
Generated mboxes weren't representing newline (aka LF or \n) and carriage return (aka CR or \r) found in the original patch faithfully. This is mostly due to how email.Message is implemented - it tries to normalize newlines in plain text emails. This doesn't work for us as we want to provide the patches in an unchanged form. To do that we have to overwrite as_string() and as_bytes() methods on our Message class that will use modified Generator that doesn't mangle newlines. The difference in the checksums is due to slightly different header wrapping caused by the changes in generator. Additionally tests are provided to make sure that we ingest emails correctly (no mangling there) and that the generated mbox is also a-okay. Fixes: #33Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
This is done because Python's qp encoding can be a bit problematic with line endings. Also, bumping the line length limit to 200 makes the downloaded mboxes readable with any sensible patches and is well below the RFC 5322 limit of 998 characters. The changes in checksums are due to emails not being qp-encoded. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 06 Jul, 2020 1 commit
-
-
Arkadiusz Hiler authored
Turns out that clean_header() takes Header, so we were getting: AttributeError 'Header' object has no attribute 'startswith' Let's use Header in the test and fix the issue properly. Fix: a7046dca ("Add workaround for MUAs that don't handle UTF-8") Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 01 Jul, 2020 4 commits
-
-
Arkadiusz Hiler authored
Noticed it while running tox with the recently added tests. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
Looks like it was added untested. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
We already have /patch/msgid/$MSGID to look up a single patch. This change adds /series/msgid/$MSGID so we can look up a whole series. This works with patch and cover letter message-ids. Fixes: #36Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
So people can use it both with and without <> Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 25 Jun, 2020 1 commit
-
-
Arkadiusz Hiler authored
Some MUAs seem to send UTF-8 in headers (e.g.: Subject) as is instead of escaping it using RFC2047. Those usually get mangled somewhere on the way by the MTA/MDA and we end up with something escaped with 'unknown-8bit' encoding. Python raises an exception if we ever try to parse that, so it's better to at least try to decode it as UTF-8. Fixes: #43Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 23 Jun, 2020 2 commits
-
-
Arkadiusz Hiler authored
To be used with the recently added event 'until' filtering. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
We have 'since' filtering already and this can be used with some interesting CI workflows. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 16 Jun, 2020 1 commit
-
-
Arkadiusz Hiler authored
Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 15 Jun, 2020 2 commits
-
-
Arkadiusz Hiler authored
Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
and link to it from the messages about series being incomplete/strange. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 23 Apr, 2020 1 commit
-
-
Arkadiusz Hiler authored
RFC 5322 requires us to not have lines longer than 998 characters and strongly suggests that we should impose even stricter limitation of 78 characters. Let's follow that recommendation and use quoted-printable transfer encoding if any line of payload is longer than 78 characters. Reported-by:
Petri Latvala <petri.latvala@intel.com> Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 25 Mar, 2020 4 commits
-
-
Arkadiusz Hiler authored
We were off by one as the patch's body counts as one comment. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
Use the first patch timestamp if available, otherwise use series completion date. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
When a cover letter is sent as 0/0 it lands in series limbo due to being in "incomplete" state. Let's make it visible in the web UI and emit the completion events as usual, but let's also display big notice what is going on. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 09 Mar, 2020 2 commits
-
-
Arkadiusz Hiler authored
Whenever we are duplicating metadata about a revision let's clean the rerun state. Without this all revisions to series that had been rerun were stuck in the "this is a rerun" state, even if updated version of the patches were sent. Fixes #31Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
Requests generated via `git request-pull` are not meant to be sent in any standardized way, so users often copy the text to their email client of choice. This can cause the line endings to be mangled into any combination of '\r' and '\n'. Let's be more liberal about what we take with regards to newlines. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 17 Feb, 2020 1 commit
-
-
Arkadiusz Hiler authored
Add a button that marks the latest revision of a series as "skip testing". Only the author of the series and maintainers of the project can perform this action. The `skip_testing` state is exposed through the JSON API: /api/1.0/series/{int}/revisions/{int}/ The attached CI/testing infrastructure is responsible for checking this flag. The UI shows which revisions were skipped and who has triggered it. Closes #27Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 06 Feb, 2020 1 commit
-
-
Arkadiusz Hiler authored
Payload is the content of the last text part of the multipart message. Mailing lists sometimes append their own footers as a new part. This happens for emails that are already multipart or the ones with more uncommon encodings. In those cases we end up with an empty comment, as the footer is then stripped out via clean_content(). We cannot use the commentbuf as it has anything diff-like stripped out by parse_patch(). Fixes #39Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 30 Jan, 2020 1 commit
-
-
Bhanuprakash Modem authored
This change will display the # of comments of the patch in patch list view & series view. Signed-off-by:
Bhanuprakash Modem <bhanuprakash.modem@intel.com>
-
- 15 Jan, 2020 1 commit
-
-
Arkadiusz Hiler authored
We are listing msg-ids for patches on their respective pages already. Let's go a step further and list root msg-id(s) for given series. root = message that started the series, whether it's the cover letter or the first patch. Closes #36Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 13 Jan, 2020 1 commit
-
-
Arkadiusz Hiler authored
Old series do not have a completion date for series which breaks posting results: File "patchwork/models.py" in _on_test_result 1083. 'revision_completed': revision.completed.isoformat()} Exception Type: AttributeError at /api/1.0/series/71839/revisions/1/test-results/ Exception Value: 'NoneType' object has no attribute 'isoformat' Let's just admit that it's unknown. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 10 Jan, 2020 3 commits
-
-
Arkadiusz Hiler authored
Test results are listed on a series view. Some of them are expandable if you click anywhere on their grey background. This is not obvious and it's not indicated in any way. This patch adds a triangle pointing down in the left corner to imply this expand/collapse behavior. The triangle starts pointing up when the section is expanded to indicate that it is collapsible now. Closes #35Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
The event is logged when patchwork receives new test result for series revision or for a patch. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
Previously there was no way of telling when the series is complete other than digging through the completion events, which is suboptimal. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 07 Jan, 2020 1 commit
-
-
Arkadiusz Hiler authored
This solves the following error: File "patchwork/views/patch.py" in patch 82. % (patch.name, bundle.name, ex.message)] Exception Type: AttributeError Exception Value: 'Exception' object has no attribute 'message' Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 11 Dec, 2019 2 commits
-
-
Arkadiusz Hiler authored
Fixes: c626d5ea ("Add robots.txt") Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
Disallow all crawling. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 27 Nov, 2019 1 commit
-
-
Bhanuprakash Modem authored
When running "git pw apply --revision N SERIES_ID" it always says that it applies the newest revision even though it does the correct thing - it applies the requested one. This patch fixes the logic to print the correct revision. This fixes #22Signed-off-by:
Bhanuprakash Modem <bhanuprakash.modem@intel.com> Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 26 Nov, 2019 1 commit
-
-
Manish Kumar authored
Let's address a common gotcha - clicking on a project name in the navbar used to navigate us to the main page (i.e. `/`), since this patch it will get us to the series list of the current project instead. This fixes #30. Signed-off-by:
Manish Kumar <manish3.kumar@intel.com> Reviewed-by:
Martin Peres <martin.peres@linux.intel.com> Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 19 Nov, 2019 3 commits
-
-
Arkadiusz Hiler authored
The all-new path() does not take regexps. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
Wrong view, wrong way of passing view arguments. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Arkadiusz Hiler authored
Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 23 Oct, 2019 1 commit
-
-
Arkadiusz Hiler authored
Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-