Developing on Staxmanade

What’s happening on the NuGet feed (leveraging OData in an RSS reader)

Ever since NuGet came online I’ve been wanting a way to find out about new packages, and updates to packages.

Since OData extends the ATOM feed and you can hook an OData feed up to any RSS reader I set out to find a way to get at those recent updates to the NuGet feed and find out when new packages were published.

If you’re not completely familiar with OData, later in this post I explain how I arrived at the URL below. However, if you don’t care how I arrived at the solution, below is the final RSS link I’m currently using in my RSS reader (Google Reader) to monitor updates to the NuGet feed.

http://packages.nuget.org/v1/FeedService.svc/Packages()?$filter=Id%20ne%20'SymbolSource.TestPackage'&$orderby=Published%20desc

How did I discover or build that URL?

I could have memorized the OData URI spec and constructed the above link by hand but I’m far more familiar with C# and LINQ and instead used LINQPad.

Open up LINQPad and add a WCF Data Services (OData) connection to the following URL

http://packages.nuget.org/v1/FeedService.svc

Now You can query the OData feed with some LINQ.

from p in Packages
where p.Id != "SymbolSource.TestPackage"
orderby p.Published descending
select p

When you execute this LINQ query in LINQPad, you can click on the “SQL” in the results pane to view the URL that was generated to execute the operation.

Now my original linq expression didn’t have the where p.Id != "SymbolSource.TestPackage" as I didn’t know this package would become a regular pain to view in the RSS Reader.

One great thing about OData is the ability to re-craft the URL for this feed to ignore items that either show up so much that I want to exclude them (like the “SymbolSource.TestPackage”) or a certain class of items that I just don’t want to be alerted on (maybe filtering by the NuGet Tag property).

Some observations of the feed.

I’ve been monitoring this feed for almost a month now and have learned about some very interesting projects, check the next section of this post with a list of some of the more interesting ones (to me) that I’ve found.

So far the feed has become just a regular part of my daily blog reading. It’s the quickest one to do as I’m typically skimming the titles of the RSS items and only slowing down to dig into projects I’ve never heard and sound interesting.

Google Reader trends that this feed generates about 54 items a day. Which may seem like a lot, but it’s really easy to click the “mark all as read” button and go on with the day.image

Interesting projects I’ve discovered.

I’ve been watching this RSS feed for almost 2 weeks now, and have discovered some new projects (at least new to me) and learned about updates to projects I already knew about.

Below is a small list of ones I thought were interesting – there’s way more being done out there.

New to me
NOT new to me (but released while I was watching)

Could NuGet be a new metric for what’s popular or up and coming?

That heading is a little bolder than what I actually think, mostly because there are far too many variables to make that statement hold a strong footing. Regardless, I have noticed some interesting “trends” (if you can define a trend by my watching the feed for about a month) in what is being released on NuGet and wonder if watching this over time will be a nice window in to the types of projects people are really working on.

I’ve seen quite a few projects related to messaging or Event Sourcing. And a number of different JS and CSS minification/build tooling projects.

Comments

Thomas Ardal
Thanks for sharing. I wasn't aware, that existing RSS readers would actually be able to understand OData, even though it's an extension to Atom.

By the way, there's already a project for watching NuGet packages through RSS here: NuGetFeed.org.

With NuGetFeed.org you will be able to follow your favorite NuGet packages through RSS. There's a feature called MyFeed, where you will be able to add a list of packages you want to follow. If you use Google Chrome, there's an extension as well and finally a Visual Studio add-in is also available. Hope you will find NuGetFeed.org useful.