我有一个Rails应用程序,它是一个传统的Web应用程序(处理HTTP请求并呈现HTML页面)。到目前为止,它还没有公开给其他应用程序的API。
我想使用semantic versioning对应用程序进行版本控制。当前为“ 0.0.0”。
引用文档:
当您更改不兼容的API时的主要版本,
当您以向后兼容的方式添加功能时的MINOR版本,并且
进行向后兼容的错误修复时,请使用PATCH版本。
据我了解,因为没有依赖我的应用程序,所以主要版本永远不会改变。只有次要版本和修补程序版本会更改,主要版本将始终保持0。
我想知道我的理解是否正确。有什么情况下我的主要版本会更改?
答案 0 :(得分:0)
由于您没有开发和发布软件包,因此语义版本控制不直接适用。听起来像一个“发布”号就足以满足您的用例,因为您需要的是跟踪何时将在测试和生产中进行代码更改。假设代码必须先经过测试才能进行生产,那么只要您使用Development分支中的代码更新测试环境,就将更新代码。这样,在给定的时刻,开发将发布N,测试将发布N-1,而产品N-2。
API版本控制是一个不同的问题,与发行版编号无关。以我的经验,API用户只关心重大更改,因此需要对这些版本进行版本控制。另外,由于用户更新应用程序的速度很慢,因此您必须准备无限期保留旧版本。
答案 1 :(得分:0)
您可以考虑的一种方法是,将用户在应用程序中的流动视为版本控制的基础。如果发生中断更改(即,以使旧路线无法执行的方式更改了用户流),则可以认为它是中断的。如果您要添加以前不存在的新功能(即用户可以使用新功能或在网站上可以与其互动的新内容),则可以认为这是次要版本。如果您要对文本之类的内容进行次要修复,则可以将其视为补丁程序级别的更改。
但是,这种方法的问题在于,您需要通过应用程序了解用户的工作流程,以便能够正确地增加主要版本,而作为软件开发人员,我们仍然很难正确地做到这一点。
参考:https://christianlydemann.com/versioning-your-angular-app-automatically-with-standard-version