Page MenuHomePhabricator

The RSS extension is using wrong tag to get the entry URL in Atom feeds
Open, Needs TriagePublic

Description

Atom feeds use <link href="$URL"/> for entry URLs, as opposed to <link>$URL</link> in RSS. The RSS extension, however, assumed that Atom feeds have the URL in <id> tag, which is wrong according to RFC4287, and in practice some feeds may duplicate URL in <id> since a URI can be a valid IRI, but they don't have to and some will argue they shouldn't (a problem with URI as unique entry id would be that the id is supposed to stay the same even if the post URL changes).

For a real example of a valid feed the RSS extension will fail to render corectly: http://blog.posthaven.com/posts.atom

Event Timeline

Change 332051 had a related patch set uploaded (by Dmbaturin):
Fix support for {{{link}}} in Atom feeds for general case.

https://gerrit.wikimedia.org/r/332051

I've edited the commit message of that change to take it closer to the guidelines. Pardon my ignorance, but I'm not sure how to delete a change in gerrit. The old one was https://gerrit.wikimedia.org/r/#/c/332050/

@dmbaturin You can't technically delete a patch, but you can abandon a patch :) The "abandon" button is to the right of "Rebase", and the left of "Follow up".

@SamanthaNguyen Thanks, I "abandoned" the old change. I guess I got a bit too used to github where pull requests are automatically updated if you push to the same branch again, or can be deleted.

Ya know, this was an actual RFC compaibility bug with an actual working patch attached. Why can't it get merged in within two years time frame? ;)

@dmbaturin: Because our code review is not great. :-( https://www.mediawiki.org/wiki/Developers/Maintainers lists https://www.mediawiki.org/wiki/Editing_team as potential maintainers who you could add in Gerrit, in addition to those potential reviewers already listed in Gerrit.

@Aklapper I always thought choosing reviewers is maintainers' responsibility. I have no idea who exactly from that list to add anyway!

This task has been assigned to the same task owner for more than two years. Resetting task assignee due to inactivity, to decrease task cookie-licking and to get a slightly more realistic overview of plans. Please feel free to assign this task to yourself again if you still realistically work or plan to work on this task - it would be welcome!

For tips how to manage individual work in Phabricator (noisy notifications, lists of task, etc.), see https://phabricator.wikimedia.org/T228575#6237124 for available options.
(For the records, two emails were sent to assignee addresses before resetting assignees. See T228575 for more info and for potential feedback. Thanks!)

@Aklapper This task should be assigned to someone who can take my working, tested code and merge it into MediaWiki.

@dmbaturin: Hi! Anyone is very welcome to improve the existing patch at https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/RSS/+/332051/ if they'd like to get this task closer to implementation - thanks in advance to anyone interested! :)

get this task closer to implementation

@Aklapper It's working, production-tested code. The only issue is != vs ===, which in that case should be irrelevant—that's a null check.
There may be a minor style violation, but it fixes a real RFC compatibility problem. One that went unfixed in the mainline for years because no one got to merging a working patch.

Ok, at least it it was working at the time. My project had its web presence completely re-done since then, it uses neither PostHaven, nor MediaWiki anymore—I cannot test. And neither I care.