Composer: Composer-Repository für dynamische Pakete erhält keinen Parameter für das gesuchte Paket?

Erstellt am 16. Aug. 2016  ·  3Kommentare  ·  Quelle: composer/composer

Ich bin dabei, einen _Composer-Proxy-Dienst/Repository_ aufzubauen. Die Idee des Minidienstes besteht darin, Sprach-/Übersetzungspakete für Themen oder Plugins dynamisch aus _WordPress_-API-Antworten bereitzustellen. Die Routen sind die folgenden:

 https://api.wordpress.org/translations/plugins/1.0/?slug={slug}&version={version}

Der _Nodejs_-Dienst selbst ist nichts als ein Proxy, der als repository zu einem composer.json von type:project hinzugefügt werden sollte. Der Dienst selbst gibt den providers-url -Schlüssel als Teil der (dynamisch generierten) packages.json Datei zurück.

"providers-url" : "/" + request.params.scope + "/providers/%package%$%hash%.json"

Ein Beispiel finden Sie in den folgenden composer.json :

{
    "name"              : "vendor/testproject",
    "type"              : "wordpress-project",
    "minimum-stability" : "dev",
    "repositories"      : [
        {
            "type" : "composer",
            "url"  : "https://{unique-ID}.ngrok.io/test"
        }
    ]
}

Bisher kann ich nur Anfragen an /endpoint/packages.json , aber ohne Parameter. In einer idealen Welt würde Composer die required Pakete entweder als Header oder als Abfrageparameter mitsenden.

Ich habe bereits alle verfügbaren Optionen durchgesehen (und getestet), um zu versuchen, mich durch das System zu _fälschen_, um irgendwie das angeforderte Paket zu erhalten: type:{composer|vcs|…} . Gibt es eine Möglichkeit, dies zu erreichen? Oder gibt es zumindest den _Wille_, eine PR zu akzeptieren, um dies umzusetzen – neben einem zusätzlichen Flag, um dieses Verhalten zu ermöglichen?

_Ein Hinweis zu gehosteten Diensten: Es könnte eine Kombination der Optionen notify-batch und request/require , um einige Statistiken über gesuchte und tatsächlich abgerufene Repositorys zu sammeln. Dieser Ansatz könnte es ermöglichen, "to-cache"-Pakete viel besser auszurichten._

Feature

Hilfreichster Kommentar

Dies ist im Moment nicht möglich, und ich bezweifle, dass es eine Weile dauern wird. Vielleicht könnten wir dies in v2.0 erreichen, sobald wir das Pool-Zeug umgestaltet haben. Ich lasse vorerst offen, aber halte nicht den Atem an :)

Alle 3 Kommentare

Dies ist im Moment nicht möglich, und ich bezweifle, dass es eine Weile dauern wird. Vielleicht könnten wir dies in v2.0 erreichen, sobald wir das Pool-Zeug umgestaltet haben. Ich lasse vorerst offen, aber halte nicht den Atem an :)

@alcohol Ich denke, du kannst die Labels jetzt anpassen :)

Das Schließen, da ich nicht wirklich sehe, dass dies geschieht, ist möglicherweise mit den v2-Metadaten (Track #8248, wenn Sie an weiteren Details interessiert sind) machbar, da Sie dort metadata-url: "/p2/%package%.json" tun können und alle erforderlichen Pakete als eins bezeichnet werden nach einem, aber Sie können nur Daten für den Namen dieses Pakets zurückgeben, nicht andere Pakete, aber ich bin mir nicht sicher, ob es Ihnen wirklich hilft.

Sie können damit bis zu einem gewissen Grad Pakete im Handumdrehen generieren, also können Sie die Plugins foo/plugin-translations-en erfordern und dann sicherstellen, dass Sie immer ein Paket zurückgeben, um sicherzustellen, dass es installierbar ist, entweder eines mit gültigen Übersetzungen darin oder ein leeres Metapaket, das nichts installiert, wenn keine Übersetzungen verfügbar sind?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen