Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

PEP 541 – Beibehaltung von Paketnamen im Package Index

Autor:
Łukasz Langa <lukasz at python.org>
BDFL-Delegate:
Mark Mangoba <mmangoba at python.org>
Discussions-To:
Distutils-SIG Liste
Status:
Final
Typ:
Prozess
Thema:
Packaging
Erstellt:
12-Jan-2017
Post-History:

Resolution:
Distutils-SIG Nachricht

Inhaltsverzeichnis

Zusammenfassung

Diese PEP schlägt eine Erweiterung der Nutzungsbedingungen [1] des Package Index [2] vor, die die Erwartungen der Paketbesitzer bezüglich des Eigentums an einem Paketnamen im Package Index klärt, insbesondere im Hinblick auf die Beilegung von Konflikten.

Bestehende Paket-Repositories wie CPAN [3], NPM [4] und GitHub [5] werden als vorherige Technik in diesem Bereich untersucht.

Begründung

Da die Paketnamen im Index einen einzigen flachen Namensraum teilen, ist ein eindeutiger Name eine endliche Ressource. Das wachsende Alter des Package Index führt zu einem stetigen Anstieg von Konfliktsituationen zwischen der aktuellen Nutzung des Namens und einer anderen vorgeschlagenen Nutzung desselben Namens.

Dieses Dokument zielt darauf ab, allgemeine Richtlinien für die Lösung der typischsten Fälle solcher Konflikte zu geben.

Genehmigungsverfahren

Da die Anwendung dieser Richtlinie potenzielle rechtliche Auswirkungen für die Python Software Foundation hat, ist das verwendete Genehmigungsverfahren formeller als das für die meisten PEPs verwendete.

Anstatt die PEP direkt zu akzeptieren, wird der zugewiesene BDFL-Delegate stattdessen ihre Annahme der Packaging Working Group der PSF empfehlen. Nach Rücksprache mit dem General Counsel der PSF unterliegt die Übernahme der Richtlinie dann einer formellen Abstimmung innerhalb der Arbeitsgruppe.

Dieses formelle Genehmigungsverfahren wird sowohl für die erstmalige Übernahme der Richtlinie als auch für die Übernahme zukünftiger Änderungen verwendet.

Spezifikation

Die Hauptidee hinter diesem Dokument ist, dass der Package Index der Gemeinschaft dient. Jeder Benutzer ist eingeladen, Inhalte unter den Nutzungsbedingungen im Package Index hochzuladen, in dem Verständnis, dass dies auf alleiniges Risiko des Benutzers geschieht.

Obwohl der Package Index kein Backup-Service ist, bemühen sich die Betreuer des Package Index nach Kräften, diesen Inhalt in seiner veröffentlichten Form unbegrenzt zugänglich zu halten. In bestimmten Ausnahmefällen können die Bedürfnisse der größeren Gemeinschaft jedoch das individuelle Eigentumsrecht an einem Paketnamen überwiegen.

Die von diesem Dokument abgedeckten Anwendungsfälle sind

  • Verlassene Projekte
    • fortgesetzte Pflege durch eine andere Gruppe von Benutzern; oder
    • Entfernung aus dem Index zur Verwendung mit einem anderen Projekt.
  • Aktive Projekte
    • Beilegung von Streitigkeiten über einen Namen.
  • Ungültige Projekte
    • Projekte, die von einer Verletzung des geistigen Eigentums betroffen sind.

Die vorgeschlagene Erweiterung der Nutzungsbedingungen, wie im Abschnitt "Implementierung" dargelegt, wird als separates Dokument im Package Index veröffentlicht und neben den bestehenden Nutzungsbedingungen im Fußzeilenbereich der Titelseite verlinkt.

Implementierung

Erreichbarkeit

Der Benutzer des Package Index ist allein dafür verantwortlich, für Angelegenheiten im Zusammenhang mit Projekten, die der Benutzer besitzt, für die Betreuer des Package Index erreichbar zu sein. In allen Fällen, in denen die Kontaktaufnahme mit dem Benutzer erforderlich ist, werden die Betreuer mindestens dreimal versuchen, dies mit den folgenden Kontaktmitteln zu tun

  • die E-Mail-Adresse, die im Profil des Benutzers im Package Index hinterlegt ist;
  • die E-Mail-Adresse, die im Feld "Author" für ein bestimmtes Projekt angegeben ist, das in den Index hochgeladen wurde; und
  • jegliche E-Mail-Adressen, die in der Dokumentation des betreffenden Projekts im Index oder auf der angegebenen Homepage gefunden wurden.

Die Betreuer hören nach sechs Wochen auf, den Benutzer zu erreichen.

Verlassene Projekte

Ein Projekt gilt als verlassen, wenn ALLE der folgenden Bedingungen erfüllt sind

  • Besitzer nicht erreichbar (siehe Erreichbarkeit oben);
  • keine Veröffentlichungen in den letzten zwölf Monaten; und
  • keine Aktivität des Besitzers auf der Homepage des Projekts (oder keine Homepage angegeben).

Alle anderen Projekte gelten als aktiv.

Fortgesetzte Pflege eines verlassenen Projekts

Wenn sich ein Kandidat bereit erklärt, die Pflege eines verlassenen Projekts fortzusetzen, erfolgt die Übertragung des Eigentums am Namen, wenn ALLE der folgenden Bedingungen erfüllt sind

  • das Projekt wurde nach den oben beschriebenen Regeln als verlassen eingestuft;
  • der Kandidat kann seine eigenen gescheiterten Versuche nachweisen, den bestehenden Eigentümer zu kontaktieren;
  • der Kandidat kann Verbesserungen an seinem eigenen Fork des Projekts nachweisen;
  • der Kandidat kann nachweisen, warum ein Fork unter einem anderen Namen keine akzeptable Lösung ist; und
  • die Betreuer des Package Index haben keine zusätzlichen Vorbehalte.

Unter keinen Umständen wird ein Name gegen den Willen eines erreichbaren Eigentümers neu zugewiesen.

Entfernung eines verlassenen Projekts

Projekte werden niemals allein aufgrund von Verlassenheit aus dem Package Index entfernt. Im Package Index hochgeladene Artefakte haben einen inhärenten historischen Wert.

Ein verlassenes Projekt kann zum Zwecke der Wiederverwendung des Namens an einen neuen Eigentümer übertragen werden, wenn ALLE der folgenden Bedingungen erfüllt sind

  • das Projekt wurde nach den oben beschriebenen Regeln als verlassen eingestuft;
  • der Kandidat kann seine eigenen gescheiterten Versuche nachweisen, den bestehenden Eigentümer zu kontaktieren;
  • der Kandidat kann nachweisen, dass das Projekt, das die Wiederverwendung des Namens vorschlägt, bereits existiert und die Anforderungen an die Bekanntheit erfüllt;
  • der Kandidat kann nachweisen, warum ein Fork unter einem anderen Namen keine akzeptable Lösung ist;
  • die Download-Statistiken im Package Index für das bestehende Paket zeigen, dass das Projekt nicht genutzt wird; und
  • die Betreuer des Package Index haben keine zusätzlichen Vorbehalte.

Beilegung von Namenskonflikten für aktive Projekte

Die Betreuer des Package Index sind keine Schiedsrichter bei Streitigkeiten über aktive Projekte. Es gibt viele mögliche Szenarien, eine nicht-erschöpfende Liste, die einige reale Beispiele beschreibt, ist unten aufgeführt. Keine der folgenden Bedingungen qualifiziert für eine Übertragung des Eigentums an einem Paketnamen

  1. Benutzer A und Benutzer B teilen sich das Projekt X. Nach einiger Zeit trennen sie sich und jeder von ihnen möchte das Projekt unter dem Namen X fortsetzen.
  2. Benutzer A besitzt ein Projekt X außerhalb des Package Index. Benutzer B erstellt ein Paket unter dem Namen X im Index. Nach einiger Zeit möchte Benutzer A das Projekt X im Index veröffentlichen, stellt aber fest, dass der Name vergeben ist. Dies gilt auch dann, wenn das Projekt X von Benutzer A bekannt wird und das Projekt X von Benutzer B nicht bekannt ist.
  3. Benutzer A veröffentlicht das Projekt X im Package Index. Nach einiger Zeit schlägt Benutzer B Fehlerbehebungen für das Projekt vor, aber keine neue Version wird von Benutzer A veröffentlicht. Dies gilt auch dann, wenn Benutzer A zustimmt, eine neue Version zu veröffentlichen und dies später nicht tut, auch wenn die Änderungen von Benutzer B in das Quellcode-Repository für Projekt X übernommen wurden.

Auch hier ist die obige Liste nicht erschöpfend. Die Betreuer des Package Index empfehlen Benutzern, miteinander in Kontakt zu treten und das Problem durch respektvolle Kommunikation zu lösen (siehe Code of Conduct der PSF [6]).

Ungültige Projekte

Ein im Package Index veröffentlichtes Projekt, das EINE der folgenden Bedingungen erfüllt, gilt als ungültig und wird aus dem Index entfernt

  • das Projekt entspricht nicht den Nutzungsbedingungen;
  • das Projekt ist Malware (dient dazu, Systeme oder Benutzer direkt auszunutzen oder zu schädigen, Command-and-Control-Angriffe zu ermöglichen oder Daten zu exfiltrieren);
  • das Projekt ist Spam (dient der Werbung oder dem Anbieten von Waren oder Dienstleistungen);
  • das Projekt enthält illegale Inhalte;
  • das Projekt verletzt Urheberrechte, Marken, Patente oder Lizenzen;
  • das Projekt ist Name Squatting (Paket hat keine Funktionalität oder ist leer);
  • der Projektname, die Beschreibung oder der Inhalt verstoßen gegen den Code of Conduct;
  • das Projekt verwendet Verschleierung zur Verdeckung oder Maskierung der Funktionalität; oder
  • das Projekt missbraucht den Package Index für Zwecke, für die er nicht vorgesehen ist.

Die Betreuer des Package Index erklären bestimmte Paketnamen aus Sicherheitsgründen präventiv für nicht verfügbar.

Richtlinie zum geistigen Eigentum

Es ist die Richtlinie der Python Software Foundation und der Betreuer des Package Index, angemessen auf Ansprüche von Dritten wegen Verletzung des geistigen Eigentums zu reagieren. Es ist nicht die Richtlinie der Python Software Foundation oder der Betreuer des Package Index, hochgeladene Pakete auf jegliche Art von Verletzung des geistigen Eigentums vorab zu prüfen.

Möglicherweise verletzende Pakete sollten an legal@python.org gemeldet werden, und der Anwalt der Python Software Foundation wird eine angemessene Reaktion festlegen. Ein Paket kann nach alleinigem Ermessen der Python Software Foundation entfernt oder auf einen neuen Eigentümer übertragen werden, um einem Anspruch auf Verletzung Rechnung zu tragen.

Ein im Package Index veröffentlichtes Projekt, das EINE der folgenden Bedingungen erfüllt, kann als verletzend angesehen werden und unterliegt der Entfernung aus dem Index oder der Übertragung an einen neuen Eigentümer

  • das Projekt enthält unlizenzierte urheberrechtlich geschützte Materialien von Dritten und unterliegt einem ordnungsgemäß erhobenen Anspruch gemäß dem DMCA;
  • das Projekt verwendet eine Marke eines Dritten in einer Weise, die nicht von den Richtlinien zur nominellen oder fairen Nutzung abgedeckt ist;
  • das Projekt impliziert eindeutig ein patentiertes System oder Verfahren und ist Gegenstand einer Beschwerde; oder
  • das Projekt unterliegt einem laufenden Gerichtsverfahren.

Im Falle einer Beschwerde wegen Verletzung des geistigen Eigentums wird eine Kopie der Beschwerde an den Paketbesitzer gesendet. In einigen Fällen können Maßnahmen von den Betreuern des Package Index ergriffen werden, bevor der Eigentümer antwortet.

Die Rolle der Python Software Foundation

Die Python Software Foundation [7] ist die gemeinnützige juristische Person, die den Package Index als Dienstleistung für die Gemeinschaft bereitstellt.

Die Betreuer des Package Index können Probleme, die unter dieses Dokument fallen, zur Lösung an die Packaging Workgroup eskalieren, wenn die Angelegenheit nicht klar genug ist. Einige Entscheidungen erfordern zusätzliche Beurteilung durch den Vorstand, insbesondere bei Verstößen gegen den Code of Conduct oder rechtlichen Ansprüchen. Empfehlungen des Vorstands werden an die Packaging Workgroup [8] zur Überprüfung gesendet.

Die Packaging Workgroup hat das letzte Wort bei allen Streitigkeiten, die unter dieses Dokument fallen, und kann nach sorgfältiger Prüfung entscheiden, ein Projekt aus dem Package Index neu zuzuweisen oder zu entfernen, auch wenn nicht alle hier aufgeführten Anforderungen erfüllt sind.

So beantragen Sie eine Namensübertragung

Wenn Sie einen bestehenden Projektnamen auf PyPI übernehmen möchten, befolgen Sie diese Schritte

  1. Versuchen Sie, den aktuellen Eigentümer(n) direkt zu kontaktieren: Senden Sie eine E-Mail und öffnen Sie ein Issue, wenn Sie ein verwandtes Repository finden können. Die hier beschriebenen Verfahren sind als letzte Lösung gedacht, wenn der Eigentümer nicht kontaktiert werden kann.
  2. Prüfen Sie die oben genannten Kriterien, um festzustellen, wann eine Übertragung zulässig ist. Insbesondere die Kriterien für die Wiederverwendung eines Namens für ein anderes Projekt sind strenger als für die fortgesetzte Pflege desselben Projekts - obwohl es in beiden Fällen nicht einfach ist, einen Namen übertragen zu lassen.
  3. Durchsuchen Sie die PyPI Support Issues, um zu sehen, ob jemand anderes bereits denselben Namen beantragt.
  4. Wenn alle Kriterien für die Übertragung des Eigentums am Namen erfüllt sind, öffnen Sie ein neues Issue, um dies zu beantragen, und erläutern Sie darin, warum Sie glauben, dass jedes relevante Kriterium erfüllt ist.

Vorherige Technik

NPM enthält einen separaten Abschnitt, der von der Titelseite verlinkt ist und den Titel Package Name Disputes trägt. Er wird als "lebendes Dokument" beschrieben, Stand Januar 2017 können seine Inhalte wie folgt zusammengefasst werden

  • Package-Name-Squatting ist verboten;
  • Benutzer, die einen Projektnamen wiederverwenden möchten, müssen den bestehenden Autor kontaktieren, mit CC an support@npmjs.com;
  • jegliche Kontaktaufnahme muss dem NPM Code of Conduct entsprechen;
  • bei fehlender Lösung nach einigen Wochen behält sich npm inc. das Recht auf die endgültige Entscheidung in der Angelegenheit vor.

CPAN erlaubt jedem Benutzer, Module mit demselben Namen hochzuladen. PAUSE, ein verwandter Index, listet nur Module auf, die vom primären Maintainer oder den aufgeführten Co-Maintainern hochgeladen wurden. Die CPAN-Dokumentation befasst sich ansonsten nicht mit Streitigkeiten.

Die Nutzungsbedingungen von GitHub enthalten eine erschöpfende Liste von Verhaltensweisen, die nicht den allgemeinen Nutzungsbedingungen entsprechen. Obwohl nicht irgendwo kodifiziert, stimmt GitHub zu, dass Benutzer verlassene Account-Namen wieder beanspruchen können, indem sie den verlassenen Account archivieren und den anderen Benutzer oder die Organisation ihren Account umbenennen lassen. Dies geschieht von Fall zu Fall.

Abgelehnte Vorschläge

Der ursprüngliche Ansatz war, das Beste zu hoffen und Probleme zu lösen, sobald sie auftreten, ohne schriftliche Richtlinien. Dies ist nicht nachhaltig. Das Fehlen allgemein verfügbarer schriftlicher Richtlinien zur Beilegung von Paketnamenkonflikten verursacht unnötige Spannungen. Aus Sicht der Benutzer können Entscheidungen der Betreuer des Package Index ohne schriftliche Richtlinien willkürlich erscheinen. Aus Sicht der Betreuer des Package Index ist die Beilegung von Namenskonflikten aufgrund mangelnder definierter Richtlinien eine stressige Aufgabe, die mit dem Risiko unbeabsichtigter Schäden verbunden ist.

Referenzen

Danksagungen

Die vielen Teilnehmer der Distutils und Catalog SIGs für ihre Ideen im Laufe der Jahre.


Quelle: https://github.com/python/peps/blob/main/peps/pep-0541.rst

Zuletzt geändert: 2025-02-01 08:59:27 GMT