Composer: Opsi tipe yang baru ditambahkan ke RepositoryInterface :: search () memutuskan BC

Dibuat pada 22 Jun 2016  ·  3Komentar  ·  Sumber: composer/composer

Berikut adalah perubahan yang dapat merusak: https://github.com/composer/composer/commit/6a557e45b8295007db61e786736f04018fe5fe90#commitcomment -17966162
dan masalah yang disebabkan olehnya: francoispluchino / composer-asset-plugin # 230

perubahan telah diperkenalkan oleh # 5454 yang juga menyebabkan jeda lainnya, yang dilaporkan di # 5456.

Pesan kesalahan setelah memperbarui komposer:

Fatal error: Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository::search()
must be compatible with Composer\Repository\RepositoryInterface::search($query, $mode = 0, $type = NULL)
in /code/vendor/fxp/composer-asset-plugin/Repository/AbstractAssetsRepository.php on line 334

lihat francoispluchino / composer-asset-plugin # 230 untuk lebih jelasnya.

Bug

Komentar yang paling membantu

IMO ini tidak merusak sendiri, itu hanya merusak plugin lama dengan versi baru, tetapi jika plugin menyesuaikan dengan versi baru, itu harus kompatibel dengan versi komposer lama sesuai https://3v4l.org/7OfIR ( menambahkan params ke antarmuka yang Anda terapkan baik-baik saja, tetapi memiliki lebih sedikit tidak).

Kami hanya dapat menghapus param dari antarmuka yang seharusnya tidak merusak fungsionalitas apa pun dan membiarkan plugin lama berfungsi dengan baik. Itu kemudian bisa ditambahkan di 2.0. Itu akan menjadi pendekatan BC yang lebih ketat.

Semua 3 komentar

Masalahnya tidak mudah diatasi. Perubahan ini diterapkan pada cabang master, di mana jeda BC dapat diterima. Namun, karena plugin tidak dapat bergantung pada versi tertentu, melainkan terbatas untuk dijalankan pada versi mana pun yang Anda, pengguna, pilih untuk dijalankan, hal-hal dapat rusak secara tidak terduga jika Anda memutuskan untuk menggunakan snapshot terbaru daripada versi stabil.

Saya sangat sadar bahwa tuan bisa menghancurkan, tidak apa-apa. Saya melaporkan ini sehingga tidak akan dikirim dalam rilis tanpa membuat perubahan yang diperlukan.

IMO ini tidak merusak sendiri, itu hanya merusak plugin lama dengan versi baru, tetapi jika plugin menyesuaikan dengan versi baru, itu harus kompatibel dengan versi komposer lama sesuai https://3v4l.org/7OfIR ( menambahkan params ke antarmuka yang Anda terapkan baik-baik saja, tetapi memiliki lebih sedikit tidak).

Kami hanya dapat menghapus param dari antarmuka yang seharusnya tidak merusak fungsionalitas apa pun dan membiarkan plugin lama berfungsi dengan baik. Itu kemudian bisa ditambahkan di 2.0. Itu akan menjadi pendekatan BC yang lebih ketat.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat