包 | 依賴 |
---|---|
tu6ge/laravel-form-item | pascaldevink/shortuuid |
pascaldevink/shortuuid:2.3 | ramsey/uuid:^3 |
ramsey/uuid:3.x | moontoast/math (被遺棄的包) |
pascaldevink/shortuuid:3.x | ramsey/uuid:^4 |
ramsey/uuid:4.x | brick/math |
我在開發 laravel-form-item
包的時候,需要用到一個包 pascaldevink/shortuuid
用來生成不重複的隨機字串,當時只有 2.3.0 版本,還沒有釋出 3.0.0 , 如果這個時候,別人安裝我的包的時候,會提示一個 composer 的警告資訊:moontoast/math
包已經被遺棄,請使用 brick/math
包。然後我就去 shortuuid 的 issue 裡面找相關的問題,發現別人最近也給官方提過,官方的回覆是,這是引用的第三方包 ramsey/uuid
導致的,當時的 pascaldevink/shortuuid
版本是 2.3 使用的 ramsey/uuid
版本是 ^3
,雖然報了這個警告,但是並沒有使用到 math 這個包的任何方法,在已經發布的 ramsey/uuid:^4
版本中,已經使用修復了這個警告資訊,但是為了保障包的使用者安全的升級, 如果要在pascaldevink/shortuuid
的依賴項中升級 ramsey/uuid
的大版本號,則需要將 shortuuid 的大版本號也升級一下,這其實是一種開源專案之間的契約精神,都是為了遵守 語義化版本 。
所以說,說下我的解決辦法,我關注了這個別人提交的這個 issue,也關注了這個專案的 Releases
事件,以後作者釋出了新版本或者對這個 issue 進行了回覆,則會給我發郵件提醒。
至此,事情發生後一週的今天,我收到了作者發行新版本的資訊,然後立即著手修改我的專案的依賴。
本作品採用《CC 協議》,轉載必須註明作者和本文連結