diff --color -ur a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml --- a/.github/workflows/python-package.yml 2021-03-21 00:08:08.248447512 +0100 +++ b/.github/workflows/python-package.yml 2021-03-21 00:10:21.775473081 +0100 @@ -14,7 +14,7 @@ strategy: matrix: os: [ubuntu-latest] - python-version: [3.5, 3.6, 3.7, 3.8] + python-version: [3.6, 3.7, 3.8] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} diff --color -ur a/HACKING.md b/HACKING.md --- a/HACKING.md 2021-03-21 00:08:08.248447512 +0100 +++ b/HACKING.md 2021-03-21 00:10:50.213053120 +0100 @@ -43,9 +43,9 @@ You can build each one of them like this: ``` -nix-build -A pythonVersions.rss2email-python_3_5 nix/release.nix nix-build -A pythonVersions.rss2email-python_3_6 nix/release.nix nix-build -A pythonVersions.rss2email-python_3_7 nix/release.nix +nix-build -A pythonVersions.rss2email-python_3_8 nix/release.nix … ``` diff --color -ur a/nix/release.nix b/nix/release.nix --- a/nix/release.nix 2021-03-21 00:08:08.248447512 +0100 +++ b/nix/release.nix 2021-03-21 00:11:37.012362008 +0100 @@ -3,7 +3,6 @@ pkgs = import nixpkgs {}; supportedPackageSets = [ - { version = "3_5"; set = pkgs.python35Packages; } { version = "3_6"; set = pkgs.python36Packages; } { version = "3_7"; set = pkgs.python37Packages; } { version = "3_8"; set = pkgs.python38Packages; } @@ -31,7 +30,7 @@ ''; }; - # { "rss2email-python_3_5" = ; … } + # { "rss2email-python_3_6" = ; … } rss2emailVersions = (pkgs.lib.listToAttrs (map diff --color -ur a/requirements.txt b/requirements.txt --- a/requirements.txt 2021-03-21 00:08:08.248447512 +0100 +++ b/requirements.txt 2021-03-21 00:09:21.456363851 +0100 @@ -1,2 +1,2 @@ -feedparser==5.2.1 +feedparser>=6.0.0 html2text==2020.1.16 diff --color -ur a/rss2email/email.py b/rss2email/email.py --- a/rss2email/email.py 2021-03-21 00:08:08.249447497 +0100 +++ b/rss2email/email.py 2021-03-21 00:13:20.919827528 +0100 @@ -325,7 +325,7 @@ """ bytesio = _io.BytesIO() # TODO: use policies argument instead of policy set in `message` - # see https://docs.python.org/3.5/library/email.generator.html?highlight=bytesgenerator#email.generator.BytesGenerator + # see https://docs.python.org/3.6/library/email.generator.html?highlight=bytesgenerator#email.generator.BytesGenerator generator = _BytesGenerator(bytesio) try: generator.flatten(message) diff --color -ur a/rss2email/feed.py b/rss2email/feed.py --- a/rss2email/feed.py 2021-03-21 00:08:08.249447497 +0100 +++ b/rss2email/feed.py 2021-03-21 00:13:47.857429725 +0100 @@ -433,7 +433,7 @@ elif isinstance(exc, _SOCKET_ERRORS): _LOG.error('{}: {}'.format(exc, self)) warned = True - elif isinstance(exc, _feedparser.zlib.error): + elif isinstance(exc, _feedparser.http.zlib.error): _LOG.error('broken compression: {}'.format(self)) warned = True elif isinstance(exc, (IOError, AttributeError)): diff --color -ur a/setup.py b/setup.py --- a/setup.py 2021-03-21 00:08:08.248447512 +0100 +++ b/setup.py 2021-03-21 00:11:57.771055446 +0100 @@ -54,7 +54,6 @@ 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', @@ -65,7 +64,7 @@ scripts=['r2e'], provides=['rss2email'], install_requires=[ - 'feedparser>=5.0.1, <6.0', + 'feedparser>=6.0.0', 'html2text>=3.0.1', ], ) diff --color -ur a/test/data/disqus/1.expected b/test/data/disqus/1.expected --- a/test/data/disqus/1.expected 2021-03-21 00:08:08.252447452 +0100 +++ b/test/data/disqus/1.expected 2021-03-21 00:12:46.569334811 +0100 @@ -43,7 +43,7 @@ List-ID: List-Post: NO (posting not allowed on this list) X-RSS-Feed: data/disqus/feed.rss -X-RSS-ID: ab03f2100069a1cd0876b997be87976c18d48e8a +X-RSS-ID: a52375ec78a988241fe9864a2243d4d910538d52 X-RSS-URL: http://software-carpentry.org/2012/11/who-wants-to-write-a-little-code/#comment-713578640 @Hans-Martin