Third-party service plugins

Nikolaj Hald Nielsen nhnfreespirit at gmail.com
Tue Apr 21 08:38:06 CEST 2009


> Hi all,
> I've been thinking that it would be a good move to start a sort of
> program/infrastructure for plugin developers to create extensions to
> Amarok. For the time being, specifically for services. I'm sure that
> we're going to get an influx of requests for services which are
> perfectly valid, but not going to be done because of either:
>  a) lack of developer resources;
>  b) lack of developer interest; or
>  c) target market is too niche to bundle with Amarok proper
>
> Scripted services are excellent, but do not expose enough
> functionality and are not flexible enough (with UIs, configuration,
> meta types, notifiers, etc)

I agree. This is actually on purpose as I really wanted the scripted
service framework to be 1) very simple for power users / casual
developers to use and 2) act as sort of a teaser for what you can get
if you create a fully integrated service. ( in many cases I can whip
up a service script in a few hours for a given online site, show it to
them and say that they now have an Amarok service, but if these want
to do cool stuff, they should invest time/manpower/money in a proper
service plugin. )

> The perfect example of this is libre.fm, a foss last.fm clone
> (https://bugs.kde.org/show_bug.cgi?id=190213).
>
> We could have an amarok-extras svn directory which would provide third
> party devs with all the resources they need to create their own
> plugins.

We sort of already do... It is currently possible to build a service
in the playground directory. The basic build system is already set up.
It might be worth copying this setup to an "extras" dir where services
can be moved onces considered stable if we don't want them in the main
Amarok distribution. This setup has a few advantages over an external
directory in my opinion.

First of all, it keeps the source for all the plugins close to Amarok
proper, meaning that we can actually still get away with minor API
updates (assuming that whoever does the change updates all services as
needed). As was demonstrated by Casey doing the update of the last.fm
service recently, the API still has room for improvements/additions.

It also makes the issue of translations go away as this stuff will be
translated along with the rest of Amarok.

Lastly it keeps the code visible to us at all times so we can keep an
eye on what is going on without having to maintain several checkouts.

If we did this we could simple release an Amarok-extras package at the
same time as we released Amarok. This way we can still bump plugin
version numbers which I think is a really good way of avoiding issues
with old plugins.

- Nikolaj


More information about the Amarok-devel mailing list