有没有办法在不更改版本号的情况下更新PyPI包?
想象一下,我在最近上传到PyPI的软件包中发现了一个小错误。有没有办法在不增加版本号的情况下编辑/重新上传代码?
更新
我想我应该澄清一下,“bug”我的意思是实际源代码中的版本号是错误的 - 它不是一个功能性的东西,它只是意味着如果你package.version
获得了以前的版本,而不是当前的版本(是的,我知道这个可能导致其他人的代码中的错误,但鉴于我们处于alpha状态,我希望版本依赖关系还没有设置...)。为了记录,明显无声错误修复是不好的!
更新2 截至2015年1月,所提供的解决方案已不再有效 - 请参阅this post for more information.
答案 0 :(得分:45)
当您遇到错误时,始终上传新版本。
增加版本号,包括更改日志,称之为棕色包发布(不是我,有人在头上戴着棕色包,真的,老实说)。
你永远不知道谁已经下载了一个版本的副本(在镜像上,直接从你的github页面,无论如何),永远不会知道你悄悄地修复了一个bug。而且,那些确定你取代了发行版的人,现在必须学习如何强制重新安装。
请勿使用无提示错误修复程序替换已发布的程序包。不要被诱惑。只需制作一个新版本。
另一方面,如果您以某种方式破坏了分发文件本身,因此.zip
或.tar.gz
文件是b0rken,那么您需要使用PyPI Web界面手动删除该文件并重新上传。
从24th of January开始,PyPI甚至不再让你重用文件名;这意味着您无法重新上传具有相同版本号的新文件。
如果你所做的一切都是包装错误,你可以在版本号中添加.postN
后缀(所以.post1
,.post2
等)以表明发布后更新