git - 如何在 OSS 项目中宣布向后不兼容的更改?

标签 git project-management backwards-compatibility incompatibility

有时,当改进远远超过缺点时,您需要引入向后不兼容的更改。可以轻松切换到旧行为,但用户必须了解此类更改。

因此问题是:如何宣布 future 对 FLOSS(开源)项目的向后不兼容更改,以便用户可以为它们做好准备,要么改变它们的用途,要么配置程序使用旧的行为。

由于是OSS项目,各个发行版独立打包,可能会自动升级,无需用户干预。然后向后不兼容的更改可能会扰乱某些人的工作流程(例如第三方脚本)。

目前考虑(和使用)的途径:

  • 项目邮件列表
  • 项目主页
  • 发行说明(先是警告,然后是公告)
  • 维护者的博客

编辑 1:此(向后不兼容的)更改会发生在某些主要版本中。

所有更改都是关于添加安全措施(拒绝可能会彻底混淆新手用户的命令)或将默认值更改为更合理的值。

编辑 2:在过渡期间,默认配置(即更改为默认拒绝/拒绝)更改为警告,并说明如何关闭的警告,这也将防止默认行为的向后不兼容更改。

但是如果是自动化系统可能就没用了...


有问题的项目是 Git ,分布式版本控制系统;
Giving early warning to usersgitster's journal (Junio C Hamano 博客)

最佳答案

  • 更改主版本号
  • 通过您可以使用的所有 channel 宣布它
  • 在自述文件中添加醒目的公告
  • 如果需要数据库或其他更改,添加新旧代码之间的转换
  • 添加代码来检测折旧方法的使用、数据存储等,并在执行破坏性更改之前提醒用户
  • 在主要的问答网站上提出相关的常见问题解答类型的问题,这样当人们有疑问时,使用简单的搜索就能立即得到明显的答案

但主要版本号是主要目标 - 人们预计 1.x 到 2.x 的转换会导致问题,并且在升级时会更加小心。

-亚当

关于git - 如何在 OSS 项目中宣布向后不兼容的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/556904/

相关文章:

c# - WCF 服务 - 向后兼容性问题

git - 如何在 PhpStorm 中使用 "git add --patch"

ios - 找不到 React Native RTCAnimation

ruby-on-rails - Rails : . gitignore 仍在跟踪我的 database.yml 文件

project-management - 好/便宜/快 : Which two?

svn - 跟踪一个人开发的项目中的任务和错误历史有用吗?

java - 向后兼容的java代码使编译错误

git - AWS CodeCommit 公共(public)存储库

大型项目中的 TDD : How do you get started?

c# - 当类型移动程序集和命名空间时,protobuf-net 是否允许向后兼容?