Thursday, February 18, 2010

Banshee Community Extensions

Introduction

Writing a Banshee extension and getting it into users' hands has never been easier. We have started a new sub-project called Banshee Community Extensions (BCE), collecting various existing extensions under one source repo, bug tracker, and autobuild setup.

Its source is hosted on gitorious, dramatically lowering the barrier to committing and sharing your code publicly.

This centralization makes things easier on translators and packagers, too. And users get access (without manually downloading/installing) to the fruits of the extension community's labor.

Creating a Working Extension in Minutes

It's ridiculously easy to make a new extension. Install Banshee 1.5.3 (including the devel package), or build/install the latest from git master instead. Then,

git clone git://gitorious.org/banshee-community-extensions/banshee-community-extensions.git
cd banshee-community-extensions
./create-extension Foo
make run
This creates, builds, and runs Banshee with your extension. Go to Edit » Preferences » Extensions to enable it, and see it appear:

We already have seven extensions migrated, and one brand new one!

  • AlarmClock
  • Awn
  • ClutterFlow
  • LCD
  • Lyrics
  • Mirage
  • RadioStationFetcher
  • StreamRecorder
And, we have 13 maintainers already!

We have bleeding-edge openSUSE/SLED packages available, and Ubuntu packages should be ready in time for Banshee 1.5.4 next week.

If you've been putting off some extension idea you've had, delay no longer! Read the full Extension Writers Guide, and get started today!

Thanks

Thanks to Chow Loong Jin (aka hyperair, our fearless Ubuntu packager) for broaching the idea behind BCE, and to Bertrand Lorentz for teaming with me to get things to this state - in just two weeks!

5 comments:

  1. great idea :), there is one plug in a really miss from the old days, the beagle importer it made life really simple i didn't have to bother with folders i just pointed banshee to beagle and it did the rest for me when it came to importing things.

    ReplyDelete
  2. @wedderburn :
    The code for that old beagle extension is available there :
    https://code.google.com/p/banshee-unofficial-plugins/

    The code hasn't been touched since 2006, but we would gladly accept it into the Community Extensions if someone would port it to make it work with the lastest Banshee

    ReplyDelete
  3. This is great, however do you think the Extension Writers Guide is an adequate introduction on how to write an extension for Banshee. I wouldn't even know where to start. Next you'll say look at existing extensions and learn from there, but they're way too complex for someone who isnt familiar with the banshee codebase. Banshee isn't just another vanilla c# application, its written on from what I can tell a framework called Hyena. Its just that there's too much reverse learning for what could be summarised nicely and concisely in a set of simple tutorials.

    ReplyDelete
  4. Anonymous: Very true. That guide (and the BCE create-extension script) is much more about setting up the build environment. A tutorial (and ideally, full API docs) would definitely be useful, though a lot of work too. MonoDevelop's autocomplete and jump-to-definition are definitely useful in this regard.

    ReplyDelete
  5. Is this plugin still relevant?

    https://www.box.net/shared/lrbh1ss492

    ReplyDelete