开发composer 包所遇到的问题之,依赖的包报警告信息
关系梳理
包 | 依赖 |
---|---|
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 协议》,转载必须注明作者和本文链接
推荐文章: