页面菜单主页灭菌器

提供在安装扩展后安装作曲器依赖项的方法,而不更新所有不相关的库
开放,需要分类公共

描述

当安装/更新具有作曲家依赖关系的扩展时,有三种方法:

  1. 运行作曲家更新在主MIATAWIKI目录中。这将导致作曲家收集所有依赖关系(包括更改的/新扩展的依赖关系)。作曲家合并插件并更新它们。结果总是正确的,但会将每个库更新为Cyr.jSON允许的最新版本,而不仅仅是新安装的扩展版本。除了占用更长的时间,更多的代码更改意味着更高的故障发生概率,因此需要更多的努力来测试站点是否正常工作。
  2. 运行作曲器安装在扩展目录中。这通常是有效的(只要扩展能够使用它的自动装弹器)。供应商子目录,例如通过设置装载机自动装弹机旗在扩展子),并且不做不必要的更新。它可以在一个边缘情况下失败:当扩展使用另一个扩展或MyaWiKi核心使用的库时,作曲家不能合并版本要求并计算正确的版本(或者如果它们发生冲突就抛出错误)。因此,将有两个不同版本的库,调用方可能会得到一个他们没有预料到的库版本。
  3. 运行作曲家更新-依赖库/一个库/两个…手动限制扩展所需的库的更新。这是可行的,但相当麻烦。

如果有一种更简单的方法来安装或更新受影响的库,那就太好了。

上游缺陷:α6601

事件时间线

TGR创建了这个任务。8月11日2017日下午8点41分

这是一个我们可能无法解决的上游问题。我刚刚创建的任务有一个可以从Wiki文档中引用的问题的描述。

这是一个问题。船闸应该修复,因为所有依赖项都锁定到特定的提交,并且不能更改。这个想法的另一部分是一个人不应该跑。作曲家更新在生产中,但只有作曲器安装.

至于不想一次更新所有的依赖关系,我认为目前的想法是每个作曲家文件(核心和扩展)应该指定精确的补丁级别版本号,因此(维护者不太顽皮和改变标记版本)不应该有任何意外升级。

我认为不需要任何系统只更新一些依赖关系(除了你提到的,作曲家中现有的功能)。相反,我们应该朝着一个系统的方向发展,其中Wiki可以以自己的方式被控制地部署。船闸文件(参见T166956特别是评论“我们不信任上游去跟随Sever”,我认为这与这个问题相关。

运行作曲器安装在扩展目录中。

这将创建多个供应商目录,这是一种反模式。这意味着,如果存在相互冲突的依赖关系(或多个版本中的依赖关系),那么这些差异将不被解决,并且必须手动解决。:(

我想这就是我们的原因。媒体供应商(见T178137

这意味着,如果存在相互冲突的依赖关系(或多个版本中的依赖关系),那么这些差异将不被解决,并且必须手动解决。:(

导致其他问题T186181. 然而,这正是我们目前在MeimaWiki流浪者中所做的。不确定哪个是较小的邪恶。

与供应商回购,这不是一个真正的问题,因为它是手工策划(否)将运行无限制。作曲家更新关于它)。

我读了这个bug,我感兴趣,如果它可以在某种程度上解决。我还没有测试过,但是如果我理解正确的话@巴巴拉特打开(放)第6601题有一些作曲家的命令,当按特定的顺序执行时,会解决这个问题,不是吗?

下一个想法远远超出了这个任务,但是读到这个bug并考虑了关于MeaWiWik+作曲家+作曲家合并插件+ MIDAWIKI VS作曲家AutoLooDe+激活MW扩展,通过作曲家安装在农场+来自作曲家团队的许多反应,说我们是一个非常具体的用例(这可能是真的),我想知道MIDAWIKI不应该创建一个专用的二进制关于“安装供应商和可能的扩展/皮肤”和使用作曲家库和包装,而不是作曲家CLI。

进入T173141α4873677@ SEB35写的:

我读了这个bug,我感兴趣,如果它可以在某种程度上解决。我还没有测试过,但是如果我理解正确的话@巴巴拉特打开(放)第6601题有一些作曲家的命令,当按特定的顺序执行时,会解决这个问题,不是吗?

好的想法是基本上按错误消息的指示手动地执行依赖图。当然这是可能的,但不是一个特别好的用户体验。

我想知道,MyaWiKi不应该创建一个专用的二进制文件,关于“安装供应商和可能的扩展/皮肤”,使用作曲家库和打包器,而不是作曲家CLI。

我不认为有人不同意这是理想的解决方案(在扩展管理RFC中有更多的讨论)。问题是它何时会发生。

@ SEB35你可以看看T166956对于“通过作曲家安装的MW扩展”的一方。我还没有尝试在一个农场,我遇到了一堆问题(主要是与文件路径)在安装程序,这是一个绝望的黑洞。

KGBLN添加订户:KGBLN.
克林克尔增加了一个项目:中维基将军.
克林克尔添加订户:克林克尔.

@ SEB35你可以看看T166956对于“通过作曲家安装的MW扩展”的一方。我还没有尝试在一个农场,我遇到了一堆问题(主要是与文件路径)在安装程序,这是一个绝望的黑洞。

我明白不必编辑的好处。作曲者文件但是为什么作曲家的行为在这个任务描述中的选项1(作曲家安装在MyaWiKiDIR)和作曲家管理的项目中的作曲家命令之间是不同的,这还不清楚。

他们的行为有什么不同吗?那是作曲家的一个bug吗?如果不是,除了作曲家提供一个当前没有的特征外,还有别的解决方法吗?

@ Krinkle如果我理解正确,如果你有这样的东西在你的作曲者

{
	“额外” {
		“合并插件” {
			“包括” [
				“扩展/ GraphQL /作曲家.JSON”
			]
		}
	}
}

你要更新绘图语言扩展,您可能不知道哪些包可能需要更新。你不知道里面是什么扩展/ GraphQL / Cyr.JSON除非你手动去查看它,但是即使这样,你也需要做一个差异,看看是否需要移除任何东西。

唯一的工作就是做一个作曲家更新它会逐字更新。

这个理想的解决方案是用像这样的作曲家来安装扩展名:

作曲家需要MeaWiki/扩展图形QL

(或者类似的东西)
这样你就可以做到:

作曲家更新MeaWiWik/扩展图形QL

它会更新只有扩展的扩展和依赖关系。