Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-nocaselist for 
openSUSE:Factory checked in at 2026-09-02 17:00:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nocaselist (Old)
 and      /work/SRC/openSUSE:Factory/.python-nocaselist.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-nocaselist"

Wed Sep  2 17:00:57 2026 rev:9 rq:1375240 version:2.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nocaselist/python-nocaselist.changes      
2026-03-09 16:32:28.129044629 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-nocaselist.new.1265/python-nocaselist.changes
    2026-09-02 17:01:06.780934600 +0200
@@ -1,0 +2,14 @@
+Tue Sep  1 22:14:26 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2.2.1:
+  * Fixed safety issues up to 2026-08-23.
+  * Dev: Fixed link to change log on GitHub release page.
+  * Development: Tolerate premature deletion of local
+    release/start branches.
+  * Docs: Migrated from our own support for generating summary
+    tables in the documentation to using autodocsumm to fix an
+    import error with Sphinx 9.
+  * Development: Upgraded GitHub Actions plugins to versions that
+    use node.js 24.
+
+-------------------------------------------------------------------

Old:
----
  nocaselist-2.2.0.tar.gz

New:
----
  nocaselist-2.2.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-nocaselist.spec ++++++
--- /var/tmp/diff_new_pack.NP7sBi/_old  2026-09-02 17:01:07.597962667 +0200
+++ /var/tmp/diff_new_pack.NP7sBi/_new  2026-09-02 17:01:07.599962735 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-nocaselist
-Version:        2.2.0
+Version:        2.2.1
 Release:        0
 Summary:        A case-insensitive list for Python
 License:        Apache-2.0

++++++ nocaselist-2.2.0.tar.gz -> nocaselist-2.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/.github/workflows/publish.yml 
new/nocaselist-2.2.1/.github/workflows/publish.yml
--- old/nocaselist-2.2.0/.github/workflows/publish.yml  2026-01-04 
23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/.github/workflows/publish.yml  2026-08-31 
10:57:00.029971400 +0200
@@ -172,7 +172,7 @@
         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         INPUT_TAG_NAME: ${{ steps.set-tag.outputs.result }}
         INPUT_NAME: "Release ${{ steps.set-tag.outputs.result }}"
-        INPUT_BODY: "Change log https://pywbem.readthedocs.io/en/${{ 
steps.set-tag.outputs.result }}/changes.html"
+        INPUT_BODY: "Change log https://nocaselist.readthedocs.io/en/${{ 
steps.set-tag.outputs.result }}/changes.html"
 
     #-------- Creation of stable branch
     # Note: This does not seem to depend on the disablement of the "Restrict 
pushes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/.github/workflows/test.yml 
new/nocaselist-2.2.1/.github/workflows/test.yml
--- old/nocaselist-2.2.0/.github/workflows/test.yml     2026-01-04 
23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/.github/workflows/test.yml     2026-08-31 
10:57:00.029971400 +0200
@@ -48,34 +48,14 @@
                 \"package_level\": \"minimum\" \
               }, \
               { \
-                \"os\": \"ubuntu-latest\", \
-                \"python-version\": \"3.10\", \
-                \"package_level\": \"latest\" \
-              }, \
-              { \
-                \"os\": \"macos-latest\", \
-                \"python-version\": \"3.9\", \
-                \"package_level\": \"latest\" \
-              }, \
-              { \
-                \"os\": \"macos-latest\", \
-                \"python-version\": \"3.11\", \
-                \"package_level\": \"latest\" \
-              }, \
-              { \
                 \"os\": \"macos-latest\", \
                 \"python-version\": \"3.14\", \
-                \"package_level\": \"minimum\" \
-              }, \
-              { \
-                \"os\": \"windows-latest\", \
-                \"python-version\": \"3.9\", \
                 \"package_level\": \"latest\" \
               }, \
               { \
                 \"os\": \"windows-latest\", \
                 \"python-version\": \"3.14\", \
-                \"package_level\": \"minimum\" \
+                \"package_level\": \"latest\" \
               } \
             ] \
           }" >> $GITHUB_OUTPUT; \
@@ -96,7 +76,7 @@
     steps:
     - name: Set run type (normal, scheduled, release)
       id: set-run-type
-      uses: actions/github-script@v7
+      uses: actions/github-script@v8
       with:
         result-encoding: string
         script: |
@@ -111,11 +91,11 @@
           console.log(result)
           return result
     - name: Checkout repo
-      uses: actions/checkout@v4
+      uses: actions/checkout@v5
       with:
         fetch-depth: 0
     - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v5
+      uses: actions/setup-python@v6
       with:
         python-version: ${{ matrix.python-version }}
     - name: Display initial Python packages
@@ -209,7 +189,7 @@
         COVERALLS_SERVICE_NAME: github
         COVERALLS_SERVICE_JOB_ID: "${{ github.run_id }}"
         COVERALLS_SERVICE_NUMBER: "${{ github.workflow }}-${{ 
github.run_number }}"
-      uses: nick-fields/retry@v3
+      uses: nick-fields/retry@v4
       with:
         timeout_seconds: 30
         max_attempts: 3
@@ -240,7 +220,7 @@
       env:
         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         COVERALLS_SERVICE_NUMBER: "${{ github.workflow }}-${{ 
github.run_number }}"
-      uses: nick-fields/retry@v3
+      uses: nick-fields/retry@v4
       with:
         timeout_seconds: 30
         max_attempts: 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/.safety-policy-develop.yml 
new/nocaselist-2.2.1/.safety-policy-develop.yml
--- old/nocaselist-2.2.0/.safety-policy-develop.yml     2026-01-04 
23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/.safety-policy-develop.yml     2026-08-31 
10:57:00.029971400 +0200
@@ -17,6 +17,12 @@
     # Should be set to False.
     ignore-cvss-unknown-severity: False
 
+    # Ignore unpinned requirements
+    # Default is true. "Unpinned" in this case means anything else but "==".
+    # Since we are checking against the minimum-constraints file, this check
+    # is enabled (false).
+    ignore-unpinned-requirements: false
+
     # List of specific vulnerabilities to ignore.
     # {id}:                 # vulnerability ID
     #     reason: {text}    # optional: Reason for ignoring it. Will be 
reported in the Safety reports
@@ -28,6 +34,50 @@
             reason: The py package is no longer being fixed (latest version 
1.11.0)
         70612:
             reason: Disputed issue in jinja2 version 3.1.3 - No known fix
+        82754:
+            reason: Fixed filelock version 3.20.1 requires Python>=3.10 and is 
used there
+        83159:
+            reason: Fixed marshmallow version 4.3.0 requires Python>=3.10 and 
is used there
+        84183:
+            reason: Fixed filelock version 3.20.3 requires Python>=3.10 and is 
used there
+        84415:
+            reason: Fixed filelock version 3.20.3 requires Python>=3.10 and is 
used there
+        89824:
+            reason: Fixed nltk version 3.9.4 requires Python>=3.10 and is used 
there
+        89826:
+            reason: Fixed nltk version 3.9.4 requires Python>=3.10 and is used 
there
+        89827:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        90553:
+            reason: Fixed requests version 2.33.0 requires Python>=3.10 and is 
used there
+        96886:
+            reason: Fixed urllib3 version 2.7.0 requires Python>=3.10 and is 
used there
+        SFTY-20260218-01424:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        SFTY-20260122-20373:
+            reason: Fixed pytest version 9.0.3 requires Python>=3.10 and is 
used there
+        SFTY-20260318-30374:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        SFTY-20260511-47957:
+            reason: Fixed urllib3 version 2.7.0 requires Python>=3.10 and is 
used there
+        SFTY-20260304-49322:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        SFTY-20260320-58622:
+            reason: Fixed nltk version 3.9.4 requires Python>=3.10 and is used 
there
+        SFTY-20260616-58930:
+            reason: Fixed nltk version 3.10.0 requires Python>=3.10 and is 
used there
+        SFTY-20260309-65600:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        SFTY-20260725-27090:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        SFTY-20260731-71411:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        SFTY-20260731-74449:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        SFTY-20260731-78787:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
+        SFTY-20260731-83123:
+            reason: Fixed nltk version 3.9.3 requires Python>=3.10 and is used 
there
 
     # Continue with exit code 0 when vulnerabilities are found.
     continue-on-vulnerability-error: False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/.safety-policy-install.yml 
new/nocaselist-2.2.1/.safety-policy-install.yml
--- old/nocaselist-2.2.0/.safety-policy-install.yml     2026-01-04 
23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/.safety-policy-install.yml     2026-08-31 
10:57:00.029971400 +0200
@@ -17,11 +17,25 @@
     # Should be set to False.
     ignore-cvss-unknown-severity: False
 
+    # Ignore unpinned requirements
+    # Default is true. "Unpinned" in this case means anything else but "==".
+    # Since we are checking against the minimum-constraints file, this check
+    # is enabled (false).
+    ignore-unpinned-requirements: false
+
     # List of specific vulnerabilities to ignore.
     # {id}:                 # vulnerability ID
     #     reason: {text}    # optional: Reason for ignoring it. Will be 
reported in the Safety reports
     #     expires: {date}   # optional: Date when this ignore will expire
     ignore-vulnerabilities:
+        SFTY-20260420-60812:
+            reason: Fixed pip version 26.1 requires Python>=3.10 and is used 
there
+        SFTY-20260427-69629:
+            reason: Fixed pip version 26.1 requires Python>=3.10 and is used 
there
+        SFTY-20260601-69199:
+            reason: Fixed pip version 26.1.2 requires Python>=3.10 and is used 
there
+        SFTY-20260721-58460:
+            reason: Fixed setuptools version 83.0.0 requires Python>=3.10, but 
since setuptools is used in the build system, we are using the latest Python 
3.9 version 82.0.0
 
     # Continue with exit code 0 when vulnerabilities are found.
     continue-on-vulnerability-error: False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/AUTHORS.md 
new/nocaselist-2.2.1/AUTHORS.md
--- old/nocaselist-2.2.0/AUTHORS.md     2026-01-04 23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/AUTHORS.md     2026-08-31 10:57:00.029971400 +0200
@@ -4,4 +4,5 @@
 ```
 Andreas Maier <[email protected]>
 Andreas Maier <[email protected]>
+github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
 ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/Makefile 
new/nocaselist-2.2.1/Makefile
--- old/nocaselist-2.2.0/Makefile       2026-01-04 23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/Makefile       2026-08-31 10:57:00.029971400 +0200
@@ -382,10 +382,6 @@
 check_reqs: $(done_dir)/check_reqs_$(pymn)_$(PACKAGE_LEVEL).done
        @echo "Makefile: $@ done."
 
-.PHONY: safety
-safety: $(done_dir)/safety_develop_$(pymn)_$(PACKAGE_LEVEL).done 
$(done_dir)/safety_install_$(pymn)_$(PACKAGE_LEVEL).done
-       @echo "Makefile: $@ done."
-
 .PHONY: pylint
 pylint: $(done_dir)/pylint_$(pymn)_$(PACKAGE_LEVEL).done
        @echo "Makefile: $@ done."
@@ -439,8 +435,8 @@
        git pull
        git tag -f $(VERSION)
        git push -f --tags
-       git branch -D release_$(VERSION)
-       git branch -D -r origin/release_$(VERSION)
+       -git branch -D release_$(VERSION)
+       -git branch -D -r origin/release_$(VERSION)
        rm -f branch.tmp
        @echo "Done: Triggered the publish workflow - now wait for it to finish 
and verify the publishing."
        @echo "Makefile: $@ done."
@@ -484,8 +480,8 @@
        git pull
        git tag -f $(VERSION)a0
        git push -f --tags
-       git branch -D start_$(VERSION)
-       git branch -D -r origin/start_$(VERSION)
+       -git branch -D start_$(VERSION)
+       -git branch -D -r origin/start_$(VERSION)
        rm -f branch.tmp
        @echo "Done: Pushed the release start tag and cleaned up the release 
start branch."
        @echo "Makefile: $@ done."
@@ -629,19 +625,12 @@
        @echo "Makefile: Done running Mypy"
        echo "done" >$@
 
-$(done_dir)/safety_develop_$(pymn)_$(PACKAGE_LEVEL).done: 
$(done_dir)/develop_$(pymn)_$(PACKAGE_LEVEL).done $(safety_develop_policy_file) 
minimum-constraints-develop.txt minimum-constraints-install.txt
-       -$(call RM_FUNC,$@)
-       @echo "Makefile: Running Safety for development packages (and tolerate 
safety issues when RUN_TYPE is normal or scheduled)"
-       bash -c "safety check --policy-file $(safety_develop_policy_file) -r 
minimum-constraints-develop.txt --full-report || test '$(RUN_TYPE)' == 'normal' 
|| test '$(RUN_TYPE)' == 'scheduled' || exit 1"
-       @echo "Makefile: Done running Safety for development packages"
-       echo "done" >$@
-
-$(done_dir)/safety_install_$(pymn)_$(PACKAGE_LEVEL).done: 
$(done_dir)/develop_$(pymn)_$(PACKAGE_LEVEL).done $(safety_install_policy_file) 
minimum-constraints-install.txt
-       -$(call RM_FUNC,$@)
-       @echo "Makefile: Running Safety for install packages (and tolerate 
safety issues when RUN_TYPE is normal)"
+.PHONY: safety
+safety: $(done_dir)/develop_$(pymn)_$(PACKAGE_LEVEL).done Makefile 
$(safety_develop_policy_file) $(safety_install_policy_file) 
minimum-constraints-develop.txt minimum-constraints-install.txt 
minimum-constraints-install.txt
+       @echo "Makefile: Running Safety"
        bash -c "safety check --policy-file $(safety_install_policy_file) -r 
minimum-constraints-install.txt --full-report || test '$(RUN_TYPE)' == 'normal' 
|| exit 1"
-       @echo "Makefile: Done running Safety for install packages"
-       echo "done" >$@
+       bash -c "safety check --policy-file $(safety_develop_policy_file) -r 
minimum-constraints-develop.txt --full-report || test '$(RUN_TYPE)' == 'normal' 
|| test '$(RUN_TYPE)' == 'scheduled' || exit 1"
+       @echo "Makefile: Done running Safety"
 
 $(done_dir)/check_reqs_$(pymn)_$(PACKAGE_LEVEL).done: 
$(done_dir)/develop_$(pymn)_$(PACKAGE_LEVEL).done 
minimum-constraints-develop.txt minimum-constraints-install.txt requirements.txt
        @echo "Makefile: Checking missing dependencies of the package"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/PKG-INFO 
new/nocaselist-2.2.1/PKG-INFO
--- old/nocaselist-2.2.0/PKG-INFO       2026-01-04 23:03:40.423440700 +0100
+++ new/nocaselist-2.2.1/PKG-INFO       2026-08-31 10:57:50.172489600 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: nocaselist
-Version: 2.2.0
+Version: 2.2.1
 Summary: A case-insensitive list for Python
 Author-email: Andreas Maier <[email protected]>
 Maintainer-email: Andreas Maier <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/base-requirements.txt 
new/nocaselist-2.2.1/base-requirements.txt
--- old/nocaselist-2.2.0/base-requirements.txt  2026-01-04 23:03:08.000000000 
+0100
+++ new/nocaselist-2.2.1/base-requirements.txt  2026-08-31 10:57:00.029971400 
+0200
@@ -5,7 +5,8 @@
 # Base dependencies (must be consistent with minimum-constraints-install.txt
 # and build-system.requires in pyproject.toml)
 
-pip>=25.2
-setuptools>=78.1.1
+pip>=26.0.1; python_version == '3.9'
+pip>=26.1.2; python_version >= '3.10'
+setuptools>=82.0.0
 setuptools-scm[toml]>=9.2.0
-wheel>=0.41.3
+wheel>=0.46.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/dev-requirements.txt 
new/nocaselist-2.2.1/dev-requirements.txt
--- old/nocaselist-2.2.0/dev-requirements.txt   2026-01-04 23:03:08.000000000 
+0100
+++ new/nocaselist-2.2.1/dev-requirements.txt   2026-08-31 10:57:00.030607000 
+0200
@@ -6,14 +6,18 @@
 
 # PEP517 package builder, used in Makefile
 build>=1.0.0
-virtualenv>=20.26.6
+virtualenv>=21.3.0
+python-discovery>=1.2.2
 pyproject-hooks>=1.1.0
 
 # Change log
 towncrier>=22.8.0
 
 # Unit test (e.g. imports into testcases):
-pytest>=8.0.2
+pytest>=8.0.2; python_version == '3.9'
+pytest>=9.0.3; python_version >= '3.10'
+pluggy>=1.3.0; python_version == '3.9'
+pluggy>=1.5.0; python_version >= '3.10'
 
 # Coverage reporting (no imports, invoked via coveralls script):
 # coveralls 3.3.0 pins coverage to <7.0, causing pip backtracking to happen. 
Pinning
@@ -24,27 +28,19 @@
 coveralls>=3.3.0
 
 # Safety CI by pyup.io
-safety>=3.6.1; python_version == '3.8'
-safety>=3.7.0; python_version >= '3.9'
-safety-schemas>=0.0.14; python_version == '3.8'
-safety-schemas>=0.0.16; python_version >= '3.9'
+safety>=3.8.1
+safety-schemas>=0.0.16
 dparse>=0.6.4
-ruamel.yaml>=0.17.21
-click>=8.0.2
-Authlib>=1.6.5
-marshmallow>=3.15.0
-pydantic>=2.8.0; python_version == '3.8'
-pydantic>=2.12.0; python_version >= '3.9'
-pydantic_core>=2.20.0; python_version == '3.8'
-pydantic_core>=2.41.1; python_version >= '3.9'
-# typer >=0.17.0 causes import issue for safety, see 
https://github.com/pyupio/safety/issues/778
+ruamel.yaml>=0.19.1
+Authlib>=1.6.12
+marshmallow>=3.26.2
+pydantic>=2.12.0
+pydantic_core>=2.41.1
 typer>=0.16.0
 typer-cli>=0.16.0
 typer-slim>=0.16.0
-# safety 3.4.0 depends on psutil~=6.1.0
-psutil~=6.1.0
-# safety 3.4.0 requires filelock~=3.16.1
-filelock~=3.16.1
+# safety 3.8.1 depends on ruststore>=0.10.4 only on Python>=3.10
+truststore>=0.10.4; python_version >= '3.10'
 
 # PyYAML is pulled in by dparse
 # PyYAML is also pulled in by dparse and python-coveralls
@@ -63,8 +59,8 @@
 # Sphinx 7.1.0 pins docutils to <0.21
 docutils>=0.18.1
 sphinx-git>=10.1.1
-GitPython>=3.1.41
-Pygments>=2.15.0
+GitPython>=3.1.50
+Pygments>=2.20.0
 sphinx-rtd-theme>=2.0.0
 sphinxcontrib-applehelp>=1.0.4
 sphinxcontrib-devhelp>=1.0.2
@@ -74,7 +70,7 @@
 sphinxcontrib-qthelp>=1.0.3
 sphinxcontrib-serializinghtml>=1.1.9
 sphinxcontrib-websupport>=1.2.4
-autodocsumm>=0.2.12
+autodocsumm>=0.2.14
 Babel>=2.11.0
 
 # PyLint (no imports, invoked via pylint script)
@@ -85,7 +81,7 @@
 lazy-object-proxy>=1.4.3
 wrapt>=1.14
 # platformdirs is also used by tox
-platformdirs>=4.1.0
+platformdirs>=4.3.6
 isort>=5.0.9
 tomlkit>=0.10.1
 dill>=0.3.7
@@ -104,8 +100,7 @@
 importlib-metadata>=4.8.3
 
 # Mypy (no imports, invoked via mypy script)
-mypy>=1.14.1; python_version == '3.8'
-mypy>=1.17.1; python_version >= '3.9'
+mypy>=1.17.1
 
 # Package dependency management tools
 pipdeptree>=2.24.0
@@ -115,9 +110,6 @@
 # setuptools>=77.0.0 requires packaging>=24.2 to work properly
 packaging>=24.2
 
-# pluggy (used by pytest, tox)
-pluggy>=1.3.0
-
 # pytz (used by TBD)
 pytz>=2019.1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/docs/changes.rst 
new/nocaselist-2.2.1/docs/changes.rst
--- old/nocaselist-2.2.0/docs/changes.rst       2026-01-04 23:03:08.000000000 
+0100
+++ new/nocaselist-2.2.1/docs/changes.rst       2026-08-31 10:57:00.030839200 
+0200
@@ -15,6 +15,27 @@
    .. include:: tmp_changes.rst
 
 .. towncrier start
+nocaselist 2.2.1
+----------------
+
+Released: 2026-08-31
+
+**Bug fixes:**
+
+* Fixed safety issues up to 2026-08-23.
+
+* Dev: Fixed link to change log on GitHub release page.
+
+* Development: Tolerate premature deletion of local release/start branches.
+
+* Docs: Migrated from our own support for generating summary tables in the
+  documentation to using autodocsumm to fix an import error with Sphinx 9.
+
+**Cleanup:**
+
+* Development: Upgraded GitHub Actions plugins to versions that use node.js 24.
+
+
 nocaselist 2.2.0
 ----------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/docs/conf.py 
new/nocaselist-2.2.1/docs/conf.py
--- old/nocaselist-2.2.0/docs/conf.py   2026-01-04 23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/docs/conf.py   2026-08-31 10:57:00.030839200 +0200
@@ -18,13 +18,7 @@
 
 import sys
 import os
-import inspect
 import setuptools_scm
-from sphinx.ext.autosummary import Autosummary
-from sphinx.ext.autosummary import get_documenter
-from sphinx.util.inspect import safe_getattr
-from sphinx.util import logging
-from docutils.parsers.rst import directives
 
 
 XYZ_VAR = 'xyz'
@@ -60,6 +54,7 @@
     'sphinx.ext.viewcode',   # disabed, raises anexception
     'sphinx.ext.ifconfig',
     'sphinx_rtd_theme',
+    'autodocsumm',
 ]
 
 # Add any paths that contain templates here, relative to this directory.
@@ -459,6 +454,15 @@
 # process.
 autodoc_mock_imports = []
 
+# -- Options for autodocsumm extension ------------------------------------
+# For documentation, see
+# https://autodocsumm.readthedocs.io/en/latest/
+
+# Default options to be applied by autodocsumm to ::autoclass and all
+# other ::auto... directives. While it would nicely allow specifying autoclass
+# options that have values, autodocsumm applies this setting to all directives,
+# and autosummary cannot be turned off by directive, so we don't use it.
+autodoc_default_options = {}
 
 # -- Options for intersphinx extension ------------------------------------
 # For documentation, see
@@ -528,166 +532,3 @@
 extlinks = {
 
 }
-
-# -- Support for autoautosummary ----------------------------------------------
-#
-# Idea taken from https://stackoverflow.com/a/30783465/1424462
-#
-
-
-class AutoAutoSummary(Autosummary):
-    """
-    Sphinx extension that automatically generates a table of public methods or
-    attributes of a class, using the AutoSummary extension.
-    (i.e. each row in the table shows the method or attribute name with a
-    link to the full description, and a one-line brief description).
-
-    Usage in RST source::
-
-        .. autoclass:: path.to.class
-           :<autoclass-options>:
-
-           .. rubric:: Methods
-
-           .. autoautosummary:: path.to.class
-              :methods:
-
-           .. rubric:: Attributes
-
-           .. autoautosummary:: path.to.class
-              :attributes:
-
-           .. rubric:: Details
-
-    """
-
-    option_spec = {
-        'methods': directives.unchanged,
-        'attributes': directives.unchanged
-    }
-    option_spec.update(Autosummary.option_spec)
-
-    required_arguments = 1  # Fully qualified class name
-
-    def __init__(self, *args, **kwargs):
-        self._logger = logging.getLogger(__name__)  # requires Sphinx 1.6.1
-        self._log_prefix = "conf.py/AutoAutoSummary"
-        self._excluded_classes = ['BaseException']
-        super().__init__(*args, **kwargs)
-
-    def _get_members(self, class_obj, member_type, include_in_public=None):
-        """
-        Return class members of the specified type.
-
-        class_obj: Class object.
-
-        member_type: Member type ('method' or 'attribute').
-
-        include_in_public: set/list/tuple with member names that should be
-          included in public members in addition to the public names (those
-          starting without underscore).
-
-        Returns:
-          tuple(public_members, all_members): Names of the class members of
-            the specified member type (public / all).
-        """
-        try:
-            app = self.state.document.settings.env.app
-        except AttributeError:
-            app = None
-        if not include_in_public:
-            include_in_public = []
-        all_members = []
-        for member_name in dir(class_obj):
-            try:
-                documenter = get_documenter(
-                    app,
-                    safe_getattr(class_obj, member_name),
-                    class_obj)
-            except AttributeError:
-                continue
-            if documenter.objtype == member_type:
-                all_members.append(member_name)
-        public_members = [x for x in all_members
-                          if x in include_in_public or not x.startswith('_')]
-        return public_members, all_members
-
-    def _get_def_class(self, class_obj, member_name):
-        """
-        Return the class object in MRO order that defines a member.
-
-        class_obj: Class object that exposes (but not necessarily defines) the
-          member. I.e. starting point of the search.
-
-        member_name: Name of the member (method or attribute).
-
-        Returns:
-          Class object that defines the member.
-        """
-        for def_class_obj in inspect.getmro(class_obj):
-            if member_name in def_class_obj.__dict__:
-                if def_class_obj.__name__ in self._excluded_classes:
-                    return class_obj  # Fall back to input class
-                return def_class_obj
-        self._logger.warning(
-            "%s: Definition class not found for member %s.%s, "
-            "defaulting to class %s",
-            self._log_prefix, class_obj.__name__, member_name,
-            class_obj.__name__)
-        return class_obj  # Input class is better than nothing
-
-    def run(self):
-
-        try:
-            full_class_name = str(self.arguments[0])
-            module_name, class_name = full_class_name.rsplit('.', 1)
-            module_obj = __import__(module_name, globals(), locals(),
-                                    [class_name])
-            class_obj = getattr(module_obj, class_name)
-            if 'methods' in self.options:
-                _, methods = self._get_members(
-                    class_obj, 'method', ['__init__'])
-                self.content = []
-                for method in methods:
-                    if method.startswith('_'):
-                        # Skip private methods
-                        continue
-                    def_class = self._get_def_class(class_obj, method)
-                    def_module_name = def_class.__module__
-                    if def_module_name.startswith('nocaselist'):
-                        def_module_name = def_module_name.split('.')[0]
-                    # As of Sphinx 8.2.3, autosummary method references need
-                    # to be relative to the Python package, in order to avoid
-                    # the warning:
-                    # "Summarised items should not include the current module".
-                    content_str = f"~{def_class.__name__}.{method}"
-                    self.content.append(content_str)
-            elif 'attributes' in self.options:
-                _, attributes = self._get_members(class_obj, 'attribute')
-                self.content = []
-                for attrib in attributes:
-                    if attrib.startswith('_'):
-                        # Skip private attributes
-                        continue
-                    def_class = self._get_def_class(class_obj, attrib)
-                    def_module_name = def_class.__module__
-                    if def_module_name.startswith('nocaselist'):
-                        def_module_name = def_module_name.split('.')[0]
-                    # As of Sphinx 8.2.3, autosummary attribute references need
-                    # to be relative to the Python package, in order to avoid
-                    # the warning:
-                    # "Summarised items should not include the current module".
-                    content_str = f"~{def_class.__name__}.{attrib}"
-                    self.content.append(content_str)
-
-        except Exception as exc:  # pylint: disable=broad-exception-caught
-            self._logger.error(
-                "%s: Internal error: %s: %s",
-                self._log_prefix, exc.__class__.__name__, exc)
-
-        return super().run()
-
-
-def setup(app):
-    """Additional Sphinx setup"""
-    app.add_directive('autoautosummary', AutoAutoSummary)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/docs/reference.rst 
new/nocaselist-2.2.1/docs/reference.rst
--- old/nocaselist-2.2.0/docs/reference.rst     2026-01-04 23:03:08.000000000 
+0100
+++ new/nocaselist-2.2.1/docs/reference.rst     2026-08-31 10:57:00.030839200 
+0200
@@ -15,21 +15,7 @@
 
 .. autoclass:: nocaselist.NocaseList
    :members:
-   :special-members: __getitem__
-
-   .. # Note, we want to exclude __init__. Specifying one other special member
-   .. # ba name causes __init__ to be excluded and all other special methods to
-   .. # be included.
-
-   .. rubric:: Methods
-
-   .. autoautosummary:: nocaselist.NocaseList
-      :methods:
-      :nosignatures:
-
-   .. rubric:: Attributes
-
-   .. autoautosummary:: nocaselist.NocaseList
-      :attributes:
-
-   .. rubric:: Details
+   :special-members:
+   :exclude-members: __init__,__weakref__,__hash__
+   :autosummary:
+   :autosummary-inherited-members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/minimum-constraints-develop.txt 
new/nocaselist-2.2.1/minimum-constraints-develop.txt
--- old/nocaselist-2.2.0/minimum-constraints-develop.txt        2026-01-04 
23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/minimum-constraints-develop.txt        2026-08-31 
10:57:00.030839200 +0200
@@ -10,7 +10,8 @@
 
 # PEP517 package builder, used in Makefile
 build==1.0.0
-virtualenv==20.26.6
+virtualenv==21.3.0
+python-discovery==1.2.2
 pyproject-hooks==1.1.0
 
 # Change log
@@ -19,7 +20,10 @@
 click-default-group==1.2.4
 
 # Unit test (e.g. imports into testcases):
-pytest==8.0.2
+pytest==8.0.2; python_version == '3.9'
+pytest==9.0.3; python_version >= '3.10'
+pluggy==1.3.0; python_version == '3.9'
+pluggy==1.5.0; python_version >= '3.10'
 
 # Install test:
 six==1.16.0
@@ -30,24 +34,18 @@
 coveralls==3.3.0
 
 # Safety CI by pyup.io
-safety==3.6.1; python_version == '3.8'
-safety==3.7.0; python_version >= '3.9'
-safety-schemas==0.0.14; python_version == '3.8'
-safety-schemas==0.0.16; python_version >= '3.9'
+safety==3.8.1
+safety-schemas==0.0.16
 dparse==0.6.4
-ruamel.yaml==0.17.21
-click==8.0.2
-Authlib==1.6.5
-marshmallow==3.15.0
-pydantic==2.8.0; python_version == '3.8'
-pydantic==2.12.0; python_version >= '3.9'
-pydantic_core==2.20.0; python_version == '3.8'
-pydantic_core==2.41.1; python_version >= '3.9'
+ruamel.yaml==0.19.1
+Authlib==1.6.12
+marshmallow==3.26.2
+pydantic==2.12.0
+pydantic_core==2.41.1
 typer==0.16.0
 typer-cli==0.16.0
 typer-slim==0.16.0
-psutil==6.1.0
-filelock==3.16.1
+truststore==0.10.4; python_version >= '3.10'
 
 # PyYAML is pulled in by dparse
 PyYAML==6.0.2
@@ -59,8 +57,8 @@
 Sphinx==7.2.0
 docutils==0.18.1
 sphinx-git==10.1.1
-GitPython==3.1.41
-Pygments==2.15.0
+GitPython==3.1.59
+Pygments==2.20.0
 sphinx-rtd-theme==2.0.0
 sphinxcontrib-applehelp==1.0.4
 sphinxcontrib-devhelp==1.0.2
@@ -70,7 +68,7 @@
 sphinxcontrib-qthelp==1.0.3
 sphinxcontrib-serializinghtml==1.1.9
 sphinxcontrib-websupport==1.2.4
-autodocsumm==0.2.12
+autodocsumm==0.2.14
 Babel==2.11.0
 # Sphinx 8.2.0 started using roman-numerals-py
 roman-numerals-py==4.1.0
@@ -83,7 +81,7 @@
 astroid==4.0.2; python_version >= '3.10'
 lazy-object-proxy==1.4.3
 wrapt==1.14
-platformdirs==4.1.0
+platformdirs==4.3.6
 isort==5.0.9
 tomlkit==0.10.1
 dill==0.3.7
@@ -102,8 +100,7 @@
 importlib-metadata==4.8.3
 
 # Mypy (no imports, invoked via mypy script)
-mypy==1.14.1; python_version == '3.8'
-mypy==1.17.1; python_version >= '3.9'
+mypy==1.17.1
 
 # Package dependency management tools
 pipdeptree==2.24.0
@@ -112,9 +109,6 @@
 # packaging (used by pytest, safety)
 packaging==24.2
 
-# pluggy (used by pytest, tox)
-pluggy==1.3.0
-
 # pytz (used by TBD)
 pytz==2019.1
 
@@ -128,33 +122,39 @@
 appdirs==1.4.4
 args==0.1.0
 attrs==19.2.0
-bleach==3.3.0
 certifi==2024.7.4
 chardet==3.0.3
+Click==8.0.2
 contextlib2==0.6.0
+# defusedxml is used only by nltk>=3.10.0 which requires Python>=3.10
+defusedxml==0.7.1; python_version >= '3.10'
 distlib==0.3.7
 docopt==0.6.1
+filelock==3.16.1; python_version == '3.9'
+filelock==3.24.2; python_version >= '3.10'
 gitdb==4.0.1
 httpx==0.28.1
 id==1.5.0
 # idna>3 requires using requests >=2.26.0
-idna==3.7
+idna==3.15
 imagesize==1.3.0
-# importlib-resources is used by jsonschema 4.17+ on py<=3.8, 
jsonschema-specifications 2023.12.1 on py<=3.8, jupyterlab 4.2.6 on py<=3.8, 
towncrier 23.6+ on py<=3.9
+# importlib-resources is used by towncrier 23.6+ on py<=3.9
 importlib-resources==5.6.0; python_version <= '3.9'
 Jinja2==3.1.6
 keyring==17.0.0
 levenshtein==0.25.1
 MarkupSafe==2.0.0
 more-itertools==5.0.0
-nltk==3.9.2
+nltk==3.9.2; python_version == '3.9'
+nltk==3.10.0; python_version >= '3.10'
 pkginfo==1.4.2
 py==1.11.0
 pyparsing==2.4.7
 python-dateutil==2.6.0
 # pyzmq 26.1.0 added wheel archives for Python 3.13
 pyzmq==26.1.0
-requests==2.32.4
+requests==2.32.5; python_version == '3.9'
+requests==2.33.0; python_version >= '3.10'
 requests-mock==1.6.0
 requests-toolbelt==0.8.0
 rfc3986==1.3.0
@@ -166,7 +166,8 @@
 toml==0.10.0
 tomli==2.0.1
 tqdm==4.66.3
-urllib3==2.5.0
+urllib3==2.6.3; python_version == '3.9'
+urllib3==2.7.0; python_version >= '3.10'
 wcwidth==0.1.7
 webencodings==0.5.1
 zipp==3.19.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/minimum-constraints-install.txt 
new/nocaselist-2.2.1/minimum-constraints-install.txt
--- old/nocaselist-2.2.0/minimum-constraints-install.txt        2026-01-04 
23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/minimum-constraints-install.txt        2026-08-31 
10:57:00.030839200 +0200
@@ -7,11 +7,12 @@
 
 # Base dependencies (must be consistent with base-requirements.txt)
 
-pip==25.2
-setuptools==78.1.1
+pip==26.0.1; python_version == '3.9'
+pip==26.1.2; python_version >= '3.10'
+setuptools==82.0.0
 # Note on not specifying 'setuptools-scm[toml]': Extras cannot be in 
constraints files
 setuptools-scm==9.2.0
-wheel==0.41.3
+wheel==0.46.2
 
 
 # Direct dependencies for installation (must be consistent with 
requirements.txt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/nocaselist/_version_scm.py 
new/nocaselist-2.2.1/nocaselist/_version_scm.py
--- old/nocaselist-2.2.0/nocaselist/_version_scm.py     2026-01-04 
23:03:40.000000000 +0100
+++ new/nocaselist-2.2.1/nocaselist/_version_scm.py     2026-08-31 
10:57:50.089978000 +0200
@@ -1,5 +1,6 @@
-# file generated by setuptools-scm
+# file generated by vcs-versioning
 # don't change, don't track in version control
+from __future__ import annotations
 
 __all__ = [
     "__version__",
@@ -10,25 +11,14 @@
     "commit_id",
 ]
 
-TYPE_CHECKING = False
-if TYPE_CHECKING:
-    from typing import Tuple
-    from typing import Union
-
-    VERSION_TUPLE = Tuple[Union[int, str], ...]
-    COMMIT_ID = Union[str, None]
-else:
-    VERSION_TUPLE = object
-    COMMIT_ID = object
-
 version: str
 __version__: str
-__version_tuple__: VERSION_TUPLE
-version_tuple: VERSION_TUPLE
-commit_id: COMMIT_ID
-__commit_id__: COMMIT_ID
+__version_tuple__: tuple[int | str, ...]
+version_tuple: tuple[int | str, ...]
+commit_id: str | None
+__commit_id__: str | None
 
-__version__ = version = '2.2.0'
-__version_tuple__ = version_tuple = (2, 2, 0)
+__version__ = version = '2.2.1'
+__version_tuple__ = version_tuple = (2, 2, 1)
 
-__commit_id__ = commit_id = 'g00f46bb9e'
+__commit_id__ = commit_id = 'g761fb40e7'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/nocaselist.egg-info/PKG-INFO 
new/nocaselist-2.2.1/nocaselist.egg-info/PKG-INFO
--- old/nocaselist-2.2.0/nocaselist.egg-info/PKG-INFO   2026-01-04 
23:03:40.000000000 +0100
+++ new/nocaselist-2.2.1/nocaselist.egg-info/PKG-INFO   2026-08-31 
10:57:50.135439400 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: nocaselist
-Version: 2.2.0
+Version: 2.2.1
 Summary: A case-insensitive list for Python
 Author-email: Andreas Maier <[email protected]>
 Maintainer-email: Andreas Maier <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/nocaselist.egg-info/SOURCES.txt 
new/nocaselist-2.2.1/nocaselist.egg-info/SOURCES.txt
--- old/nocaselist-2.2.0/nocaselist.egg-info/SOURCES.txt        2026-01-04 
23:03:40.000000000 +0100
+++ new/nocaselist-2.2.1/nocaselist.egg-info/SOURCES.txt        2026-08-31 
10:57:50.146433400 +0200
@@ -45,6 +45,8 @@
 nocaselist.egg-info/SOURCES.txt
 nocaselist.egg-info/dependency_links.txt
 nocaselist.egg-info/requires.txt
+nocaselist.egg-info/scm_file_list.json
+nocaselist.egg-info/scm_version.json
 nocaselist.egg-info/top_level.txt
 nocaselist.egg-info/zip-safe
 packaging/fedora/Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nocaselist-2.2.0/nocaselist.egg-info/scm_file_list.json 
new/nocaselist-2.2.1/nocaselist.egg-info/scm_file_list.json
--- old/nocaselist-2.2.0/nocaselist.egg-info/scm_file_list.json 1970-01-01 
01:00:00.000000000 +0100
+++ new/nocaselist-2.2.1/nocaselist.egg-info/scm_file_list.json 2026-08-31 
10:57:50.130979500 +0200
@@ -0,0 +1,58 @@
+{
+  "files": [
+    ".coveragerc",
+    ".flake8",
+    ".github/ISSUE_TEMPLATE.md",
+    ".github/workflows/notify.yml",
+    ".github/workflows/publish.yml",
+    ".github/workflows/test.yml",
+    ".gitignore",
+    ".readthedocs.yaml",
+    ".safety-policy-develop.yml",
+    ".safety-policy-install.yml",
+    "AUTHORS.md",
+    "INSTALL.md",
+    "LICENSE",
+    "Makefile",
+    "README.md",
+    "SECURITY.md",
+    "base-requirements.txt",
+    "changes/.gitignore",
+    "changes/changes.rst.j2",
+    "design/README.md",
+    "dev-requirements.txt",
+    "docs/_static/basic.css",
+    "docs/_static/classic.css",
+    "docs/appendix.rst",
+    "docs/changes.rst",
+    "docs/conf.py",
+    "docs/development.rst",
+    "docs/index.rst",
+    "docs/intro.rst",
+    "docs/reference.rst",
+    "done/.dummy",
+    "minimum-constraints-develop.txt",
+    "minimum-constraints-install.txt",
+    "nocaselist/__init__.py",
+    "nocaselist/_nocaselist.py",
+    "nocaselist/_version.py",
+    "nocaselist/py.typed",
+    "packaging/fedora/Makefile",
+    "packaging/fedora/README.md",
+    "packaging/fedora/python-nocaselist-1.0.2-1.fc34.src.rpm",
+    "packaging/fedora/python-nocaselist.spec",
+    "pylintrc",
+    "pyproject.toml",
+    "requirements.txt",
+    "tests/__init__.py",
+    "tests/installtest/test_install.sh",
+    "tests/unittest/__init__.py",
+    "tests/unittest/test_nocaselist.py",
+    "tests/unittest/test_package.py",
+    "tests/utils/__init__.py",
+    "tests/utils/import_installed.py",
+    "tests/utils/simplified_test_function.py",
+    "towncrier.toml",
+    "tox.ini"
+  ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nocaselist-2.2.0/nocaselist.egg-info/scm_version.json 
new/nocaselist-2.2.1/nocaselist.egg-info/scm_version.json
--- old/nocaselist-2.2.0/nocaselist.egg-info/scm_version.json   1970-01-01 
01:00:00.000000000 +0100
+++ new/nocaselist-2.2.1/nocaselist.egg-info/scm_version.json   2026-08-31 
10:57:50.125191000 +0200
@@ -0,0 +1,8 @@
+{
+  "tag": "2.2.1",
+  "distance": 0,
+  "node": "g761fb40e7df36ae2378d3e290588234f05331be7",
+  "dirty": false,
+  "branch": "HEAD",
+  "node_date": "2026-08-31"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nocaselist-2.2.0/pyproject.toml 
new/nocaselist-2.2.1/pyproject.toml
--- old/nocaselist-2.2.0/pyproject.toml 2026-01-04 23:03:08.000000000 +0100
+++ new/nocaselist-2.2.1/pyproject.toml 2026-08-31 10:57:00.031610300 +0200
@@ -7,9 +7,9 @@
 requires = [
     # Keep in sync with base-requirements.txt and the base dependencies in
     # minimum-constraints-install.txt
-    "setuptools>=78.1.1",
+    "setuptools>=82.0.0",
     "setuptools-scm[toml]>=9.2.0",
-    "wheel>=0.41.3"
+    "wheel>=0.46.2"
 ]
 build-backend = "setuptools.build_meta"
 

Reply via email to