开发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 协议》,转载必须注明作者和本文链接
大多数知识,不需要我们记住,只需要认知即可
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!