Alexandre Debril

web programmer & open source contributor

Two years ago, I announced the future replacement of rss-atom-bundle in favor of FeedIoBundle. The goal was to get a cleaner code based on feed-io and new features like an user interface to handle feeds, without causing any trouble for rss-atom-bundle's users. The result was not what I expected : forms made FeedIoBundle much harder to maintain than rss-atom-bundle and almost nobody adopted FeedIoBundle. Besides, rss-atom-bundle's community is still growing, with some of these people opening new issues and even sometimes submitting pull requests. As a consequence, I drop FeedIoBundle in order to focus on rss-atom-bundle and feed-io.

This isn't a problem for me to take this kind of decision. I tried something that didn't work and now it's just time to put an end to it. No matter how much time I spent on programming FeedIoBundle, it was worth the effort as I grabbed some knowledge thanks to this project.

So now the package will be tagged as "abandoned" on Packagist and all users are encouraged to use feed-io or rss-atom-bundle.

Edit : I managed to remove FeedIoBundle from Packagist, you can't require it in your project anymore.

Edit : the bundle is no longer supported, see this announcement

I recently released version 3.0 of feed-io-bundle. Symfony 3.0 introduced a backward compatibility break in forms support, so it became impossible to maintain a code base compatible with both versions.

Symfony 2.x support

I created a branch called release/2.x to maintain feed-io-bundle version 2. It will last until the end of the Symfony 2.x official support. This branch will be used for bug fixes only, all the new features will be committed to the master branch.

Edit : the bundle is no longer supported, see this announcement

I recently released version 2.1.1 of feed-io-bundle. This is a major release as it introduces a web interface made to manage feeds and their content which you can try live here : http://feedio-demo.herokuapp.com/.

It's also official : feed-io-bundle replaces rss-atom-bundle. If you're starting a new Symfony project, I highly recommend you to use feed-io-bundle instead of rss-atom-bundle. feed-io-bundle will be upgraded regularly with new features and fixes among compatibility with Symfony.

Rss-atom-bundle's support

rss-atom-bundle is not condemned to disappear immediately, I will provide a "passive support" until it's not used anymore. By passive support, I mean taking care of open issues and pull requests until the end. So if you already have a project depending on rss-atom-bundle you don't have to be afraid of this announcement, I'll always be able to help.

Coming next

I'm working on two things by now :

  • Symfony 3 compatibility
  • the ability to analyse feed's quality with feed-io

rss-atom-bundle 2.2.0 has just been released. It brings the following :

  • exceptions are all under the same namespace
  • ability to write enclosures
  • cache-control can be set to private if you need to disable caching from proxies

This version breaks backward compatibility, the upgrade process from 1.x is described in this notice.

Why a 2.x version ?

Two weeks ago, Soullivaneuh and Romaric Drigon created 7 pull requests in less than 48 hours bringing new features, code cleaning and a better exception handling. Before that, I merged a pull request fixing Symfony 3 compatibility. Although I announced at the beginning of the year that FeedIoBundle will be the next rss-atom-bundle and scheduled its end of life to match the 2.x branch of Symfony, things turned differently. Some developers are still using rss-atom-bundle and they submitted pull requests to make it last longer than scheduled. I respect that and it makes me realize rss-atom-bundle is not under my sole control anymore, which is exciting.

As a consequence, rss-atom-bundle will be maintained to be compatible with both 2.x and 3.x branches of Symfony. The next version will feature a new RoutedItemOutInterface as specified in this issue, however its release date is still unknown.

rss-atom-bundle 1.6.0 has just been released. This version brings enclosures support, that means you can now access embedded medias like images and podcasts.

Here's a code sample :

// let's say $feed is a FeedContent instance
$items = $feed->getItems();

foreach ( $items as $item ) {
    // getMedias() returns enclosures if any
    $medias = $item->getMedias();
    foreach ( $medias as $media ) {
        echo $media->getUrl();
    }
}

The next release of rss-atom-bundle is scheduled for the next couple of weeks. It will include this pull request, which goal is to improve rss-atom-bundle's comprehension. But be careful, it breaks backward compatibility because all interfaces are renamed to follow Sensio Labs Insight's recommendations.

rss-atom-bundle 1.5.6 has just been released. Thanks to this pull request, it fixes a deprecated tag in the routing configuration : "pattern" will no longer exist in Symfony 3.0 and is replaced with the "path" attribute.

Edit : the bundle is no longer supported, see this announcement

I Recently forked rss-atom-bundle into a fresh new repository on GitHub. I said in my previous post that a 2.0 release of rss-atom-bundle will be released this year and will be maintained until the end of the 3.x branch of Symfony. Well, this is going to happen but rss-atom-bundle 2.x will be released under the name of FeedIoBundle in a different Git repository. And I built the new repository with the old one's history, so yes this is a fork.

Motivations for the fork

The fork wasn't mandatory but it is convenient for both users and developers. I decided to fork for the following reasons :

  • the bundle will not carry the core classes anymore. It will be a Bundle made to integrate feed-io's features into a Symfony project.
  • 1.x branches and 2.x will be completely different, it's already impossible to merge them.
  • the underlying library is called feed-io, it's easier to understand FeedIoBundle is its Symfony dedicated bundle. Not the same for rss-atom-bundle.
  • interfaces are so different from each other that accidentally upgrading from 1.5 to 2.x would be a real mess for the user.

Continue reading

I wasn't very active on rss-atom-bundle lately but don't worry, it doesn't mean I'm not working on it anymore. In fact, I'm writing a new library called feed-io and it will be the new foundation of rss-atom-bundle in the 2.x branch.

What needs to be improved in the master branch

  • the code is not PSR compliant
  • the repository is both a library and a bundle
  • some classes violate the open / close principle. Take the parser, it's now impossible to extend it.

That's why I decided to separate the library from the bundle and make the second depends on the first. And in order to preserve backward compatibility, this will happen in a major release.

Continue reading