News and announcements
As probably surprises nobody paying attention to my (lack of) recent activity with it, I don’t have any plans to continue actively developing Panflute.
For starters, I’m doubtful whether there’s going to be much of a need for Panflute or something like it in the future. Panflute basically serves two functions: abstracting various music players’ RPC interfaces behind a common MPRIS-based front-end, and allowing said player to be controlled within a GNOME panel via an applet.
For the first, a lot of the music players out there in the Linux world today use MPRIS as their RPC interface, so there’s little need to stick another process in front of it with little to do other than serve as a pass-through proxy. Furthermore, recent versions of Rhythmbox and Banshee, two of the players with the largest user bases, have added MPRIS v2 interfaces in addition to (and eventually replacing, presumably) their original custom RPC interface. Today, a developer can support most of the players out there by writing a client that speaks MPRIS and MPRIS v2, which isn’t an unreasonable amount of work. Yes, there are a few players that still use a custom RPC interface, but development efforts would probably be better spent adding MPRIS support to them instead of using a separate application like Panflute as a translation layer.
For the second, the GNOME panel will no longer exist once GNOME 3.0 is released, which uses a different graphical shell, pretty much eliminating the use case for Panflute’s panel applet entirely. Similarly, upcoming versions of Ubuntu replace the primary GNOME interface with Unity, also eliminating the panel where applets would live. Even using the GNOME 2 interface instead of Unity, Ubuntu provides a notification area icon that basically acts as an MPRIS client itself, so there’s not much need to use Panflute in addition to that.
Finally, and perhaps most importantly, I’d simply prefer to spend my copious free time on things other than Panflute development. My motivation for working on Panflute has been rather low for a while, and after considering the (lack of) continuing need for it, it’s sunk even lower, to the point where I really don’t see myself doing much else with it.
That’s not to say the project is necessarily dead, per se, if someone were to step up and effectively take over maintenance and development. There’s no candidates for that at the moment, though; Panflute has for the most part been a one-man show. If someone were to volunteer, I’d need to see some contributions made through patches and bug management before I felt comfortable handing control over. That’s assuming someone didn’t just decide to fork the project and go off on their own, which I’d also be OK with, not that my permission would be needed for that anyway.
Panflute 0.7.0 has been released, with lots of improvements. Panflute 0.7.0 adds several new features, such as the ability to control the player’s volume, dealing sensibly with multiple players running simultaneously, better support for pausing and stopping playback, the ability to seek by using the mouse’s scroll wheel on the time display, and the ability to remove ratings from songs. It also adds support for four more players: Clementine, Decibel, Pithos, and Qmmp. And in case that’s not enough, there’s also lots of bug fixes, detailed in the release notes.
The bad news is that I won’t be releasing the next version of Panflute at the end of the month as I had planned; that’s been pushed back to the end of October. That’s because it took much longer than I was expecting to get a new backend feature working: panflute-tests.
As of ths writing, Panflute supports 15 different music players, with even more planned: Amarok, Audacious, Banshee, Exaile, Guayadeque, Listen, MOC, MPD, Muine, Quod Libet, Rhythmbox, Songbird, VLC, XMMS, and XMMS2. Manually testing Panflute with the latest version of each is impractical; expanding that testing to include the last n versions of each of those is completely unreasonable. As a result, I had largely been slacking off doing proper testing, meaning that bugs, especially when the new version of a player changed its interface somehow, were common.
panflute-tests is a tool designed to automate the process of compatibility testing as much as possible. It allows a developer to define a series of test configurations, which are basically a particular installation of a particular version of a player, such as Banshee 1.7.4 installed under $HOME/players/
Even though each test is simple, the ability to automate running them against lots of configurations makes overall compatibility testing much more thorough and repeatable. Already, it’s discovered bugs that hadn’t been reported to the Panflute bug tracker, such as not retrieving metadata from recent versions of XMMS2 correctly.
[see my blog post for more]
The PPA for Panflute now has builds for Maverick in addition to Jaunty, Karmic, and Lucid.
Work on Panflute 0.7.0 has been sporadic lately, but it is happening. The big thing I’m working on right now is a way to test Panflute’s capabilities with the wide range of players it’s trying to support — with 15 different players, and multiple versions of each one, it’s completely impractical to manually test Panflute against each. Some of this has already landed in the source repo, but it’s in an extremely early stage at the moment. It’s also dangerous — there’s a reason the test tool refuses to do anything unless you explicitly ask it to --destroy-my-data. (I’ll write about how to use it correctly after it becomes at least half-baked.)
Most of the other plans for 0.7.0 involve clearing out the backlog of bugs. I’m hoping to release 0.7.0 by the end of September.