Upstream zurst: Ein Kernprinzip von Fedora
Das Prinzip „Upstream zuerst“ ist ein Grundprinzip des Fedora-Projekts. Es prägt unsere Geschichte, Kultur und unseren Ansatz bei der Mitarbeit im Open-Source-Ökosystem. Das Verständnis dieses Prinzips ist für jeden, der zu Fedora und dem breiteren Linux-Distributions-Ökosystem beitragen möchte, unerlässlich.
Fedoras Verpflichtung zu „Upstream zuerst“
Fedora nimmt als Linux-Distribution eine einzigartige Rolle als Integrator unzähliger Softwarekomponenten ein. Obwohl Fedora auch eigene Software entwickelt, besteht seine Hauptaufgabe darin, ein zusammenhängendes Betriebssystem zu bündeln und bereitzustellen, das auf der Arbeit zahlreicher Upstream-Projekte basiert.
Fedora hat sich von Anfang an dem Prinzip Upstream zuerst verschrieben. Dies ist keine Richtlinie oder starre Regel, sondern ein zentraler Wert, der tief in der Fedora-Community verwurzelt ist. Fedora-Mitwirkende sind überzeugt, dass Änderungen und Verbesserungen an Open-Source-Software nach Möglichkeit an die Upstream-Projekte zurückfließen sollten. So wird sichergestellt, dass alle Nutzer dieser Software, nicht nur Fedora-Nutzer, davon profitieren. Letztendlich steht bei Fedora der Vorteil für die Nutzer an erster Stelle, und Fedora-Mitwirkende handeln stets im besten Interesse der Nutzer, selbst wenn die Upstream-Projekte anderer Meinung sind.
„Upstream zuerst“ ist auch ein pragmatisches Entwicklungsprinzip. Indem Fedora Änderungen in die Upstream-Projekte einbringt, reduziert es den langfristigen Wartungsaufwand für Downstream-spezifische Patches. Die Pflege externer Patch-Sets kann mit der Weiterentwicklung von Upstream-Projekten zunehmend schwieriger werden. Die konsequente Anwendung des „Upstream zuerst“-Prinzips trägt dazu bei, die Nachhaltigkeit von Fedora und seinen Beiträgen zu sichern.
Dieser Ansatz hat weitreichende Folgen für das gesamte Open-Source-Ökosystem. Änderungen in Fedora wirken sich oft auf zahlreiche Folgeprojekte aus, die Fedora als Grundlage nutzen. Daher ist die Mitarbeit an Fedora ein äußerst effektiver Weg, die Open-Source-Landschaft insgesamt zu beeinflussen und zu verbessern, insbesondere im RPM/Enterprise-Linux-Ökosystem.
Indem Fedora Beiträgen zum Quellcode Priorität einräumt, entspricht das Unternehmen seiner Vision einer Welt, in der alle von freier und quelloffener Software profitieren, die von inklusiven und offenen Gemeinschaften entwickelt wird. Dieses Engagement gilt für jede quelloffene Software, nicht nur für Fedora selbst.
Upstream und Downstream verstehen
In der Open-Source-Welt bestehen zwischen Projekten oft enge Verbindungen, die als „Upstream“ und „Downstream“ bezeichnet werden. Das Upstream-Projekt ist der ursprüngliche Quellcode der Software – das Fundament, auf dem andere Projekte aufbauen. Downstream-Projekte wiederum nutzen und modifizieren die Upstream-Software. Man kann sich das wie einen Fluss vorstellen: Der Upstream ist die Quelle, und Downstream-Projekte befinden sich weiter flussabwärts und nehmen das Wasser auf, das sie gegebenenfalls verändern.
Diese Metapher ist unerlässlich, um zu verstehen, wie Open-Source-Projekte voneinander abhängen und miteinander interagieren. Unterschiedliche Entwicklungsmodelle fördern verschiedene Arten von Upstream-/Downstream-Beziehungen.
Offene Kommunikation mit Upstream-Projekten
Fedora ist sich der Bedeutung einer klaren und offenen Kommunikation mit den Upstream-Projekten bewusst. Wir setzen auf enge Beziehungen zu den Upstream-Entwicklern und -Communities und sind aktiv an deren Input und Feedback interessiert.
Fedora ist stets offen für Rückmeldungen von Upstream-Projekten, wie wir unsere Kollaborations- und Integrationsprozesse verbessern können. Wir verstehen, dass die Nutzung von Fedoras Downstream-Nutzung mitunter Herausforderungen oder Reibungsverluste mit sich bringen kann. Wir ermutigen die jeweiligen Entwickler, sich bei uns zu melden, falls sie auf Probleme stoßen oder Verbesserungsvorschläge haben.
Unser Ziel ist es, konstruktiv zusammenzuarbeiten, um Lösungen zu finden, die sowohl Fedora als auch den Upstream-Projekten, auf die wir angewiesen sind, zugutekommen. Auch wenn wir nicht immer alle Wünsche der Upstream-Projekte erfüllen können, sind wir bestrebt, zuzuhören, zu lernen und unsere Vorgehensweisen anzupassen, um negative Auswirkungen auf die Upstream-Communitys so gering wie möglich zu halten.
Die Philosophie, stets die Upstream-Projekte zu berücksichtigen, beschränkt sich nicht nur auf die Entwicklung. Sie umfasst auch eine produktive, positive und respektvolle Beziehung zu unseren Upstream-Projekten. Unsere Communities überschneiden sich, und wir möchten unsere Fedora-Werte ebenso in deren Projekte einbringen wie in unsere eigenen. Daher legen wir Wert darauf, Herausforderungen zwischen Projekten stets gemeinsam anzugehen und klare Kommunikationswege zu pflegen.
Wenn sich Downstream-Änderungen ergeben
Obwohl Fedora Beiträge zum Upstream-Projekt priorisiert, gibt es Situationen, in denen Änderungen speziell für Downstream-Projekte notwendig sind. Diese Ausnahmen widersprechen nicht dem Upstream-Prinzip, sondern tragen vielmehr den komplexen Realitäten der Softwareentwicklung und -verteilung Rechnung.
Gründe für Downstream-Patches sind unter anderem:
-
Upstream-seitige Ablehnung: Manchmal lehnen die Entwickler des Upstream-Projekts einen Patch aus verschiedenen Gründen ab, selbst wenn er für Fedora von Vorteil wäre. Fedora benötigt diesen Patch unter Umständen dennoch, um ein bestimmtes Problem zu beheben oder eine bestimmte Anforderung zu erfüllen.
-
Upstream-Weiterentwicklung: Upstream-Projekte können neue Funktionen oder Änderungen einführen, die umfangreiche Anpassungen in Fedora erfordern. Fedora muss möglicherweise Korrekturen zurückportieren oder temporäre Workarounds implementieren, bis die Anpassung in den Downstream-Projekten abgeschlossen ist.
-
Distributionsspezifische Erfordernisse: Fedora und seine nachgelagerten Distributionen wie EPEL können spezielle Anforderungen oder Einschränkungen aufweisen, die Anpassungen in den Downstream-Systemen erforderlich machen. Diese Anforderungen können sich auf bestimmte Hardware-Unterstützung, Sicherheitsaspekte oder die Integration mit anderen Fedora-Komponenten beziehen.
-
Unfreie Bestandteile: Fedora setzt sich für freie und Open-Source-Software ein und baut alle Softwarepakete aus den Quellen selbst. Manchmal enthalten Upstream-Projekte unfreie oder vorkompilierte Binärdateien, die Fedora entfernen muss, um seinen Prinzipien zu entsprechen. Obwohl Fedora mögliche Korrekturen mit den Upstream-Projekten bespricht, werden diese Patches möglicherweise nicht akzeptiert, wenn es keine geeigneten Alternativen gibt oder sie Funktionen beeinträchtigen.
In solchen Situationen ist Fedora bestrebt, Umfang und Vorhaltedauer von Downstream-Patches zu minimieren und Änderungen nach Möglichkeit in den Upstream-Zweig zu übernehmen. Das Verständnis der Gründe für Downstream-Änderungen ist unerlässlich für Transparenz und Vertrauen innerhalb der Community.
Beispiele in Aktion
Das Prinzip „Upstream zuerst“ manifestiert sich auf verschiedene Weise. Hier sind ein paar Beispiele:
-
Verbesserungen der Paketierung: Ein Fedora-Paketierer entdeckt einen Fehler oder eine fehlende Funktion in einer Build-Toolchain. Anstatt einen Fedora-spezifischen Patch zu erstellen, reicht er diesen bei den Entwicklern der Toolchain ein. Nach Prüfung und Diskussion wird der Patch in die Hauptversion integriert, was allen Nutzern der Toolchain zugutekommt und die Notwendigkeit eines Fedora-Downstream-Patches überflüssig macht.
-
Community-Skript: Ein Fedora-Entwickler erstellt ein Skript zur Analyse von Paketdaten. Er stellt das Skript öffentlich zur Verfügung. Ein anderer Entwickler erweitert das Skript um neue Funktionen und reicht einen Pull Request ein. Der ursprüngliche Entwickler integriert die Änderungen und stellt das verbesserte Skript so der gesamten Community zur Verfügung.
-
Lizenzklärung Ein Fedora-Paketierer entdeckt Lizenzprobleme in einem Open-Source-Projekt, beispielsweise unklare oder nicht konforme Lizenzen für enthaltene Ressourcen. Anstatt das Projekt einfach von Fedora auszuschließen, arbeitet er mit den ursprünglichen Entwicklern zusammen, um die Lizenzen zu klären oder zu korrigieren. Dadurch wird sichergestellt, dass das Projekt in Fedora aufgenommen werden kann und die gesamte Open-Source-Community profitiert von der Förderung der Lizenzkonformität.
-
Vermeidung der Bündelung von Abhängigkeiten Ein Fedora-Paketierer stellt fest, dass ein Upstream-Projekt eine bestimmte Version einer Abhängigkeit mitliefert („bündelt“). Anstatt die gebündelte Abhängigkeit zu verwenden, paketiert er das Projekt neu, so dass die systemweite Version der Abhängigkeit genutzt wird. Dies gewährleistet Konsistenz zwischen den Fedora-Paketen, ermöglicht die schnelle Bereitstellung von Sicherheitspatches und erhält die Kompatibilität zwischen voneinander abhängigen Paketen.
-
Frühes Testen und Melden von Fehlern: Fedora ist oft Vorreiter bei der Integration neuer Softwareversionen und Bibliotheken. Diese frühe Übernahme ermöglicht es Fedora-Mitwirkenden, Bau- oder Kompatibilitätsfehler zu identifizieren und an die Entwickler zu melden, insbesondere im Python-Ökosystem. Diese Beiträge kommen der gesamten Open-Source-Community zugute, indem sie reibungslosere Übergänge und Aktualisierungen für alle gewährleisten.
Diese Beispiele veranschaulichen, wie die Priorisierung von Upstream-Projekten die Zusammenarbeit, das gemeinsame Verantwortungsgefühl und die kontinuierliche Verbesserung im Open-Source-Ökosystem fördert. Wir ermutigen Sie, darüber nachzudenken, wie Sie das Prinzip „Upstream First“ in Ihre Fedora-Beiträge einbringen können. Haben Sie eine Geschichte zu einem Upstream-Beitrag? Teilen Sie sie mit der Community!
Want to help? Learn how to contribute to Fedora Docs ›