RSS Feed for Release Notes
Resolves #264
Includes rss feed generation into the build process. During the building of release notes, I gather up all the necessary details, and build the feed right after. This includes the full release notes. Tested and working with Thunderbird's RSS reader.
I included beta releases by default.
There's no new localization strings as the release notes are only in en-US.
In some brief research I found two rss generator projects
- https://github.com/lkiesow/python-feedgen
- https://github.com/getpelican/feedgenerator
I ended going with python-feedgen, as I had encoding issues with feedgenerator.
Example photo of the rss feed in Thunderbird.

I've updated the PR to switch from feedgenerator to python-feedgen due to encoding issues. I've tested this in Thunderbird's RSS reader, and it's working great. Did a spot check with the release note pages to ensure moving the content to a separate template does not harm the design. Looks fine there too.
Can you send me a copy of the generated XML? The screenshot is nice, but there's things off-screen I'd like to see.
@jfx2006 Here you go. Let me know if you spot any issues. feed.zip

- The title of every article includes "Release Notes", and the feed name also does. I think we can remove from article title/subject
- Website URL (under Subject) is wrong - last path component should be "releasenotes"
- Website URL also has wrong (102.5.0) version vs the Subject
- The bottom line "For more on new features..." - mentioned above that with the version like that it makes no sense and seeing it show up at the bottom of the article like that it looks out of place. I think it should just be removed
Other comments: Now that I have a full RSS feed file, I'm questioning the wisdom of including all of the notes in the feed itself. The file is 2.5MB. We don't need readers all over the place pulling that every 5 minutes. It's a lot of bandwidth. One option may be to just publish the last 5 stable and last 5 beta releases in the feed.
For betas, Beta 1 will never have text in groups[0]. Some placeholder text may be needed to look consistent.
That whole description tag using the text header from the YAML doesn't really work out.. Might need to do something with the YAML files. I think we want everything up to where it talks about system requirements.
If we include the lists would work better. This will help with the overall size too.
Why are we publishing in RSS? Does it make more sense to use Atom? It seems to be the more advanced format?
Now that I have a full RSS feed file, I'm questioning the wisdom of including all of the notes in the feed itself. The file is 2.5MB. We don't need readers all over the place pulling that every 5 minutes. It's a lot of bandwidth.
We don't pay for bandwidth so this isn't a huge concern, but there are a ton of ways to prevent RSS readers from downloading things every 5 minutes. We can set a TTL, use skiphours/skipdays, etc.
That said, I believe Atom supports some sort of pagination which might help as well.
Why are we publishing in RSS? Does it make more sense to use Atom? It seems to be the more advanced format?
Yeah, we should use Atom. I forgot that it's treated as a different format, because all of this stuff that nobody uses definitely needed to be more obtuse than it already is lol.
Thanks for the feedback folks! I haven't personally used rss/atom since google reader died. :sweat_smile:
I noticed the beta release notes only shows the initial release date, and not the updated date. Is this something we should change, or add an update time? I could do some fancy parsing in the text section, but I feel like that may not be sustainable. We can also ignore it / remove beta notes entirely if it's a big change.
I just went with the last 10 releases, and last 5 betas. Right now that gives it a good mix of items in the feed, and the file is now like 150kb.
I've pushed the updated changes, and I will revert the release-notes changes since I no longer need to touch that file. (So that's pending, everything else should be good.)
Here's some updated examples:
~~Feed xml: atom.zip~~
Whoops, noticed links were still incorrect. Here's the fixed build: atom.zip
I noticed the beta release notes only shows the initial release date, and not the updated date. Is this something we should change, or add an update time? I could do some fancy parsing in the
textsection, but I feel like that may not be sustainable. We can also ignore it / remove beta notes entirely if it's a big change.
Right.. I was thinking about how to deal with this. We could extend/replace "groups" with release date info for beta >1. The other option, since product-details data is around somewhere during the website build, you can grab release dates for those betas out of there somehow.
Since betas >1 are "updates" to existing feeds, there's an "updated" value that should be set for those.
The rest...
Subject lines... "Thunderbird 102.5.1" for stable releases and "Thunderbird Beta 108.0" for betas?
"Changes" & "Fixes" headers - - please make these past tense. (The website should be changed as well probably)
The header info coming from "text" in the YAML -- I think we don't need the requirements included in the feed for each release. I think it can be pulled out of the website version too and just link. I'll work on that.
Overall, this is looking really good!
Latest build: atom.zip
No exciting changes aside from the minor text changes. Thanks for pointing out the product details, managed to get the specific beta's release date.
Two things that came to mind over the break: (Open to any answers.)
- If the feed content is still too messy, I'll gut the feed generator package, and just render it as a jinja template. (Similar to how WordPress handles their feed generation.)
- We probably need a feed icon on the release notes page, right?
I've squashed it, rebased it, and fixed it up for Python3 in case we want this to go out anytime soon. 😄
I didn't add a fancy rss icon, but it's in a meta tag for the releases page.
Latest sample: atom.xml.zip
I included beta releases by default.
I'm really late to the party, already forgot about my original issue I created 2 years ago.
Why include betas? Isn't this feed supposed to be a feed for the Thunderbird Release Notes webpage? That doesn't include betas. I wouldn't want to see betas in the feed.
- We probably need a feed icon on the release notes page, right?
Yes, definitely. I never have understood webpages that have feeds but don't indicate that it/them are available and the user needs to check the source code of the page to see if there's feed(s) available.
Yea good point. I've added a basic link to the releases page, I've kept the setting as we may generate a beta or mixed release atom feed in the future in addition to the ESR feed.
No one has time to review?
So what's the holdup? 2 years since I opened the issue about this, and almost 1 year this PR has been open. It's just a simple RSS feed, how can it take so long to make it happen?
So what's the holdup? 2 years since I opened the issue about this, and almost 1 year this PR has been open. It's just a simple RSS feed, how can it take so long to make it happen?
The frustration is relatable, though not helpful.
The frustration is relatable, though not helpful.
I don't man, sometimes a little kick could be quite stimulating. ;) And it's not like I'm pestering them all the time.. look at the dates.
Is there something still blocking this?
@jfx2006 @Sancus
Hey everyone!
With the launch of the new website I'm currently re-working this to remove external dependencies. There will be a new PR up soon and should functionally be identical.
Thank you for your patience!