Thu Jan 30 18:02:42 2020 UTC ()
Update to 0.15.0 (by diffing git tags, no new distfile available). From
the changelog:

- Play catchup with newer html2text version again
- Workaround timezone parsing bug in dateparser
- Switch to dateparser for PyPI and tests as well
- Register properly the special mark we are using
- Reduce noise level of 'missing time' problems


(schmonz)
diff -r1.1 -r1.2 pkgsrc/mail/feed2exec/Makefile
diff -r0 -r1.1 pkgsrc/mail/feed2exec/files/patch-0.15.0

cvs diff -r1.1 -r1.2 pkgsrc/mail/feed2exec/Makefile (expand / switch to unified diff)

--- pkgsrc/mail/feed2exec/Makefile 2020/01/29 16:48:48 1.1
+++ pkgsrc/mail/feed2exec/Makefile 2020/01/30 18:02:41 1.2
@@ -1,16 +1,17 @@ @@ -1,16 +1,17 @@
1# $NetBSD: Makefile,v 1.1 2020/01/29 16:48:48 schmonz Exp $ 1# $NetBSD: Makefile,v 1.2 2020/01/30 18:02:41 schmonz Exp $
2 2
3DISTNAME= feed2exec-0.14.0 3DISTNAME= feed2exec-0.14.0
 4PKGNAME= ${DISTNAME:S/14/15/}
4CATEGORIES= mail python 5CATEGORIES= mail python
5MASTER_SITES= https://gitlab.com/anarcat/feed2exec/-/archive/${PKGVERSION_NOREV}/ 6MASTER_SITES= https://gitlab.com/anarcat/feed2exec/-/archive/${PKGVERSION_NOREV}/
6 7
7MAINTAINER= schmonz@NetBSD.org 8MAINTAINER= schmonz@NetBSD.org
8HOMEPAGE= https://feed2exec.readthedocs.io/ 9HOMEPAGE= https://feed2exec.readthedocs.io/
9COMMENT= The programmable feed reader 10COMMENT= The programmable feed reader
10LICENSE= gnu-agpl-v3 11LICENSE= gnu-agpl-v3
11 12
12PYTHON_VERSIONS_INCOMPATIBLE= 27 13PYTHON_VERSIONS_INCOMPATIBLE= 27
13 14
14BUILD_DEPENDS+= ${PYPKGPREFIX}-tox-[0-9]*:../../devel/py-tox 15BUILD_DEPENDS+= ${PYPKGPREFIX}-tox-[0-9]*:../../devel/py-tox
15BUILD_DEPENDS+= ${PYPKGPREFIX}-flakes-[0-9]*:../../devel/py-flakes 16BUILD_DEPENDS+= ${PYPKGPREFIX}-flakes-[0-9]*:../../devel/py-flakes
16BUILD_DEPENDS+= ${PYPKGPREFIX}-sphinx-[0-9]*:../../textproc/py-sphinx 17BUILD_DEPENDS+= ${PYPKGPREFIX}-sphinx-[0-9]*:../../textproc/py-sphinx
@@ -24,16 +25,22 @@ DEPENDS+= ${PYPKGPREFIX}-requests-[0-9] @@ -24,16 +25,22 @@ DEPENDS+= ${PYPKGPREFIX}-requests-[0-9]
24DEPENDS+= ${PYPKGPREFIX}-requests-file-[0-9]*:../../devel/py-requests-file 25DEPENDS+= ${PYPKGPREFIX}-requests-file-[0-9]*:../../devel/py-requests-file
25TEST_DEPENDS+= ${PYPKGPREFIX}-betamax-[0-9]*:../../www/py-betamax 26TEST_DEPENDS+= ${PYPKGPREFIX}-betamax-[0-9]*:../../www/py-betamax
26TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test 27TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test
27TEST_DEPENDS+= ${PYPKGPREFIX}-test-cov-[0-9]*:../../devel/py-test-runner 28TEST_DEPENDS+= ${PYPKGPREFIX}-test-cov-[0-9]*:../../devel/py-test-runner
28TEST_DEPENDS+= ${PYPKGPREFIX}-test-runner-[0-9]*:../../devel/py-test-runner 29TEST_DEPENDS+= ${PYPKGPREFIX}-test-runner-[0-9]*:../../devel/py-test-runner
29 30
30USE_LANGUAGES= # none 31USE_LANGUAGES= # none
31 32
32SUBST_CLASSES+= version 33SUBST_CLASSES+= version
33SUBST_STAGE.version= pre-configure 34SUBST_STAGE.version= pre-configure
34SUBST_FILES.version= feed2exec/__init__.py 35SUBST_FILES.version= feed2exec/__init__.py
35SUBST_VARS.version= PKGVERSION_NOREV 36SUBST_VARS.version= PKGVERSION_NOREV
36 37
 38pre-patch:
 39 cd ${WRKSRC} && ${PATCH} ${PATCH_ARGS} < ${FILESDIR}/patch-0.15.0
 40
 41pre-install:
 42 find ${WRKSRC} -type f -name '*.orig' -print | xargs rm -f
 43
37.include "../../lang/python/application.mk" 44.include "../../lang/python/application.mk"
38.include "../../lang/python/egg.mk" 45.include "../../lang/python/egg.mk"
39.include "../../mk/bsd.pkg.mk" 46.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/mail/feed2exec/files/Attic/patch-0.15.0
diff --git debian/changelog debian/changelog
index 7bd9220..df1eea8 100644
--- debian/changelog
+++ debian/changelog
@@ -1,3 +1,15 @@
+feed2exec (0.15.0) unstable; urgency=medium
+
+  bugfix release to catchup with changes in feedparser from buster.
+
+  * play catchup with newer html2text version again
+  * workaround timezone parsing bug in dateparser
+  * switch to dateparser for PyPI and tests as well
+  * register properly the special mark we are using
+  * reduce noise level of 'missing time' problems
+
+ -- Antoine Beaupré <anarcat@debian.org>  Thu, 03 Oct 2019 12:36:22 -0400
+
 feed2exec (0.14.0) unstable; urgency=medium
 
   bugfix release, with a small new feature
diff --git doc/refs.rst.inc doc/refs.rst.inc
index fadf279..3531458 100644
--- doc/refs.rst.inc
+++ doc/refs.rst.inc
@@ -3,7 +3,7 @@
 .. make sure you review each line and also fix the link in webirc.html
 ..
 .. |project_name| replace:: feed2exec
-.. |irc_channel| replace:: ``#feed2exec``
+.. |irc_channel| replace:: ``#anarcat``
 .. |webirc| replace:: https://webchat.freenode.net/?nick=feed2exec.&channels=feed2exec&prompt=1
 .. _irc: ircs://irc.freenode.net/feed2exec/
 .. _webirc: https://webchat.freenode.net/?nick=feed2exec.&channels=feed2exec&prompt=1
diff --git feed2exec/feeds.py feed2exec/feeds.py
index 1124d7e..741fb26 100644
--- feed2exec/feeds.py
+++ feed2exec/feeds.py
@@ -73,6 +73,10 @@ class FeedManager(object):
         self.conf_storage = FeedConfStorage(self.conf_path, pattern=pattern)
         if dateparser:
             def dateparser_tuple_parser(string):
+                if string.endswith('-0000'):
+                    # workaround bug https://github.com/scrapinghub/dateparser/issues/548
+                    # replace the last '-0000' with '+0000' by reversing the string twice
+                    string = string[::-1].replace('-0000'[::-1], '+0000'[::-1], 1)[::-1]
                 return dateparser.parse(string).utctimetuple()
             feedparser.registerDateHandler(dateparser_tuple_parser)
 
@@ -343,8 +347,8 @@ class Feed(feedparser.FeedParserDict):
             item['updated_parsed'] = pick_first_date()
 
         if not item.get('updated_parsed'):
-            logging.warning('no parseable date found in feed item %s from feed %s, using current time instead',
-                            item.get('id'), self.get('url'))
+            logging.info('no parseable date found in feed item %s from feed %s, using current time instead',
+                         item.get('id'), self.get('url'))
             item['updated_parsed'] = datetime.utcnow().timestamp()
 
         # 2. add UID if missing (issue #112)
diff --git feed2exec/tests/cassettes/planet-debian.mbx feed2exec/tests/cassettes/planet-debian.mbx
index d78c212..1f9b235 100644
--- feed2exec/tests/cassettes/planet-debian.mbx
+++ feed2exec/tests/cassettes/planet-debian.mbx
@@ -3308,7 +3308,7 @@ in my `/etc/vim/vimrc.local`. Finally I found out why, thanks to bug
    [1]: <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074>
 
 The whole mess comes from the fact that, when there is no `~/.vimrc`, vim
-loads `defaults.vim` **after** ` vimrc.local` and thus overwriting several
+loads `defaults.vim` **after** `vimrc.local` and thus overwriting several
 settings put in there.
 
 There is a comment (I didn’t see, though) in `/etc/vim/vimrc` explaining this:
@@ -4779,7 +4779,7 @@ http://dirk.eddelbuettel.com/blog/2017/10/12#github_oct2016_oct2017
    [4]: <http://gallery.rcpp.org>
 
 > This is sometimes called Jerry Seinfeld's secret to productivity: Just keep
-at it. _Don't break the streak_.
+> at it. _Don't break the streak_.
 
 and showed the first chart of _GitHub streaking_
 
@@ -5053,15 +5053,15 @@ Consider this function definition:
 To a functional programmer, this reads
 
 > `plus` is a function that analyses its first argument. If that is `0`, then
-it returns the second argument. Otherwise, it calls itself with the
-predecessor of the first argument and increases the result by one.
+> it returns the second argument. Otherwise, it calls itself with the
+> predecessor of the first argument and increases the result by one.
 
 which is clearly a description of a computation.
 
 But to Isabelle/HOL, the above reads
 
 > `plus` is a binary function on natural numbers, and it satisfies the
-following two equations: …
+> following two equations: …
 
 And in fact, it is not so much Isabelle/HOL that reads it this way, but rather
 the `fun` command, which is external to the Isabelle/HOL logic. The `fun`
@@ -5128,7 +5128,7 @@ this function “returns” a list only if the collatz sequence eventually reach
 
 I expect these definitions to make a Coq user very uneasy. How can `fixpoint`
 be a total function? What is `fixpoint (λn. n+1)`? What if we run `collatz n`
-for a `n` where the [Collatz sequence][3] does _not_ reach 1?[ 2][4] We will
+for a `n` where the [Collatz sequence][3] does _not_ reach 1?[2][4] We will
 come back to that question after a little detour…
 
    [3]: <https://en.wikipedia.org/wiki/Collatz_conjecture>
@@ -5468,67 +5468,43 @@ library with the [R][8] environment and language--and is widely used by
 A high-level summary of changes follows.
 
 > #### Changes in RcppArmadillo version 0.8.100.1.0 (2017-10-05)
-
 >
-
 >   * Upgraded to Armadillo release 8.100.1 (Feral Pursuits)
-
 >
-
 >     * faster incremental construction of sparse matrices via element access
-operators
-
+> operators
 >
-
 >     * faster diagonal views in sparse matrices
-
 >
-
 >     * expanded `SpMat` to save/load sparse matrices in coord format
-
 >
-
 >     * expanded `.save()`,`.load()` to allow specification of datasets within
-HDF5 files
-
+> HDF5 files
 >
-
 >     * added `affmul()` to simplify application of affine transformations
-
 >
-
 >     * warnings and errors are now printed by default to the `std::cerr`
-stream
-
+> stream
 >
-
 >     * added `set_cerr_stream()` and `get_cerr_stream()` to replace
-`set_stream_err1()`, `set_stream_err2()`, `get_stream_err1()`,
-`get_stream_err2()`
-
+> `set_stream_err1()`, `set_stream_err2()`, `get_stream_err1()`,
+> `get_stream_err2()`
 >
-
 >     * new configuration options `ARMA_COUT_STREAM` and `ARMA_CERR_STREAM`
-
 >
-
 >   * Constructors for sparse matrices of types `dgt`, `dtt` amd `dst` now use
-Armadillo code for improved performance (Serguei Sokol in [#175][10]
-addressing [#173][11])
-
+> Armadillo code for improved performance (Serguei Sokol in [#175][10]
+> addressing [#173][11])
 >
-
 >    [10]: <https://github.com/RcppCore/RcppArmadillo/pull/175>
    [11]: <https://github.com/RcppCore/RcppArmadillo/issues/173>
 
   * Sparse matrices call `.sync()` before accessing internal arrays (Binxiang Ni in [#171][12])
 >
-
 >    [12]: <https://github.com/RcppCore/RcppArmadillo/pull/171>
 
   * The sparse matrix vignette has been converted to Rmarkdown using the pinp package, and is now correctly indexed. ([#176][13])
 >
-
 >    [13]: <https://github.com/RcppCore/RcppArmadillo/pull/176>
 
 Courtesy of [CRANberries][14], there is a [diffstat report][15]. More detailed
@@ -6415,10 +6391,8 @@ Content-Transfer-Encoding: 8bit
 https://iain.learmonth.me/blog/2017/2017w412/
 
 > The [@TorAtlas][1] web application will now also prompt operators to update
-their relays if they are outdated. [pic.twitter.com/HMixwqbBKM][2]
-
+> their relays if they are outdated. [pic.twitter.com/HMixwqbBKM][2]
 >
-
 >    [1]: <https://twitter.com/TorAtlas?ref_src=twsrc%5Etfw>
    [2]: <https://t.co/HMixwqbBKM>
 
@@ -6432,7 +6406,7 @@ time the word “upgrade” is mentioned here is:
    [4]: <https://www.torproject.org/docs/tor-relay-debian.html.en>
 
 > Be sure to set your ContactInfo line so we can contact you if you need to
-upgrade or something goes wrong.
+> upgrade or something goes wrong.
 
 This isn’t great. We should have some decent instructions for keeping your
 relay up to date too. I’ve been compiling a set of documentation for enabling
@@ -8695,11 +8669,9 @@ like this:
    [4]: <http://aprs.fi/>
 
 > VK4CVL is mobile near Chapel Hill, Australia <http://t.co/2dqvuqjJxQ>
-<http://t.co/q88OhtcPTX> [#hamradio][5] [#hamr][6]
-[pic.twitter.com/5gBVw3ebvq][7]
-
+> <http://t.co/q88OhtcPTX> [#hamradio][5] [#hamr][6]
+> [pic.twitter.com/5gBVw3ebvq][7]
 >
-
 >    [5]: <https://twitter.com/hashtag/hamradio?src=hash&ref_src=twsrc%5Etfw>
    [6]: <https://twitter.com/hashtag/hamr?src=hash&ref_src=twsrc%5Etfw>
    [7]: <http://t.co/5gBVw3ebvq>
@@ -8724,10 +8696,8 @@ I spotted a relay very close to its 10th birthday:
    [10]: <https://metrics.torproject.org/>
 
 > esko in Finland started contributing bandwidth to the [#Tor][11] network 9
-years and 51 weeks ago <https://t.co/4K7aj9Jf6C>
-
+> years and 51 weeks ago <https://t.co/4K7aj9Jf6C>
 >
-
 >    [11]: <https://twitter.com/hashtag/Tor?src=hash&ref_src=twsrc%5Etfw>
 
 — Tor Atlas (@TorAtlas) [October 7, 2017][12]
@@ -8742,10 +8712,8 @@ about the total number of relays currently running. The total relays tweets
 come with a map:
 
 > There are currently 6638 [#Tor][13] relays running.
-<https://t.co/uySyX7AlAH> [pic.twitter.com/BbgNGpoNtY][14]
-
+> <https://t.co/uySyX7AlAH> [pic.twitter.com/BbgNGpoNtY][14]
 >
-
 >    [13]: <https://twitter.com/hashtag/Tor?src=hash&ref_src=twsrc%5Etfw>
    [14]: <https://t.co/BbgNGpoNtY>
 
@@ -9671,7 +9639,7 @@ Content-Transfer-Encoding: 8bit
 http://blog.digital-scurf.org/posts/floss-activity-2017-09/
 
 > In the interests of keeping myself "honest" regarding F/LOSS activity,
-here's a report, sadly it's not very good.
+> here's a report, sadly it's not very good.
 
 Unfortunately, September was a poor month for me in terms of motivation and
 energy for F/LOSS work. I did some amount of Gitano work, merging a patch from
@@ -9748,18 +9716,12 @@ template for vignettes.
    [5]: <http://dirk.eddelbuettel.com/code/pinp.html>
 
 > #### Changes in RProtoBuf version 0.4.11 (2017-10-03)
-
 >
-
 >   * The `RProtoBuf-intro` and `RProtoBuf-quickref` vignettes were converted
-to Rmarkdown using the templates and style file from the pinp package.
-
+> to Rmarkdown using the templates and style file from the pinp package.
 >
-
 >   * A few minor internal upgrades
-
 >
-
 >
 
 [CRANberries][6] also provides a [diff to the previous release][7]. The
diff --git feed2exec/tests/files/weird-dates.mbx feed2exec/tests/files/weird-dates.mbx
index 18ff586..5f1e847 100644
--- feed2exec/tests/files/weird-dates.mbx
+++ feed2exec/tests/files/weird-dates.mbx
@@ -14,11 +14,11 @@ Archived-At: http://example.com/test/
 
 This item has no date but there's one on the feed to fallback on
 
-From weird-dates Sun Sep  3 09:03:54 2017
+From weird-dates Tue Feb 19 14:08:19 2019
 Content-Type: text/plain; charset="utf-8"
 MIME-Version: 1.0
 Content-Transfer-Encoding: 7bit
-Date: Sun, 03 Sep 2017 09:03:54 -0000
+Date: Tue, 19 Feb 2019 14:08:19 -0000
 To: to@example.com
 From: weird-dates <to@example.com>
 Subject: missing space
@@ -30,11 +30,11 @@ Archived-At: http://example.com/test/
 
 This item has a date that feedparser has trouble with, probably because of the missing space between the day of week and date
 
-From weird-dates Sun Sep  3 09:03:54 2017
+From weird-dates Sun Feb 15 00:00:00 2015
 Content-Type: text/plain; charset="utf-8"
 MIME-Version: 1.0
 Content-Transfer-Encoding: 7bit
-Date: Sun, 03 Sep 2017 09:03:54 -0000
+Date: Sun, 15 Feb 2015 00:00:00 -0000
 To: to@example.com
 From: weird-dates <to@example.com>
 Subject: no timezone
diff --git feed2exec/tests/pytest.ini feed2exec/tests/pytest.ini
new file mode 100644
index 0000000..c825d97
--- /dev/null
+++ feed2exec/tests/pytest.ini
@@ -0,0 +1,3 @@
+[pytest]
+markers =
+  regression: a test fixing a regression, with an issue number
diff --git feed2exec/tests/test_main.py feed2exec/tests/test_main.py
index 99d4bc7..3214e0b 100644
--- feed2exec/tests/test_main.py
+++ feed2exec/tests/test_main.py
@@ -147,7 +147,7 @@ def test_missing_conf(tmpdir_factory, monkeypatch):
     assert tmpdir.join('feed2exec.ini').check()
 
 
-@pytest.mark.xfail(condition=html2text.__version__ < (2017, 10, 4), reason="older html2text output varies, install version 2017.10.4 or later")  # noqa
+@pytest.mark.xfail(condition=html2text.__version__ < (2019, 9, 26), reason="older html2text output varies, install version 2019.9.26 or later")  # noqa
 def test_planet(tmpdir_factory, static_boundary, betamax_session):  # noqa
     """test i18n feeds for double-encoding
 
diff --git feed2exec/tests/test_plugins.py feed2exec/tests/test_plugins.py
index 8bac116..7e1015e 100644
--- feed2exec/tests/test_plugins.py
+++ feed2exec/tests/test_plugins.py
@@ -115,7 +115,7 @@ This is the body, which should show instead of the above
 
 
 @pytest.mark.xfail(condition=parse_version(feedparser.__version__) < parse_version('5.2.1'), reason="older feedparser version do not sort <img> tags, install feedparser 5.2.1 or later")  # noqa
-@pytest.mark.xfail(condition=html2text.__version__ < (2017, 10, 4), reason="older html2text output varies, install version 2017.10.4 or later")  # noqa
+@pytest.mark.xfail(condition=html2text.__version__ < (2019, 9, 26), reason="older html2text output varies, install version 2019.9.26 or later")  # noqa
 def test_email(tmpdir, feed_manager, static_boundary, betamax):  # noqa
     global LOCK
     LOCK = mock.MagicMock()
diff --git setup.py setup.py
index cf6912d..4c37729 100755
--- setup.py
+++ setup.py
@@ -54,6 +54,7 @@ classifiers = [
 
 requires = [
     "click",
+    "dateparser",
     "feedparser",
     "html2text",
     "pyxdg",