Questions tagged «versioning»

版本控制是使用唯一的版本名称或唯一的版本号标识同一软件的后续版本的方法。

1
避免依赖版本冲突?
几乎可以肯定,使用我的jar的任何Java项目都将对另一个jar附加依赖,我的jar也将其作为依赖项。 问题是,其他jar有多个版本。 在您项目的第二个jar版本与第二个jar版本不同的情况下,如何避免出现任何问题? 我不希望我的用户有多余的麻烦来做一些花哨的类加载技巧来添加我的jar。 我是否应该为该通用依赖项的每个可能版本制作一堆不同版本的jar?然后,您只需选择使用与您刚碰到的第二个jar版本相同的jar版本即可? 有没有更聪明的方式来处理此问题,并使人们更轻松地使用我的jar,而不会发生冲突?

4
敏捷中的语义版本控制
假设我进行了14天的sprint迭代,其中有多个新功能,改进和缺陷修复的故事。当更改准备就绪时,我也将对其进行部署,而不是等待sprint结束。 我的问题是-如何跟踪这样开发和维护的产品的语义版本控制?如果每14天发布一次,这将很容易,我将增加版本号并记下changelog中的所有更改。但是,如果不断部署变更怎么办?每次部署某些东西时都应该增加版本吗?还是我应该等到sprint结束,然后再进行“恢复”操作,并根据实际部署在每次迭代中单独增加一次版本号?敏捷中语义版本控制的最佳实践是什么? 编辑:为了更好地解释我的需求,我想首先为利益相关者提供变更日志。我认为他们在部署每次更改后都不会对changelog中的新记录感兴趣。


4
在事件驱动的微服务架构中处理更改
我正在做一个研究项目,正在研究处理事件驱动的微服务体系结构中的更改的选项。 因此,假设我们有一个应用程序,其中有四个不同的服务。这些服务中的每一个都有自己的数据库来存储本地数据。 在此设置中,这四个服务使用事件总线相互通信。因此,当服务中发生某些事情时,它会发布一个事件。所有对该事件感兴趣的其他服务都将以自己的方式对其进行处理。 在那种情况下,架构中的不同服务需要就这些事件(属性等)的内容订立“合同”。因此,服务对这些事件具有“松散耦合的依赖性” 我的问题是: 我们如何应对这些事件的变化? 因此,假设服务A在应用程序中注册了新用户。因此,它发送一个“ UserRegistered”事件,服务B拾取该事件并对其进行处理,但是服务C小组的一些开发人员决定他们也需要注册用户的性别,因此该事件被更改,属性性别被添加到“ UserRegistered”事件。 我们如何确保服务B仍可以在不重新部署的情况下使用该额外属性来拾取同一事件? 还有其他方法可以解决此问题,然后对这些事件进行版本控制吗?

2
Git登台:什么时候登台?如果事后修改该怎么办
我对Git广泛领域并不陌生。我已经阅读了该手册并一直在练习,但是我对手册的某些方面感到困惑,在搜索后无法弄清。 我很好奇: 在项目中(首次提交后),何时才是登台源文件的恰当时机?就在提交之前?在添加/删除或修改之后吗? 如果文件在两次提交之间暂存,然后被修改,那么Git会发生什么?它是否需要关注内容声明时的内容更改以及更改后的内容? 如果我创建一个新文件,暂存它然后再删除它,为什么Git要求我使用“ -f”标志,而简单的“ git -rm file.ext”不起作用? 我已经阅读了“阶段意味着什么”以及有关Git的手册和其他教程的其他各个主题,但是正如我所说,我仍然不明白上述问题。 因此,如果可以的话,请用自己的话语和例子回答问题,以便我更好地理解它。 谢谢。

2
在开始新开发之前或标记发行版之前,请突出版本,哪个更好?
一些项目在启动新开发项目之前会更改版本,而其他项目在标记发布时会更改版本。 哪种方法更好? 如果在新阶段开始时未更改版本号,则开发人员可能会忘记更改它,而只是发布程序。 如果在发布标记之前更改了版本号,则2个版本号(标记和Makefile / AssemblyInfo.cs)不匹配。 git describe 如果当前版本是在v1.2.3.4之后,则可能会给您v1.2.3.4-15-g1234567,但您已经将文件更改为具有v1.2.3.5

1
版本控制API
假设您有一个由API库支持的大型项目。该项目还附带了一个公共API,供最终用户使用。 有时您需要更改支持项目的API库。例如,您需要添加需要更改API的功能,新方法,或者需要更改传入或传自API的对象之一或这些对象之一的格式。 假设您还在公共API中使用这些对象,那么公共对象也会在您每次执行此操作时发生更改,这是不希望的,因为您的客户端可能依赖于API对象保持相同的解析代码才能正常工作。(咳嗽C ++ WSDL客户端...) 因此,一种潜在的解决方案是对API进行版本控制。但是,当我们说“版本” API时,听起来这还必须意味着对API对象进行版本控制以及为每个更改的方法签名提供重复的方法调用。因此,对于每个版本的api,我都会有一个普通的旧clr对象,这似乎也不可取。即使执行此操作,我也肯定不会从头开始构建每个对象,因为这将导致大量重复代码。相反,该API可能会扩展我们用于基础API的私有对象,但是随后遇到了同样的问题,因为如果不应该在公共API中使用附加属性,这些属性也将可用。 那么,这种情况通常适用于什么理智呢?我知道许多公共服务,例如Windows的Git都维护一个版本控制的API,但是我在构想一个支持该功能的体系结构而没有大量覆盖各种版本控制方法和输入/输出对象的重复代码时遇到了麻烦。 我知道,比如语义版本的尝试过程中把一些理智的时候应该发生的公共API休息。问题在于,如果对象之间的距离不远,似乎很多或大多数更改都需要破坏公共API,但是我发现没有重复代码的好方法。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.