bitcoin-core-review-club / website

Bitcoin Core PR Review club website
https://bitcoincore.reviews/
97 stars 70 forks source link

Add RSS feed for announcements, notes, logs #625

Open stickies-v opened 1 year ago

stickies-v commented 1 year ago

Instead of having people rely on Twitter or announcements in the IRC channel, I think having an RSS feed would be nice?

The most naive approach is to push an update for any change to the _posts/ dir, or perhaps more elegantly could also allow people to individually subscribe to announcements, questions/nodes, and logs updates.

Found e.g. https://github.com/jekyll/jekyll-feed which seems to also supports tagging.

jnewbery commented 1 year ago

Hi @stickies-v . We already do publish an Atom feed here: https://bitcoincore.reviews/feed.xml using the jekyll-feed plugin.

I think there are a couple of things we could do to improve the feed:

  1. Advertise it a bit better. Perhaps there could be links to twitter and the feed somewhere very visible on the site like this:

image

  1. The feed generator generates an entry for all posts, including upcoming posts that don't have notes and questions yet. Feed catchers can then cache those entries so even after the post is updated to include notes and questions, they appear as not having notes and questions:

image

From reading the jekyll-feed docs and a quick read of the code, I couldn't see a way of excluding individual posts from the feed (it excludes draft posts, but marking a post as draft would also prevent it from being published as a page). We could get around that by vendoring in the jekyll-feed plugin and then modifying the feed.xml template to exclude posts with a specific variable in the post front matter. That way the feed could only include posts that have notes and questions written.

If you think either of those are worth doing, I'm happy to show you how to do it/review a PR.

stickies-v commented 1 year ago

Thanks, @jnewbery ! I agree that making the feed (and Twitter) more visible would be nice, I was not able to find it. See https://github.com/bitcoin-core-review-club/website/pull/648 for an implementation of the first part of your suggestion.

For maintenance reasons, I'm wary of vendoring any plugins myself. I'm also not sure if delaying a post until notes/questions are up is strictly an improvement, I think the announcements are useful as well so people can start looking at the PR already. I'm not sure how it would work in the RSS paradigm to notify people for updates to posts while still keeping the link with the previous version (i.e. not just pushing new seemingly unrelated posts for every update). Or perhaps this is something where the client would be expected to periodically poll and notify the user of diffs? I'm not an RSS user, so I'm just thinking out loud.

jnewbery commented 1 year ago

I'm not sure how it would work in the RSS paradigm to notify people for updates to posts while still keeping the link with the previous version (i.e. not just pushing new seemingly unrelated posts for every update). Or perhaps this is something where the client would be expected to periodically poll and notify the user of diffs? I'm not an RSS user, so I'm just thinking out loud.

I'm not sure either. At least in the RSS reader that I looked at (feedly), it seemed to be caching the original post, even long after the post had been updated with notes and questions. I think that having an <updated> tag in the feed with a later date might cause it to refresh the cache, but doing so would require setting the last_modified_at tag manually, since github pages can't set that automatically (see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/feed.xml#L62 and https://github.com/github/pages-gem/pull/119).

If we want to just use this as a notification method, then perhaps we could use the excerpt only flag, so that the feed isn't filled with zombie "notes and questions to follow soon!" entries:

image

We would have to add a description parameter in the front matter so that the <summary> tag in the feed shows something sensible, such as "In the review club meeting on {date} we'll review {PR}. See {url} for full details."

What do you think?

jnewbery commented 1 year ago

@stickies-v what do you think about changing the atom feed to just displaying a summary? That'd also prevent any issues like #666 from happening again.

stickies-v commented 1 year ago

I think I agree with that. The current full body formatting also looks pretty terrible (unless that's just my client), so I'm not sure anyone's reading it directly on the feed.

So for example just keep the title, pr, components, host, date, and links to review club and pr, for example?