[PATCH] Add setting to specify subject prefixes to ignore
Stephen Finucane
stephen at that.guru
Mon Feb 25 22:18:07 AEDT 2019
On Tue, 2019-01-08 at 12:38 +0000, Ali Alnubani wrote:
> The only prefix that was being ignored was the project.linkname.
> This patch adds the new setting: `SUBJECT_PREFIXES_TO_IGNORE`,
> which can be a list of strings to be removed from the subject
> by the parser.
This issue with this is that it assumes projects will all want the same
list of ignored subject projects. I guess you don't see this since the
DPDK instance only uses a single project.
Could you make this an attribute of the 'Project' model instead? You
would probably want to use a CSV-style field for this.
Stephen
> Suggested-by: Thomas Monjalon <thomas at monjalon.net>
> Signed-off-by: Ali Alnubani <alialnu at mellanox.com>
> ---
> docs/deployment/configuration.rst | 7 +++++++
> patchwork/parser.py | 9 +++++++--
> patchwork/settings/base.py | 3 +++
> 3 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/docs/deployment/configuration.rst b/docs/deployment/configuration.rst
> index 0601276..4f718e9 100644
> --- a/docs/deployment/configuration.rst
> +++ b/docs/deployment/configuration.rst
> @@ -112,5 +112,12 @@ Force use of ``https://`` links instead of guessing the scheme based on current
> access. This is useful if SSL protocol is terminated upstream of the server
> (e.g. at the load balancer)
>
> +``SUBJECT_PREFIXES_TO_IGNORE``
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Case-insensitive prefixes to remove from patch subjects.
> +
> +.. versionadded:: 2.2
> +
> __ https://docs.djangoproject.com/en/1.8/ref/settings/
> __ http://www.django-rest-framework.org/api-guide/settings/
> diff --git a/patchwork/parser.py b/patchwork/parser.py
> index c7297ae..b508616 100644
> --- a/patchwork/parser.py
> +++ b/patchwork/parser.py
> @@ -14,6 +14,7 @@ from fnmatch import fnmatch
> import logging
> import re
>
> +from django.conf import settings
> from django.contrib.auth.models import User
> from django.db.utils import IntegrityError
> from django.utils import six
> @@ -37,6 +38,8 @@ list_id_headers = ['List-ID', 'X-Mailing-List', 'X-list']
>
> SERIES_DELAY_INTERVAL = 10
>
> +SUBJECT_PREFIXES_TO_IGNORE = settings.SUBJECT_PREFIXES_TO_IGNORE
> +
> logger = logging.getLogger(__name__)
>
>
> @@ -278,7 +281,8 @@ def _find_series_by_markers(project, mail, author):
> """
>
> subject = mail.get('Subject')
> - name, prefixes = clean_subject(subject, [project.linkname])
> + SUBJECT_PREFIXES_TO_IGNORE.append(project.linkname)
> + name, prefixes = clean_subject(subject, SUBJECT_PREFIXES_TO_IGNORE)
> _, total = parse_series_marker(prefixes)
> version = parse_version(name, prefixes)
>
> @@ -973,7 +977,8 @@ def parse_mail(mail, list_id=None):
> msgid = msgid[:255]
>
> subject = mail.get('Subject')
> - name, prefixes = clean_subject(subject, [project.linkname])
> + SUBJECT_PREFIXES_TO_IGNORE.append(project.linkname)
> + name, prefixes = clean_subject(subject, SUBJECT_PREFIXES_TO_IGNORE)
> is_comment = subject_check(subject)
> x, n = parse_series_marker(prefixes)
> version = parse_version(name, prefixes)
> diff --git a/patchwork/settings/base.py b/patchwork/settings/base.py
> index 15644b4..f5b3ab8 100644
> --- a/patchwork/settings/base.py
> +++ b/patchwork/settings/base.py
> @@ -227,3 +227,6 @@ COMPAT_REDIR = True
> # the scheme based on current access. This is useful if SSL protocol
> # is terminated upstream of the server (e.g. at the load balancer)
> FORCE_HTTPS_LINKS = False
> +
> +# Case-insensitive prefixes to remove from patch subjects
> +SUBJECT_PREFIXES_TO_IGNORE=[]
More information about the Patchwork
mailing list