github TheBigRoomXXL/tinyfeed v1.5.1

4 hours ago

This release focus on making tinyfeed a more deterministric and stable programe. A stable experience is always better for users but I also allow us to desgin a new snapshots-based test suit so regressions are much less likely to slip through.

✨ Improvements

  • Stable Ordering: Feeds and items now come out in the same order every run.
  • Discoverable Sorting: --help now lists the values --order-by accepts: publication-date, update-date, feed-name and author.
  • Lighter Dependencies: Upgraded to gofeed 1.5, which removes 6 indirect dependencies.

🐛 Bug Fixes

  • Limit per feed: Items are now sorted before --limit-per-feed cuts the list, so you keep the right ones.
  • Author sorting: Items with no author no longer cause problems when sorting, and an empty author is treated the same as a missing one.
  • Alphabetical sorting: Strings are now compared by value, not by pointer, and sorted properly by letter.
  • Templates: Fixed a failure when --template points to a path that contains a directory.

📚 Documentation

  • Release Feed: tinyfeed releases now have their own Atom feed at https://feed.lovergne.dev/releases.atom, and the examples use it. WHY DID I NOT THINK OF THIS EARLIER?!
  • Contributing: Added a CONTRIBUTING.md to guide new contributors.
  • Permalinks: Headings on the documentation site now have anchor links you can share.
  • Docker: Added a pointer to the docker-compose configurations, and fixed a typo in the daemon guide.

🛠 Maintenance & Refactoring

  • Snapshot Testing: New end-to-end tests check the rendered output against saved snapshots from more than 70 real-world feeds.
  • No More Globals: Global state is replaced by a single config object. Main, Run and Config are now the public interface, in a new app package that replaces internal.
  • Code Cleanup: Sorting code moved into its own file, and dead code was removed.

Thanks to @bensynapse and @pikammmmm for their contributions to this release!

Don't miss a new tinyfeed release

NewReleases is sending notifications on new releases.