github - 恢复开源库的错误版本控制
问题描述
我一直在编写一个库来获取 libgdx 中的径向 ui 小部件。
作为我第一个要编写的库,我不得不亲自动手使用 JitPack,并做了一些实验来尝试做正确的事情。然而,由于对我的库被使用过分热情(新手错误),我很早就发布了第一个版本。
那时,我想遵循这些semantic versioning
原则,因此对于破坏 API 的每一个更改,我都会增加主编号。以现在的节奏,再过几天,图书馆可能就达到了v3.0.0
,这在某种程度上是可笑的。
我从 0 开始的最佳方式是什么,但同时保持相同的库名称?
我知道 JitPack 的常见问题解答说:
如果在 GitHub 上删除标签或存储库会发生什么?
如果项目已经构建,那么 JitPack 将继续为现有工件提供服务。它不会在新标签处重建项目。如果您需要重做一个版本,最好的选择是在 GitHub 上创建一个新版本。
但我对这个答案并不满意:它提到了“最佳选择”,因此暗示可能还有其他解决方案。另外,当他们提到 时create a new version on GitHub
,他们的意思是“ advance the current version in a new release, once again
”还是“ create an entirely new repo
”?
一般来说,我很有信心我只是搞砸了,所以我必须忍受它或创建一个新的回购,但我想确定一下。
解决方案
我从 0 开始的最佳方式是什么,但同时保持相同的库名称?
从技术上讲你可以,但你不应该:jitpack 仍然提供人工制品,在某些时候你可能会有版本重复,这对你图书馆的现有用户来说是一团糟。
当他们提到在 GitHub 上创建一个新版本时,他们的意思是“再次在新版本中推进当前版本”还是“创建一个全新的 repo”?
我认为他们建议删除您在 github 上的发布/标签,根据其他提交重新创建它们以重建发布版本。但是你也不应该这样做,再次,它会弄乱你的图书馆用户已经下载的神器。
结论,当发布/标签发布时,您无法真正返回。正如您所说:使用它或使用新的组和/或工件名称创建一个新的存储库。
推荐阅读
- python - Python循环内存泄漏
- datatables - jQuery数据表不显示数据库中的数据
- java - 如何解决java中方法的通用输入参数
- c# - 从 DataTable 到 DataGridView 的字符串:“\n”不被解释为新行
- android - 使用签名版本设置 versionCode 的问题
- java - 如何通过 Axios 将标头发送到 Spring-Boot 应用程序?
- deployment - 构建失败 - apksigner.BAT 以代码 2 退出
- reporting-services - Dynamics CRM 在线报告:高级查找视图过滤
- ios - 如何找到 UITableViewCell 的 ViewController?
- java - 为什么循环迭代一次额外的时间?