Composer: require-dev tidak mengesampingkan require di composer.json

Dibuat pada 29 Feb 2016  ·  3Komentar  ·  Sumber: composer/composer

Hai,
Saya mencoba menggunakan require-dev di lingkungan lokal saya dan di lingkungan UAT saya, tetapi setiap kali saya menggunakan "pembaruan komposer" saya mendapatkan kesalahan jika saya memiliki beberapa paket di require-dev overriding require paket.
Berikut adalah contoh dari composer.json saya:

... "require": {
        "php": ">=5.5.0",
        "wp/wordpress": "4.4.2",
        "wp/amazon-web-services": "0.2.2",
        "wp/members": "^1.0.2",
        "wp/nextgen-gallery-custom-fields": "^1.2.4",
        "wp/wpml-string-translation": "^2.2.6",
        "wp/sitepress-multilingual-cms": "^3.2.7",
        "wp/wpml-translation-management": "^2.0.5"
},
    "require-dev": {
        "wp/wp-functional-tests": "^1.0.0",
    "wp/sitepress-multilingual-cms": "dev-testing-3.3.6",
    "wp/wpml-string-translation": "dev-testing-2.3.6.1",
        "wp/wpml-translation-management": "dev-testing-2.1.5"
}, ...

ketika saya menjalankan pembaruan komposer saya mendapatkan kesalahan ini:

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Updating wp/wpml-string-translation (2.3.2 => dev-testing-2.3.6.1 ddc3c6b)
    Checking out ddc3c6b3923fe47deda4d8d....

  - Updating wp/sitepress-multilingual-cms (3.3.1 => dev-testing-3.3.6 164cab6)
    Checking out 164cab6c3c756ba031c58a3....



  [Composer\DependencyResolver\SolverProblemsException]
    Problem 1
      - The requested package wp/wpml-string-translation ^2.2.6 could not be found.
    Problem 2
      - The requested package wp/sitepress-multilingual-cms ^3.2.7 could not be found.
    Problem 3
      - The requested package wp/wpml-translation-management ^2.0.5 could not be found.
  Potential causes:
   - A typo in the package name
   - The package is not available in a stable-enough version according to your minimum-stability setting
     see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
  Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

Apakah saya melewatkan sesuatu? Bukankah require-dev seharusnya menimpa plugin yang dibutuhkan? mengapa tidak menemukan versi stabil saya? (tentu saja temukan jika saya tidak menggunakan require-dev)

Terima kasih banyak

Support

Komentar yang paling membantu

Jadi apa yang harus saya lakukan jika saya ingin menggunakan integrasi berkelanjutan dan membangun paket saya di lingkungan yang berbeda seperti prod, stage, dev, uat di mana stage dan prod memerlukan versi stabil dan pada uat dan dev saya ingin menguji yang berbeda? haruskah saya selalu melakukan paket yang berbeda berdiri sendiri?
Akan sangat bagus untuk menggunakan require/require-dev untuk membuat semacam hierarki (dalam konteks Integrasi berkelanjutan)

Semua 3 komentar

Itu tidak mengesampingkan tidak, itu menggabungkan keduanya jadi jika mereka tidak cocok itu menciptakan masalah. Memerlukan sesuatu baik dalam require maupun require-dev sebenarnya bukan kasus penggunaan yang didukung dan sangat mungkin menghasilkan masalah. Saya akan menyarankan Anda untuk hanya memilih apakah sebuah paket diperlukan hanya untuk pengembangan atau tidak, dan kemudian mendaftarkannya hanya sekali.

Jadi apa yang harus saya lakukan jika saya ingin menggunakan integrasi berkelanjutan dan membangun paket saya di lingkungan yang berbeda seperti prod, stage, dev, uat di mana stage dan prod memerlukan versi stabil dan pada uat dan dev saya ingin menguji yang berbeda? haruskah saya selalu melakukan paket yang berbeda berdiri sendiri?
Akan sangat bagus untuk menggunakan require/require-dev untuk membuat semacam hierarki (dalam konteks Integrasi berkelanjutan)

Masalah Anda ada di alur kerja, bukan teknis - Anda harus mengadopsi alur kerja berbasis cabang untuk mempertahankan berbagai tahap pengembangan. Biasanya Anda mengembangkan di master , menguji di cabang versi seperti 1.0.x , dan melepaskan ke tag. Git membuat alur kerja itu mudah dengan menggabungkan cabang masalah ke master , dan melakukan di master kembali ke cabang versi. Alat CI seperti Travis disiapkan untuk memantau semua cabang dan tag baru untuk repositori tertentu. Karena Anda dapat memiliki versi composer.json yang berbeda di setiap komit dan cabang, ini segera menyelesaikan masalah Anda.

Dalam kasus langka yang tersisa di mana Anda ingin memiliki beberapa contoh berbeda dari composer.json , misalnya untuk menguji penerapan dengan semua paket yang disarankan diinstal, Anda bisa memiliki yang lain seperti composer-with-suggests.json dan menggunakan COMPOSER variabel env :

COMPOSER=composer-with-suggest.json composer install
Apakah halaman ini membantu?
0 / 5 - 0 peringkat