将自己错误的hackage版本列入黑名单

Nik*_*kov 17 haskell cabal hackage

我不小心上传了一个错误的发行版并试图立即重新加载它,但cabal回复说:

This version of the package has already been uploaded.

As a matter of policy we do not allow package tarballs to be changed after a
release (so we can guarantee stable md5sums etc). The usual recommendation is
to upload a new version, and if necessary blacklist the existing one. In
extraordinary circumstances, contact the administrators.
Run Code Online (Sandbox Code Playgroud)

好的,我已经增加了版本并上传了正确的发行版,但现在我有兴趣按照建议将错误发布列入黑名单.然而,没有关于如何在任何地方做到这一点的概念.怎么做?他们用"黑名单"一词实际上暗示了什么?

kos*_*kus 17

转到您的包裹页面Hackage.向下滚动Maintainers' corner并单击edit package information.然后你可以选择点击Preferred versions.

此页面允许您指定version rangesdeprecate individual package versions.

不推荐使用的版本不会完全消失,但cabal-install会在尝试解析依赖项时尝试尊重首选项.

  • 如果"软"弃用还不够,还有一个解决方法是在Hackage上编辑`.cabal`文件以插入一个不可满足的条件(比如`build-depends:base <0`)来迫使cabal求解器拒绝这样的包版.但是,如果该软件包版本无法修复,那么这只应该作为最后的手段. (2认同)