RSS Tests
As described in FeedPipe
(Part 3), index/feed items have a revisions
property
defined in the item metadata. The list of revisions acts as a CHANGELOG
for the item, and each revision is marked as major
or
minor
. A major
revision should result in a
change notification in the RSS feed, while a minor
revision
should not.
For example, an index of books may only mark revisions as
major
when a new edition of the book is published. In this
case, users see a change notification in the RSS feed, with the reason
for the notification in the RSS item description. Users do not get
notifications for minor
revisions, such as the addition of
comments/reviews. The goal is to keep the signal to noise ratio
high.
Some people may be interested in getting change notifications for
minor
revisions as well. It would be easy to provide an
additional RSS feed that includes all revisions.
I am using RSS
2.0 to implement feeds. In the specification, each item can
optionally have a guid
(globally unique identifier) that identifies the item. The specification
says:
When present, an aggregator may choose to use this string to determine if an item is new.
In FeedPipe, a guid
is specified in
{link}#{timestamp}
format, where link
is the
item URL and timestamp
is the UTC timestamp of the most
recent major
revision (or any revision for the feed that
includes all revisions). This should result in change notifications as
desired.
Tests
I recently subscribed to the RSS feed of a friend’s wiki, and I get
change notifications even when there are no changes. Investigating the
issue, I found that the RSS items do not include a guid
and
the item description keeps changing due to a bug in the wiki software.
Since the above design is an important aspect of FeedPipe, I decided to
do some tests and confirm the behavior.
I tested with the two RSS feed readers that I use regularly: Thunderbird and Newsboat.
First, I tested an RSS feed with a guid
specified for
each item. The behavior of both feed readers is the same:
Change | Thunderbird Notification? | Newsboat Notification? |
---|---|---|
guid |
Yes | Yes |
pubDate |
No | No |
title |
No | No |
description |
No | No |
This is the expected/desired behavior. The RSS specification says “may choose,” but I hope that other feed readers behave in this way.
Next, I tested an RSS feed with no guid
specified for
each item. The behavior of the tested feed readers is different:
Change | Thunderbird Notification? | Newsboat Notification? |
---|---|---|
pubDate |
No | Yes |
title |
Yes | No |
description |
Yes | No |
That is unexpected. It is not an issue for FeedPipe, however, where
each item has a guid
.