Composer: Repositori komposer untuk paket dinamis tidak menerima param untuk paket yang dicari?

Dibuat pada 16 Agu 2016  ·  3Komentar  ·  Sumber: composer/composer

Saya sedang dalam proses membangun _layanan proxy Komposer/repositori_. Ide layanan mini ini adalah untuk secara dinamis mengirimkan paket bahasa/terjemahan untuk tema atau plugin dari respons _WordPress_ API. Rute-rute tersebut adalah sebagai berikut:

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

_Nodejs_-service itu sendiri tidak lebih dari sebuah proxy yang harus ditambahkan sebagai repository ke composer.json dari type:project . Layanan itu sendiri mengembalikan providers-url -key sebagai bagian dari file packages.json (dihasilkan secara dinamis).

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

Sebagai contoh, silakan lihat composer.json :

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

Sejauh ini saya hanya dapat melihat permintaan ke /endpoint/packages.json , tetapi tanpa parameter apa pun. Di dunia yang ideal, Komposer akan mengirimkan paket required , baik sebagai header atau sebagai parameter kueri.

Saya sudah melihat (dan menguji) melalui semua opsi yang tersedia untuk mencoba _memalsukan_ jalan saya melalui sistem untuk mendapatkan paket yang diminta: type:{composer|vcs|…} . Apakah ada cara untuk mewujudkannya? Atau setidaknya ada _will_ untuk menerima PR untuk mengimplementasikan ini – di samping flag tambahan untuk mengaktifkan perilaku itu?

_Catatan tentang layanan yang dihosting: mungkin ada kombinasi opsi notify-batch dan request/require untuk mengumpulkan beberapa statistik tentang repositori yang dicari dan benar-benar diambil. Pendekatan ini memungkinkan untuk menargetkan paket "ke-cache" jauh lebih baik._

Feature

Komentar yang paling membantu

Ini tidak mungkin saat ini, dan saya ragu itu akan terjadi untuk sementara waktu.. Mungkin di v2.0 setelah kami memfaktorkan ulang kumpulan kumpulan, kami dapat mencapai ini. Aku akan membiarkan terbuka untuk saat ini tapi jangan menahan napas :)

Semua 3 komentar

Ini tidak mungkin saat ini, dan saya ragu itu akan terjadi untuk sementara waktu.. Mungkin di v2.0 setelah kami memfaktorkan ulang kumpulan kumpulan, kami dapat mencapai ini. Aku akan membiarkan terbuka untuk saat ini tapi jangan menahan napas :)

@alcohol Saya kira Anda dapat menyesuaikan label sekarang :)

Menutup karena saya tidak benar-benar melihat ini terjadi, mungkin dapat dilakukan dengan metadata v2 (lacak #8248 jika Anda tertarik lebih detail) karena Anda dapat melakukan metadata-url: "/p2/%package%.json" sana dan semua paket yang diperlukan akan disebut satu per satu, tetapi Anda hanya dapat mengembalikan data untuk nama paket itu, bukan paket lain, jadi tidak yakin itu benar-benar membantu Anda.

Itu memungkinkan Anda menghasilkan paket dengan cepat meskipun sampai batas tertentu, sehingga Anda dapat membuat plugin memerlukan foo/plugin-translations-en dan kemudian pastikan Anda selalu mengembalikan paket untuk memastikannya dapat diinstal, baik dengan terjemahan yang valid di dalam atau metapackage kosong tidak menginstal apa pun jika tidak ada terjemahan yang tersedia?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat