Package: release.debian.org Severity: normal X-Debbugs-Cc: [email protected] Control: affects -1 + src:afew User: [email protected] Usertags: unblock
[ Reason ] Fix important bug https://bugs.debian.org/1106896: afew is unable to remove tags. [ Impact ] afew raises KeyError when it tries to remove tags, as shown for example in https://github.com/afewmail/afew/pull/320#issuecomment-2782420815. [ Tests ] None, as far as I know. [ Risks ] The patch updates to the latest version of an upstream PR; aside from some irrelevant-to-us GitHub workflow changes, this just adds an "except KeyError: pass" handler, and it seems clear enough that removing a tag that already doesn't exist is a situation that can be ignored. So this seems safe enough to me. [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing unblock afew/3.0.1-8 Thanks, -- Colin Watson (he/him) [[email protected]]
diff -Nru afew-3.0.1/debian/changelog afew-3.0.1/debian/changelog --- afew-3.0.1/debian/changelog 2025-03-15 20:35:00.000000000 +0000 +++ afew-3.0.1/debian/changelog 2025-07-03 14:02:50.000000000 +0100 @@ -1,3 +1,12 @@ +afew (3.0.1-8) unstable; urgency=medium + + * Team upload. + + [ itd ] + * BaseFilter: allow removing non-existent tags (closes: #1106896). + + -- Colin Watson <[email protected]> Thu, 03 Jul 2025 14:02:50 +0100 + afew (3.0.1-7) unstable; urgency=medium * Team upload. diff -Nru afew-3.0.1/debian/patches/apply-upstream-pull-request-320.patch afew-3.0.1/debian/patches/apply-upstream-pull-request-320.patch --- afew-3.0.1/debian/patches/apply-upstream-pull-request-320.patch 2025-03-15 20:35:00.000000000 +0000 +++ afew-3.0.1/debian/patches/apply-upstream-pull-request-320.patch 2025-07-03 13:59:50.000000000 +0100 @@ -4,11 +4,11 @@ This is labelled draft upstream, but seems to be tested by mjg. --- - .github/workflows/build.yml | 6 ++--- + .github/workflows/build.yml | 4 +-- afew/Database.py | 31 ++++++++++------------ afew/MailMover.py | 8 +++--- afew/files.py | 10 +++---- - afew/filters/BaseFilter.py | 20 +++++++------- + afew/filters/BaseFilter.py | 23 +++++++++------- afew/filters/DKIMValidityFilter.py | 10 ++++--- afew/filters/DMARCReportInspectionFilter.py | 4 +-- afew/filters/FolderNameFilter.py | 10 ++++--- @@ -24,30 +24,21 @@ afew/utils.py | 12 ++++++--- docs/extending.rst | 2 +- setup.py | 2 +- - 20 files changed, 103 insertions(+), 88 deletions(-) + 20 files changed, 105 insertions(+), 87 deletions(-) --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml -@@ -9,7 +9,7 @@ - matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] - name: Build (Python ${{ matrix.python-version }}) -- runs-on: ubuntu-20.04 -+ runs-on: ubuntu-21.04 - steps: - - uses: actions/checkout@v2 - with: @@ -24,11 +24,11 @@ shell: bash run: | sudo apt-get update - sudo apt-get install -y notmuch python3-notmuch python3-venv flake8 -+ sudo apt-get install -y notmuch python3-notmuch2 python3-venv flake8 ++ sudo apt-get install -y notmuch libnotmuch-dev python3-venv flake8 python3 -m venv env source ./env/bin/activate pip install setuptools setuptools_scm pytest dkimpy - ln -s /usr/lib/python3/dist-packages/notmuch ./env/lib/python*/site-packages -+ ln -s /usr/lib/python3/dist-packages/notmuch2 ./env/lib/python*/site-packages ++ pip install notmuch2 - name: flake8 lint run: | source ./env/bin/activate @@ -245,7 +236,7 @@ def commit(self, dry_run=True): dirty_messages = set() -@@ -93,15 +93,15 @@ +@@ -93,15 +93,18 @@ db = self.database.open(rw=True) for message_id in dirty_messages: @@ -261,7 +252,10 @@ for tag in self._remove_tags.get(message_id, []): - message.remove_tag(tag) -+ message.tags.remove(tag) ++ try: ++ message.tags.remove(tag) ++ except KeyError: ++ pass self.flush_changes() --- a/afew/filters/DKIMValidityFilter.py

