感觉又是被 composer 搞得水深火热的一天

2021-09-28 18:54:06 +08:00
 lshero
不锁定版本号天天给你新惊喜
https://github.com/symfony/symfony/issues/43212
3122 次点击
所在节点    PHP
19 条回复
vvhhaaattt
2021-09-28 19:05:34 +08:00
不太了解 php 生态,不过这个项目是感觉用的还挺广泛的。
这 issue
JaguarJack
2021-09-28 19:06:06 +08:00
上游包出现问题 多恐怖
vvhhaaattt
2021-09-28 19:06:18 +08:00
看的人好紧张,不过开发者也挺迅速的
skymei
2021-09-28 19:14:32 +08:00
没有特殊情况,只要 composer install 就好了,为啥没事 update
zocome
2021-09-28 19:16:15 +08:00
表示受害者之一,上午还好好地用着 composer,傍晚开始想创建个新的 Laravel 项目就一直不成功了,我还以为是网络的原因,浪费几个小时
lshero
2021-09-28 19:18:35 +08:00
@vvhhaaattt
@JaguarJack
应该还是影响到了一大批无辜的 laravel 用户
lshero
2021-09-28 19:28:48 +08:00
@skymei 确实是这样的,但是上游包出问题始料未及
JaguarJack
2021-09-28 19:54:48 +08:00
@lshero 下午想创建新的 Laravel 项目,发现出问题,直奔 Laracasts,果然炸了😂
msg7086
2021-09-29 05:49:46 +08:00
Composer 没有 lock 文件的吗?一般为了安全,很多包管理都有 lock 文件来锁版本的。
limingxinleo
2021-09-29 09:10:38 +08:00
开发环境 update 就挂了,然后直接锁了上个版本号,就没问题了。。。

线上环境肯定会根据 composer.lock 来处理的,这种小问题,有啥可大惊小怪的
lshero
2021-09-29 10:22:40 +08:00
@limingxinleo 说好一键创建项目开箱即用的框架准备创建项目就各种翻车,这还不难受吗?
limingxinleo
2021-09-29 14:19:30 +08:00
@lshero 这有啥难受的,这种问题看一眼不就知道哪里的问题了么?花个两分钟,版本退回去就行了。
limingxinleo
2021-09-29 14:21:16 +08:00
@lshero 比如这次事故,创建项目发现 psr4 加载出现了问题,composer 直接都提醒了,所以这个问题很好解决。

那 80%应该是 symfony 的版本有问题,毕竟之前没有这种情况,就到官方 github 去看看,果然刚刚发布了新的 release,然后找到版本号,主动切换到上个版本,重新 composer update -o

解决问题。

这一套走下来,不超过 5 分钟就解决了。
lshero
2021-09-29 16:09:40 +08:00
@limingxinleo 一般人只会去看 laravel/laravel 中指定包的版本号,symfony 的版本在 laravel/framework 中指定的。开箱即用的话还需要关心 laravel/framework 的依赖吗?
limingxinleo
2021-09-29 17:29:16 +08:00
@lshero 好吧,你说得对。

我一直以为我上面说的应该是一个程序员的基本能力。。。。
timsims
2021-09-29 17:38:38 +08:00
我去过的公司很多人都不知道 composer.lock 的作用,甚至都不放到代码版本里, 部署就直接运行 composer update
lshero
2021-09-29 18:29:57 +08:00
@limingxinleo 你说的确实是 debug 的基本能力,但是在一个团队里架不住总会有短板。所以有些 KPI 项目不就是最看不起的各种造各种轮子,然后用 satis 搞成私有包。假如昨有人提交了一个需求说有新的 CVE 要求你升级 laravel 到某个版本,但是贸然的 update 一下,是不是就该突然觉得生活里导出都是磕磕绊绊了。

@timsims composer.lock 不加入仓库里环境容易不一致,加入后多人用起来有起冲突后好酸爽。
limingxinleo
2021-09-30 14:57:12 +08:00
@lshero 所以,如果这些东西都整不明白,直接让领导把版本都锁了就行了,不使用 ^1.0 这种,而是直接 1.0.8 这样
limingxinleo
2021-09-30 14:57:46 +08:00
@lshero 不过底层包还是比较尴尬,很难防止 symfony 的这个情况

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/804979

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX