处理作曲家废弃包的最佳做法是什么?

What is the best practice for handling composer abandoned packages?

当我 运行 composer 更新时,我偶尔会收到包被放弃的消息,我应该使用不同的包,比如 Package webflo/drupal-core-require-dev is abandoned, you should avoid using it. Use drupal/core-dev instead. 我没有使用 Composer 的经验,所以我'我很好奇什么是替换过时包的最佳实践。

这些消息来自哪里?我不确定消息来源是否始终可靠。

我认为最佳实践从消息中已经很清楚了"you should avoid using it"。 How/When 这样做不是很清楚。废弃的包将不会收到更新,但 composer 将无法告诉您过渡到推荐的替代方案会有多困难。可能你需要做的就是替换包,因为它只是一个名称更改或者还必须修改你的代码。

在你的情况下 webflo/drupal-core-require-dev only contains a composer.json and the required packages match with what the alternative drupal/core-dev 提供。这意味着更换包应该像更改 composer.json 中的名称一样简单,然后执行 composer update drupal/core-dev.

对于答案不是那么简单的包,您必须依靠 automated/manual 测试来查看是否一切仍然有效。静态代码分析工具也可能有所帮助。您必须在进行更改之前设置它们,以便您可以看到它们的输出有何不同并解决出现的新问题。

您应该尽早切换到新的依赖项。保留它可能会在将来更换它时导致更多工作,并且可能会带来安全风险(如果它已过时且不安全)。我知道这并不总是可行的,使用 roave/security-advisories 之类的东西来告诉您包裹中何时存在已知的安全问题可能有助于推迟它并提供一些安全感。