Federlesen #6: Umgang mit Innovationen und Wachstum

In der neuerlichen Auflage der Federlesen-Kolumne geht es um den 2002 initiierten Apache-Brutkasten. Er ist Gradmesser für kommende Apache-Projekte, und die dort behandelten Themen sind Ausdruck zeitgemäßer Entwicklungen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 7 Min.
Von
  • Frank Pientka

In der neuerlichen Auflage der Federlesen-Kolumne geht es um den 2002 initiierten Apache-Brutkasten. Er ist Gradmesser für kommende Apache-Projekte, und die dort behandelten Themen sind Ausdruck zeitgemäßer Entwicklungen.

Der Incubator-Prozess ist mit Rollen und Stufen klar geregelt. Um ein Apache-Projekt zu werden, sind zunächst ein Projektvorschlag im Incubator einzureichen und ein sogenannter Champion aus einem bestehenden ähnlichen Apache-Projekt zu suchen, der als Projekt-Sponsor dient. Nachdem der Vorschlag durch den Sponsor oder die allgemeine Mailingliste general@incubator.apache.org akzeptiert wurde, erhält das Projekt einen Mentor, der automatisch Mitglied im übergreifenden Incubator Project Management Committee (IPMC) wird.

Ein Incubator-Projekt befindet sich zunächst zeitlich unbefristet im Status "Podling", wo gewisse Richtlinien und Regeln gelten. Die wichtigsten Ziele des Podlings sind, alle Rechtsfragen im Vorfeld zu klären, eine stabile Community aufzubauen, um dann das Projekt "Apache-konform" aufzusetzen und mindestens ein Incubator-Release zu erstellen. Mehr als Ratschlag sind deshalb die Ideen hier gedacht, wie man eine erfolgreiche Gemeinschaft aufbauen kann und welche die Voraussetzung für ein erfolgreiches Open-Source-Projekt ist.

Bisher haben 74 Projekte den Brutkasten erfolgreich verlassen, drei wurden auf "ruhend" gesetzt und 19 wieder zurückgezogen. Die derzeitigen und ehemaligen Incubator-Projekte mit den ihnen zugeordneten Mentoren finden sich hier, die dazu eingereichten Vorschläge mit den Berichtsterminen finden sich dort. Die durchschnittliche Dauer im Incubator betrug pro Projekt bisher 605 Tage. Wobei Tapestry mit 58 Tagen ihn am schnellsten und das zurückgezogene WSRP4J mit 2419 Tagen am langsamsten verlassen hat. Gut Ding will eben Weile haben.

In den ersten drei Monaten berichtet das Incubator-Projekt monatlich an das IPMC. Danach erfolgt der Bericht quartalsweise, ähnlich einem offiziellen Top-Level-Projekt. Das IPMC berichtet wiederum an das ASF-Direktorium. Für das Messen der Projektentwicklung und dessen Wachstum sind regelmäßige Releases für eine größere Verbreitung wichtig. Der Gesundheitszustand eines Incubator-Projekts wird automatisch nach 20 Kategorien mit vier Farben (rot, orange, grün, gelb) gemessen und dargestellt. Ein wichtiger Indikator für die Lebendigkeit eines Projekts ist die Verfügbarkeit von Releases auf der Projektseite, die idealerweise regelmäßig erscheinen und von einer wachsenden Community betreut werden.

Neben den allgemeinen Incubator-Mailinglisten general@incubator.apache.org, private@incubator.apache.org, cvs@incubator.apache.org, announce@incubator.apache.org und pmc@incubator.apache.org gibt es noch die projektspezifischen ${podling}-dev@incubator.apache.org, ${podling}-user@incubator.apache.org und ${podling}-commits@incubator.apache.org. Zusammengezählt sind es 147 IPMC- und 813 Incubator-Committer-Subversion-Konten, was im Durchschnitt 14 Committer pro Incubator-Projekt bedeutet. Damit beschäftigen sich 30 Prozent aller Committer mit der Aufzucht von Projekten im Brutkasten.

Das spektakulärste und größte Incubator-Projekt mit 72 Committern, 38 PMC-Mitgliedern und acht Mentoren ist OpenOffice. An deren Vorschlag und Entwicklung kann man gut beobachten, wie sich aktuell ein Incubator-Projekt entwickelt. Es gibt eine Mailingliste, ein Community-Wiki, ein Developer-Wiki, ein Blog, eine Webseite und das erste Podling-Release wurde aus dem im Subversion-Repository abgelegten Quellcode erzeugt. Die erste Lizenzüberprüfung und Sichtung der verwendeten Lizenzen wurde durchgeführt. Einige Quellcodes sind aus Lizenzgründen zu ersetzen oder benötigen weitere Software Grant Agreements (SGA) von Oracle.

Zunächst wird das Incubator-Projekt auf die verwendeten Lizenzen, Warenzeichen, Logos und Copyrights abgeklopft, bevor es unter die Apache-Lizenz gestellt werden kann. Gerade am Anfang eines Projekts spielt die Klärung der bisher verwendeten Rechte und Lizenzen eine große Rolle. Für die Klärung der Besitzrechte (intellectual property) gibt es bei der ASF einen eigenen formalen Prozess. Beim Umgang mit andersartigen Lizenzen helfen die Apache-Rechtsabteilung und die Einteilung der Lizenzen in Ober- und Unterkategorien.

Jede Apache-Quelldatei ist im Header mit einem Lizenzkopf zu versehen. Außerdem muss die Apache-Lizenz in der Version 2.0 in der Datei LICENSE im Oberverzeichnis jeder Distribution abgelegt werden. Zusätzlich liegt dort auf gleicher Ebene eine NOTICE-Datei, die den Versionsstand, die Historie des Produkts und noch weiter verwendete Nicht-Apache-Produkte mit ihren Lizenzen enthält. Diese Elemente machen seit dem 1. November 2006 die Beipackzettel jedes Apache-Produkts aus, sei es Quellcode oder sei es Binärdatei. Wichtig ist, dass ein Apache- primär ein Source-Release ist und dass vorkompilierte Binaries zwar für die Verbreitung wichtig sind, aber als optional angesehen werden.

Zum Aktualisieren oder Versenden aller Quellcode-Datei mit diesem Header lassen sich fertige Skripte verwenden. Für die Verwendung von Kryptografie-Algorithmen gibt es aufgrund nationaler Exportbestimmungen spezielle Regelungen. Es wird gern gesehen, wenn Individuen oder Firmen, die Code, Dokumentation oder Ideen einbringen, ein individuelles Contributor License Agreement (CLA) oder Corporate CLA (CCLA) unterzeichnen, um späteren Streitigkeiten vorzubeugen. Um Commit-Rechte zu erhalten, ist eine persönlich unterzeichnete CLS zwingend, selbst wenn die Firma eine CCLA unterzeichnet hat. Wird eine komplette Software oder ein Dokument übergeben, ist das Software Grant Agreement (SGA) zu unterzeichnen.

Die Open-Source-Organisation hat für einige JSRs Zugang zu den dazugehörigen Java Technology Compatibility Kits (TCK). Dafür ist ein Non-Disclosure Agreement (NDA) mit der ASF zu unterzeichnen. Näheres dazu und alle Projekte (Geronimo, MyFaces, CXF), die den Test offiziell erfolgreich durchlaufen haben, finden sich unter apache.org/jcp. Aktuell hat Geronimo 3.0 den Kompatibilitätstest für Java EE 6 Profile durchlaufen.

Neben dem Incubator können neue Apache-Projekte auch als Ableger bereits bestehender Projekte entstehen. Dazu zählen ActiveMQ, Felix, Derby, Directory, Subversion, PDFBox, CXF, CouchDB, MyFaces, Roller und Geronimo. Kürzlich sind auffällig viele BigData- wie Cassandra oder Cloud-Projekte wie Deltacloud, Whirr und Libcloud dem Brutkasten entschlüpft. Interessant für die Content-Integration sind die Implementierung des CMIS-Standards (Content Management Interoperability Services) durch Chemistry, die Implementierung der UIMA-Spezifikation durch Apache UIMA oder Apache ManifoldCF mit Konnektoren für verschiedene Content-Quellen, die eben ihre ersten Releases außerhalb beziehungsweise innerhalb des Incubators veröffentlicht haben.

An den Indianer-Lagerfeuern wird schon darüber gesprochen, doch viele der im Brutkasten befindlichen Projekte sind den meisten noch nicht bekannt. An der Stelle wurde nur ein Blick auf den Brutkasten und dessen Bedingungen für die Aufzucht erfolgreicher Nachwuchsprojekte geworfen. Dieser hat in der Vergangenheit für genügend Nachschub an innovativen Projekten gesorgt und wird das auch in Zukunft tun.

Frank Pientka
ist Senior Software Architect bei der Materna GmbH in Dortmund und Autor des Geronimo-Buchs im dpunkt Verlag.
(ane)