13

我有一个关于 Hackage 的包,它依赖于第三方包,它不是基于较新版本的 GHC (>= 7.2)。只需一行补丁(LANGUAGE编译指示)即可解决其他软件包的问题。我两次将补丁发送到上游,但没有收到任何反馈。问题是我的包在依赖关系修复之前都无法安装。

我本可以上传固定版本的依赖包(有一个小版本凸起),但我想听听社区对这种非维护者上传的态度。同样,我不想更改库接口,我只添加一个新的编译标志以使其再次可构建。

  • 是否允许和容忍非维护者上传到 Hackage?
  • 什么时候在 Hackage 上分叉是更好的方法?
4

3 回答 3

8

Package uploads by non-maintainers are allowed (there may be license issues, but most packages if not all on hackage have licenses permitting this), but of course they are not usually done. They are tolerated if done in good faith and with reasonable procedure. If you contact the maintainer and don't get any response within n weeks (where I'm not sure what the appropriate value of n is, not less than 3, I'd say), uploading a new version yourself becomes an option, discussing that on the mailing lists seems however more prudent. If the package looks like it is abandoned, even taking over maintainership - of course after again contacting the maintainer, giving her/him time to respond - may be the appropriate action, but that should definitely be discussed with the community (haskell-cafe or mailing list, for example). Whether to prefer a non-maintainer upload or a fork must be left to your judgment, personally I tend to believe forks step on fewer people's toes.

But a better founded reply would be possible if we knew which package is concerned and could look at the concrete situation.

于 2012-02-24T18:50:37.610 回答
5

对于您怀疑仍在维护但作者暂时失踪的包,分叉是侵入性的。所谓侵入性,我的意思是其他程序员可能会拿起你的 fork,然后在原作者恢复主线工作后不再回到主线。

对于原作者离开 Haskell 社区的包,我个人的看法是,如果你要进一步开发,最好 fork 包。分叉可以防止继承问题,例如在 Parsec 中发生的那些许多开发人员不想更新的问题,因为在一段时间内,继承者比原始版本更慢且文档记录较少。

在所有情况下,在 Cafe 上询问是最好的,无论人们是否选择不关注它,它仍然是 Haskell 社区的中心。

对于问题中的特定情况,虽然 Hackage 上的东西可以编译是很好的,但没有规定必须这样做。依赖于损坏包的包可以简单地将损坏的依赖项的更改说明放在其首页,即“此包依赖于损坏的 LambdaThing-0.2.0,修复 LambdaThing 将...添加到文件 Lambda.hs "

于 2012-02-24T21:59:47.067 回答
2

我想说,查阅有关特定包裹和失踪人员的邮件列表是一个非常好的主意。我从它的原始所有者那里获得了 haskell-src-meta 包的控制权,但只是在咨询了列表和 IRC 之后,他们向我保证 Matt Morrow 已经失踪了几个月,没有人知道为什么。

在我看来,可能只有在达成共识的情况下才能更改包所有权,或者至少应该努力找到一个。在 Hackage 软件的开发版本中,据我了解,有访问控制,只有管理员才能进行这种干预。

于 2012-03-01T14:29:03.497 回答