feed2exec (0.11.0) unstable; urgency=medium major release: two months of bugfixes, major refactoring and documentation overhaul. * bugfixes: * create missing directory in archive plugin * deal with feeds without a title * fix crash in mbox logging * fix crash when running without a config file * handle missing content-location header from the wayback machine * fix crash when using a relative path with --config * features: * allow shorter plugin names on the commandline: the full plugin load path is quite a mouthful. This makes it easier for our users and allow them to use only the shorter module name, relative to the `feed2exec.plugins` path, on the commandline only. We keep the configuration file and internal use with the full plugin path. This is to avoid double-resolving the path and ensures the configuration file has a reliable plugin name. * major API refactoring, more details in d0b770a: * force API consumers to specify an explicit path instead of doing load-time guessing. * use composition instead of inheritance in the feed manager, to reduce ambiguity * locking is now in the FeedManager dispatch command * plugins are now ran serially even when running in parallel, although plugins are, as a whole, executed in parallel with the parsing, which is the main performance improvement we are looking for in parallelism anyways, because parsing is the slow part. performance tests don't show any significant degradation in performance * minor API changes: * allow find_test_file to return the test directory, to permit listing test artifacts * shorten and explicit variable names * rename test_db fixture to db_path to harmonize with conf_path fixture * also harmonize class names between conf and cache storage * extensive documentation refactoring: * document test writing * split code of conduct and contribution guide * fix formatting error in plugins docs and broken links in design docs * add security disclosure guidelines and contact * add support section inspired by Monkeysign * add issue template, integrated with GitLab * expand design documentation to provide a quick tour of the code * mention --catchup in cache purge and plugin deletion limitation * count lines of code without tests: it is unfair to compare out line count with the others because we have a much larger test suite, which has exploded in recent releases * suggest positive feedback as a contribution * fix syntax error and mention caveat of toot/mastodon integration after tests * test suite improvements; * add test suite for archive plugin * use pytest parametrization for opml test files * enable debug-level log capture in the catchlog module * accept OPML test files without resulting .ini file * refactor temp db use to simplify test suite * move OPML main test along with other OPML tests -- Antoine Beaupré Mon, 29 Jan 2018 11:12:36 -0500 feed2exec (0.10.0) unstable; urgency=medium * bugfies: * security: avoid possible config setting override, see 2a49300 for details * follow redirections in wayback machine * remove useless db query when forcing * features * add transmission plugin, to write torrents to specific folders safely * add ikiwiki recentchanges filter: fixes recent changes summaries to fetch links properly * add linkchecker examples: allows users to check their publications for broken links * add shortcut parse command: allows running a single feed with a temporary configuration * make echo plugin a little more useful by *only* showing the passed arguments * documentation: * document catchup properly * add missing documentation about some add parameters in manpage * massive API refactoring: * plugins are now responsible for handling the "catchup" setting * FeedStorage is gone, replaced with a FeedManager * add a Feed object which has the parse/fetch functions and holds the session singleton -- Antoine Beaupré Sun, 05 Nov 2017 15:38:26 -0500 feed2exec (0.9.0) unstable; urgency=medium * API changes: * config file moved from ~/.config/feed2exec/feed2exec.ini to ~/.config/feed2exec.ini. move it by hand to keep feed2exec working * database cache moved from ~/.config/feed2exec/feed2exec.db to ~/.cache/feed2exec.db. move by hand to keep feed2exec working or regenerate with `feed2exec fetch --catchup` * use sessions everywhere and betamax for all queries * refactor feeds storage to remove global * completely rework class hierarchy * use requests-file instead of custom file:// handler * new dependencies: pyxdg and requests-file * bugfixes: * package should be arch: all, like other python packages, not any * features: * use a custom user agent -- Antoine Beaupré Thu, 19 Oct 2017 15:48:19 -0400 feed2exec (0.8.0) unstable; urgency=medium * API changes: feed2exec.feeds.fetch now returns bytes, as documented * bugfixes: * fix crash importing Liferea feed with folders, noticed by pabs * properly encode From headers * fix double-encoding issues in all output plugins * features: * bash completion * add basic opml unit tests * opml folder support: save the parent "folder" element in config if relevant * allow duplicate feed imports by abusing the folder name * expanded test coverage from 89 to 93% * documentation: * expand tests documentation and add plugin design docs * expand on the use of vcr * expand the design document * cross-reference the two manpages -- Antoine Beaupré Wed, 18 Oct 2017 14:41:44 -0400 feed2exec (0.7.0) unstable; urgency=medium * API changes: cache skipped only if plugin returns False, not None * bugfixes: * correctly skip feeds generating fetch errors * add unit tests for droptitle and make it actually work * do not crash on empty config files * new plugins: * 'wayback' to save feed items to wayback machine * 'archive' to save to the local filesystem * documentation: * make build reproducible by using local doc objects * move design and known issues to manpage * add feed2exec-plugins manpage, including plugin writing documentation and extended plugins docs * fix pause and catchup descriptions * move documentation to RTD * silence docs build errors -- Antoine Beaupré Thu, 12 Oct 2017 16:10:02 -0400 feed2exec (0.6.0) unstable; urgency=medium * API-breaking changes: * use 'item' vocabulary consistently in API * allow filters to skip entry by setting the "skip" field * separate filter arguments (`filter_args`) from output arguments (`args`) * officially drop support for Python 2 * features * add sample plugin to drop feed items matching a certain title (`droptitle`) * fix sample tweet to avoid extraneous padding * add transmission exec to sample config * do *not* wrap links even in references * add some limited parallelism tests * handle http errors more gracefully * bugfixes * html2text got a new release which broke tests, update tests and skip older releases * documentation fixes * clarify error message from plugin exceptions * expand API documentation * note that feed2exec doesn't take care of IMAP folder subscriptions: you'll need to subscribe to new feeds by hand if you use that feature for now. * use tox in the release process, slower but more reliable * mark this as beta -- Antoine Beaupré Thu, 05 Oct 2017 14:04:16 -0400 feed2exec (0.5.1) unstable; urgency=medium * regenerate planet test output based on new feed * fix release process to workaround recent issues * update test suite results with feedparser 5.2.1 * add minimal test suite documentation * fix typo in gbp.conf -- Antoine Beaupré Thu, 21 Sep 2017 18:50:54 -0400 feed2exec (0.5) unstable; urgency=medium * add mbox output format * switch to 8-bit email encodings, drop QP * remove useless platforms tag * fix tests on gitlab, no chmod allowed there * add fancy badges for pipeline and coverage status * add more generic feed test procedures * refactor email generation to move to its own module * correction: rss2email has filters * make sure github filter actually works * add example for the emptysummary filter -- Antoine Beaupré Thu, 21 Sep 2017 11:17:28 -0400 feed2exec (0.4) unstable; urgency=medium * switch to Python 3 style format strings: you need to switch from %(link) to {item.link}. feed parameter are also available, for example {feed.name} or {feed.url}. see this document for details on the syntax: https://docs.python.org/3/library/string.html#format-string-syntax * this allows more fancy formatting which gives us, for example, podcasting capabilities. * a sample config file documenting all parameters * add syslog support through advanced logging module from ecdysis * show message when done, useful for syslog * add sample config file * fix feedparser URL sanitization * fix issues with empty github feeds * note issue with SQLite locking * refactor test suite to regroup normalization tests * fix displayed path for maildir messages * simplify test by not running plugins twice * push test coverage from 87 to 90% -- Antoine Beaupré Thu, 14 Sep 2017 17:20:57 -0400 feed2exec (0.3) unstable; urgency=medium * pause and catchup support * PyPI release * add examples to implement Twitter and Mastodon output -- Antoine Beaupré Tue, 12 Sep 2017 13:35:38 -0400 feed2exec (0.2) unstable; urgency=medium * multipart HTML support * improved plain text rendering * custom folder support * documentation fixes * expanded email headers * the ``output_args`` argument is renamed to ``args`` * the ``maildir`` plugin has now a sane default, and uses the ``mailbox`` parameter instead of the first argument of ``output_args`` * add ``--force`` parameter * make the html2text filter enabled by default in maildir -- Antoine Beaupré Mon, 11 Sep 2017 21:06:10 -0400 feed2exec (0.1) unstable; urgency=medium * first alpha release: maildir, exec support, parallelism -- Antoine Beaupré Mon, 11 Sep 2017 21:05:13 -0400