1. 23 Nov, 2022 7 commits
  2. 11 Aug, 2022 3 commits
    • Dragoon Aethis's avatar
      parsemail: Treat replies to Series from other Authors as Comments · 2abfbde7
      Dragoon Aethis authored
      Until now, if anyone replied with a patch (as parsed by Patchwork) to
      the cover letter/first patch of a series, Patchwork would create a new
      revision within that series and have the sender "take over" a series.
      
      We now check if a given mail is in reply to any existing series before
      trying to parse its content, and if we have existing series AND the
      series' original author is not the current mail's author, we force the
      mail to be treated as a comment in reply to the cover letter/patch.
      
      Fixes #46.
      2abfbde7
    • Dragoon Aethis's avatar
      parsemail: Strip whitespace from mail refs · dbcd02cd
      Dragoon Aethis authored
      Looking up existing Patches and Comments with msgids w/ whitespace fails
      as we try to get the first object whose msgid matches these values. They
      are always stripped before being saved to the database.
      dbcd02cd
    • Dragoon Aethis's avatar
      0df64c38
  3. 05 Aug, 2022 1 commit
  4. 02 Aug, 2022 8 commits
  5. 26 Aug, 2021 1 commit
  6. 15 Jul, 2020 2 commits
    • Arkadiusz Hiler's avatar
      Make email addresses for incoming emails case-insensitive · 0181a3ec
      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: #32
      
      
      Signed-off-by: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      0181a3ec
    • Arkadiusz Hiler's avatar
      Remove related_name from Series.submitter · f4f47a4e
      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: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      f4f47a4e
  7. 09 Jul, 2020 1 commit
    • Arkadiusz Hiler's avatar
      Add support for Markdown results · 8aebdaf7
      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: #6
      
      
      Signed-off-by: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      8aebdaf7
  8. 07 Jul, 2020 2 commits
    • Arkadiusz Hiler's avatar
      Don't mangle \n and \r combinations in the generated mboxes · 189b72f2
      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: #33
      
      
      Signed-off-by: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      189b72f2
    • Arkadiusz Hiler's avatar
      Switch to base64 for mails over 200 chars in line · fdb77357
      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: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      fdb77357
  9. 06 Jul, 2020 1 commit
  10. 01 Jul, 2020 4 commits
  11. 25 Jun, 2020 1 commit
  12. 23 Jun, 2020 2 commits
  13. 16 Jun, 2020 1 commit
  14. 15 Jun, 2020 2 commits
  15. 23 Apr, 2020 1 commit
  16. 25 Mar, 2020 3 commits