问题标签 [semantic-versioning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 在 SemVer 中,当向公众发布测试版时,程序集+文件版本应该是什么?
假设我们是第一次发布 .net 库。我们希望通过 Beta + Release Candidate 阶段从早期采用者那里获得反馈。
因此,在SemVer的上下文中,我们最初会发布 Version 1.0.0-Beta1
。之后随着 beta 和候选版本的增加。
为了争论,假设我们当前的版本号是0.3.0
因此,我们需要从 SemVer 推导出要放置在各种 .net 版本占位符中的内容。那些是:
1. Nuget 版本
用于命名 nuget 包,也被 nuget 用于对包进行排序和派生(如果它是预发行版)
2.组装版
请记住,程序集可能是强命名的,并且当程序集版本更改时,绑定重定向可能会使 beta 之间的移动变得复杂
3.汇编文件版本
映射到文件属性对话框中的“文件版本”
4. 汇编信息版
映射到文件属性对话框中的“产品版本”
maven - Jenkins、Maven 和语义版本控制:如何增加主要或次要版本
在我们的工作中,我们通过 Jenkins 作业发布和部署我们的组件。问题在于它只会增加“补丁”版本号(major.minor.patch,例如 4.2.1 到 4.2.2)。我想让工作告诉 maven 这是一个“次要”版本(4.2.1 -> 4.3.0),一个“主要”版本(4.2.1 -> 5.0.0)或补丁版本(默认行为)。
Jenkins 将参数传递给 maven 的接口很简单,但是是否有任何命令可以让 maven 更新次要或主要版本,而无需明确说明您需要什么版本(和开发版本)。因为它可以很容易地更新补丁版本,所以我希望有命令对次要版本或主要版本执行相同的操作。
node.js - npm 是否支持 semver 中较新的预发布版本?
在我的应用程序中,我让用户通过运行npm install
-- bog 标准行为来安装依赖项。
但是,我有一个经常更改的包,并且为了不让版本号像 一样大得离谱0.1.12324
,我偶然发现了预发布的概念。
npm 在运行时如何处理预发布号npm install
?
假设我的包packageA
的版本号为0.1.1-r1234
,并且我的用户的依赖项为~0.1.1
:
我知道未packageA
安装的新用户将自动安装该版本 ( 0.1.1-r1234
)。
如果有人已经packageA
安装了版本0.1.1-r1233
怎么办?npm install
知道安装较新的预发行版吗?
node.js - 如何理解 npm 包的 package.json 文件中的版本控制?
我想知道版本控制在package.json
开发周期中是如何工作的。
一个版本属性中的每个数字的含义是什么package.json
,例如下面的那个?
c# - 如何增加语义版本号?
我用semver spec 2.0
.
当当前版本2.0.0-beta.1
已经分发时,版本号应该增加多少。
现在,修复了一个错误。
如果版本2.0.1-beta.1
或2.0.0-beta.2
更好?
api - semver中增加补丁号的规则
根据semver
“进行向后兼容的错误修复时的 PATCH 版本。”
和
“错误修复被定义为修复错误行为的内部更改。”
考虑到这一点,可以说我有一个可以调用的变量,比如颜色。出于某种原因,我需要更改颜色值。
现在这是一个在 API 中定义为用户可以调用的变量。我没有改变被调用的实际变量,只改变了它返回的值。为此,我必须在 API 元素上更改我的代码,并且必须将此代码合并到生产分支中。但是这样的事情真的需要增加 API 的补丁版本号吗?
.net - 正则表达式匹配非零前缀数字 *OR* 字母数字
我编写了一个正则表达式,它与符合Semantic Versioning 2.0.0规范的字符串匹配(见下文)。
表达式的中间部分处理解析预发布版本。此部分以连字符 (-) 为前缀,并且可以有一个或多个用句点 (.) 分隔的标识符。每个标识符都是字母数字(0-9、AZ、az 或连字符),但如果标识符是数字,则它不能以前导零开头。
是否有更简洁的方式来表示我用来执行非零前缀规则的交替组?
此正则表达式适用于 .NET,使用“x”模式编写,以允许注释并忽略空格。
我认为该解决方案可能与环视运算符有关,但我不确定如何去做。
api - 变量名称更改颠簸 SemVer 主要还是次要?
假设我有一个可以通过类似 API 调用的函数,$MyFunction
并且为简洁起见$MyFunction
返回 12。现在假设我重命名$MyFunction
为,$The12Function
但它仍然返回相同的结果(在此示例中为整数 12)。这是否需要增加主要或次要 SemVer 版本号?
有人可能会争辩说我不允许向后兼容,因为它$MyFunction
不再有效。但是,也有人会争辩说存在向后兼容性,因为您仍然可以通过$The12Function
.
semantic-versioning - 协议的版本是否需要“补丁”?
根据semver,版本号是 MAJOR.MINOR.PATCH,当您进行向后兼容的错误修复时,补丁会增加。
我正在制定一个新的通信协议,并且我希望该协议具有与之关联的版本(使用该协议的实体可能会在握手期间协商他们将在对话中使用的协议的最高支持版本)。补丁在这种情况下是否有意义?我知道这对软件产品是有意义的(例如,修复了导致应用程序崩溃的错误,但没有 API 更改),但协议只是一个规范(技术上没有与协议本身相关的代码,只有代码在会说话的实体中协议)。
是否存在协议的补丁编号会增加的情况?如果不是,我应该只使用主要和次要版本吗?
node.js - package.json 中的波浪号(~)和插入符号(^)有什么区别?
在我升级到最新的稳定版之后node
,npm
我尝试了npm install moment --save
。package.json
它使用插入符号^
前缀保存条目。以前,它是一个波浪号~
前缀。
- 为什么要进行这些更改
npm
? - tilde
~
和 caret 和有什么不一样^
? - 与其他人相比有什么优势?