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:
--helpnow lists the values--order-byaccepts:publication-date,update-date,feed-nameandauthor. - Lighter Dependencies: Upgraded to gofeed 1.5, which removes 6 indirect dependencies.
🐛 Bug Fixes
- Limit per feed: Items are now sorted before
--limit-per-feedcuts 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
--templatepoints 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.mdto guide new contributors. - Permalinks: Headings on the documentation site now have anchor links you can share.
- Docker: Added a pointer to the
docker-composeconfigurations, 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,RunandConfigare now the public interface, in a newapppackage that replacesinternal. - 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!