Friday, October 26, 2012

KDE Manifesto in action: bodega server

I wrote the other day about why the KDE Manifesto is important for the KDE community. Today I'd like to show how it can be used in practice with a real-world case study: the bodega server. Coherent Theory has been working on this content distribution system for a while and it does things rather differently in a variety of ways including:

  • Free software licensed :)
  • multiple owner-defined store fronts to the same (or different) bodies of hosted content thanks to a tag-based metadata system
  • able to federate external content (a feature set I expect will evolve significantly over time)
  • good for books, music, services, artwork, etc. as well as for applications; essentially any content or artifact that can be delivered over the network works just fine (which is why we don't call it an "app store")
  • built-in purchasing system using a points mechanism which can be tied to monetary purchases (swipe integration is included), gift cards or pretty much any other system you can think of (e.g. in a school environment students could earn points through their performance in class)
The implications of such a system being Free software are potentially significant. Both server and client code currently reside in KDE's review repository so that, if all goes well, we can move it into Extragear in two weeks time.

The client side currently consists of a C++ library (dependencies: QtCore, QtNetwork and QJSON), plugins to handle installation of downloaded assets (some of which use KDE technologies like Nepomuk) and a UI written in QML that uses Plasma Components and a variety of KDE libraries. It's easy to understand why the bodega-client repository can be called a KDE Project: it uses lots of KDE libraries,  integrates rather beautifully with the Plasma workspaces and the development community is well integrated with the larger KDE community.

But what about the server? It has no user interface; it doesn't use any KDE libraries, or even Qt for that matter. Instead it is built with node.js, PostgreSQL and Redis, none of which are particularly "KDE". Does this server-side code, in its own self-contained repository, make a good candidate to be a KDE Project?

We can start by looking at its relevance to KDE's goals. The bodega server was designed with devices running a KDE workspace, such as Plasma Active, in mind. Indeed, this is what powers the Add Ons application in Plasma Active 3. Since it is general purpose software, it can be used for all sorts of things, but integration with KDE software has been the development team's primary motivation. So the focus seems relevant to KDE, but is that enough to consider it for inclusion as a KDE Project?

The KDE Manifesto helps us here as we can use it to check if the foundational principles of KDE are found in this project. These principles are: Open Governance, Free Software, Inclusivity, Innovation, Common Ownership and End-user Focus. Without going into point-by-point details, bodega-server ticks all those boxes.

What about the commitments? There is no Contributor License Agreement to sign; the repository is open so all KDE contributor accounts are able to participate; the project already uses KDE infrastructure; trademarks and copyrights are in order; established KDE community principles are being followed (such as going through kdereview), etc.

With the Manifesto in hand, we can see that it is a reasonable candidate for becoming a KDE Project because it matches the focus, principles and the goals of KDE. Prior to the Manifesto, it was a lot harder to identify if something like Bodega ought to belong under the KDE umbrella. Other server-side projects struggled with this exact issue in the past, at times with rather unfortunate consequences.

Now it is quite straight-forward; we simply have to ask, "Does it push forward KDE's technical agenda, and does it meet KDE's documented principles and commitments?"

4 comments:

Jos Poortvliet said...

And the answer to that is of course yes. So, Bodega, welcome to KDE!

Thanks, Aaron. I'm glad the Manifesto is in time for Bodega.

Martin Graesslin said...

> "Does it push forward KDE's technical agenda, and does it meet KDE's documented principles and commitments?"
Yes it does! I would be very happy to see a free content provider server inside the KDE community as I am quite disappointed by the state of the proprietary solutions we have quite no

Unknown said...

2 eurocent question: when compared to stuff like GHNS, is bodega on the same, or different league?

I ask because, frankly, I'm not happy that KDE depends for third party content on a proprietary platform (kde-[look|apps]).

afiestas said...

We will make it work with GHNS don't worry.