in week 8 I started implementing the API for tagging. First we had a very intense discussion on the irc channel, how we would differ between favorites and tags. We came to the conclusion that we should separate them and provide an API for both types. I started to implement the +1 (favorite) API, which is already rolled out. But since the UI is still in development, there is nothing to see yet.
I spend quite some time with fixing bugs and crawled through the issues list of both the API and the front-end. The most pressing issue was that we were relying on friendfeed.com/cpan for notifications on new uploads. After looking at the code of the bot that feeds the friendfeed, I realized that it would only capture tarballs that end with .tar.gz. Now that lead to tarballs being skipped. Another more serious problem was that the friendfeed was updated before the tarball was actually accesible via the cpantesters mirror. I decided to rewrite that part of the API to watch a local CPAN mirror instead. Using rrr we get almost instant updates of that mirror from the master cpan mirror. A watcher process will look now at the RECENT-*.json files in a 15 second interval and picks up new uploads. One thing we didn't do at all until now was to move releases that have been deleted to the "backpan" status. The new watcher now handles that as well, and deleted releases are handled correctly.
Coming up is the UI for favorites, it will likely look pretty much as what google is doing with the +1 button. After that, I will implement tagging. This consists again of two parts: both the API and the front-end needs tweaking. But since the favorite feature implementation is quite similar to the tagging feature, I hope this will be done in little time.