开发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 协议》,转载必须注明作者和本文链接
大多数知识,不需要我们记住,只需要认知即可
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。