OSS Attribution Builder ist eine Website, auf der Teams zu Attributionsdokumenten für Softwareprodukte erstellt werden. Ein Attributionsdokument ist eine Textdatei, eine Webseite oder einen Bildschirm in nahezu jeder Softwareanwendung, die die verwendeten Softwarekomponenten und deren Lizenzen auflistet. Sie sind oft in den Überläufen und werden manchmal als "Open Source -Notizen", "Credits" oder eines anderen ähnlichen Jargons bezeichnet.
Screenshot
docker-compose upadmin , um die Administratorfunktionen zu testen. Siehe Dokumentation:
Der Attribution Builder war ursprünglich ein Amazon-Internet-Tool. Einige Teile mussten entfernt werden, um dies zu einem vernünftigen Open -Source -Projekt zu machen. Daher gibt es einige Warzen:
Diese werden alle rechtzeitig behoben, aber seien Sie sich bewusst, dass einige Dinge für eine Weile seltsam sein könnten.
Wenn Sie bereit sind, den Attribution Builder in Ihre eigene Umgebung zu integrieren, müssen einige Dinge eingerichtet werden:
Öffnen Sie config/default.js und stupsen Sie herum. Diese Konfiguration startet, wenn Sie docker-compose ausführen oder die Anwendung auf andere Weise starten.
Der Attribution Builder unterstützt zwei Arten von Lizenzdefinitionen:
SPDX-Identifikatoren werden nur zum Vorbereiten des Lizenzauswahl verwendet, haben jedoch nicht (derzeit) Texte. Die nützlichere Lizenzart ist eine "bekannte" Lizenz, in der Sie (der Administrator) den Text der Lizenz und alle Tags, die Sie bewerben möchten, den Text liefern.
Informationen zum Hinzufügen Ihrer eigenen "bekannten" Lizenzen finden Sie in der Lizenz Readme. Es gibt zwei vorhandene Lizenzen in demselben Verzeichnis, das Sie als Beispiele betrachten können.
Mit Tags können Sie einer Lizenz beliebige Validierungsregeln hinzufügen. Sie können nützlich sein für:
Informationen darüber, was Tags tun können und wie Sie Ihre eigenen erstellen können, finden Sie in den Tags Readme.
Der Attribution Builder bietet eine Form von Erweiterungen, mit denen Sie das Verhalten und das Erscheinungsbild des Kunden auf dem Kunden vor Ort ändern können, ohne dass sie Interna patchen müssen. Dies kann Upgrades leichter ausmachen.
Einzelheiten finden Sie in den Erweiterungen Readme.
Der Attribution Builder unterstützt es, den Zugriff auf bestimmte Personen oder Gruppen mithilfe von Projekt -ACLs einzuschränken. Diese können auch zur Verwaltung und zur "Überprüfung" von Paketen verwendet werden (Einzelheiten dazu in einem späteren Abschnitt). Die Standardimplementierung nullauth ist in den meisten Umgebungen nicht sehr nützlich. Sie möchten Ihre eigenen schreiben, wenn Sie allgemeiner starten.
Implementierungsdetails finden Sie in der Basisauth -Schnittstelle.
Um den Server zu starten, sollten Sie build/server/localserver.js nach dem Erstellen mit npm run build ausführen. Es gibt einige Umgebungsvariablen, die Sie beim Ausführen wahrscheinlich festlegen möchten:
NODE_ENV sollte höchstwahrscheinlich auf production eingestellt werdenCONFIG_NAME sollte auf den Basisname (keine Erweiterung) Ihrer oben erstellten Konfigurationsdatei eingestellt werden. Der Standard ist "Standard".Der Server wird nur in HTTP ausgeführt. Sie möchten wahrscheinlich einen dünnen HTTPS -Webserver oder Proxy vor sich stellen.
Informationen zu Informationen sehen.
npm install und dann npm run dev werden Sie für die lokale Entwicklung in den Höhe von Boden bringen. Dies startet einen Docker -Container für PostgreSQL, verwendet jedoch eine lokale Kopie von TSC, Webpack, Knoten usw., sodass Sie schnell iterieren können.
Sobald die Dinge begonnen haben, können Sie http://0.0.0.0:2425/webpack-dev-server/ öffnen. Dies wird automatisch die Änderungen der Browser-Änderungen neu laden, und das Backend startet auch automatisch die serverseitigen Änderungen neu.
Handliche Umgebungsvariablen:
NODE_ENV : Wenn nicht festgelegt oder development , erhalten Sie vollständige Quellkarten und Debug -ProtokolleDEBUG_SQL : Wenn Sie (auf irgendetwas) gesetzt sind, werden SQL -Abfragen zum Terminal angezeigt npm test wird in Einheits -Tests ausgeführt. Diese sind in erster Linie auf Server konzentriert.
npm run test-ui führt Selenium-Tests durch. Sie können die Umgebungsvariable SELENIUM_DRIVER festlegen, wenn Sie einen benutzerdefinierten Treiber wünschen - standardmäßig wird versucht, Chrome zu verwenden, und wenn dies nicht verfügbar ist, fällt es auf Phantomjs zurück.
Beim Debuggen von UI-Tests kann es einfacher sein, standalone-chrome in docker-compose.selenium.yml in standalone-chrome-debug zu ändern und dann über VNC (Port 5900, Passwort "Secret") mit dem Container herzustellen. Führen Sie den Container und Ihre Tests getrennt aus:
docker-compose -f docker-compose.selenium.yml up --buildtsc && jasmine --stop-on-failure=true 'build/selenium/*.spec.js' Tests, die scheinbar ohne Grund versagen? driver.sleep nicht funktionieren? Stellen Sie sicher, dass Ihre Jasmin -Zeitüberschreitung in Ihrem Test hoch genug ist.