Ein Paket ist fremder Code in einer veröffentlichten, versionierten Form, die sich mit einem Befehl einbinden lässt.
- Paket
Eine veröffentlichte Einheit Code mit Namen, Version und einer Angabe, wovon sie selbst abhängt.
Beispiel: „Das Paket liegt in Version 3.2.1 im Projekt und bringt vier weitere mit.“Auch: Package.
Abgrenzung zur Bibliothek: Die Bibliothek ist der Inhalt, das Paket die Verpackung mit Namen und Versionsnummer. Umgangssprachlich fällt das zusammen.
Was dazugehört
Eine Beschreibungsdatei mit Namen, Version, Lizenz und Abhängigkeiten, dazu der Code selbst. Aus dieser Beschreibung weiß der Paketmanager, was er außerdem holen muss.
Die Lizenz ist dabei kein Beiwerk. Sie entscheidet, ob ein Paket in einem Kundenprojekt eingesetzt werden darf, und manche Lizenzen stellen Bedingungen an den eigenen Code. Das lässt sich maschinell prüfen und sollte es auch werden.
Woher Pakete kommen
Aus öffentlichen Verzeichnissen: npm für JavaScript, Packagist für PHP, PyPI für Python. Jeder kann dort veröffentlichen, und genau das ist die Kehrseite.
Vor dem Einbinden lohnt deshalb ein Blick auf Pflegezustand, Zahl der Mitwirkenden und offene Fehlermeldungen. Ein Paket, das seit zwei Jahren stillsteht, wird auch die nächste Sicherheitslücke nicht beheben.
Dass ein Paket verschwinden kann
Veröffentlichte Fassungen lassen sich zurückziehen. 2016 nahm ein Entwickler ein winziges Paket aus dem Verzeichnis, und weil halb JavaScript mittelbar davon abhing, brachen Tausende Projekte.
Seither sind die Regeln strenger, und die gängige Vorsichtsmaßnahme ist ein eigener Zwischenspeicher für Pakete. Für kleinere Projekte genügt es, die Datei mit den festgeschriebenen Versionen zu pflegen.