问题标签 [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.
gruntjs - grunt 安装的 npm semver 版本无效问题
安装 grunt 时,错误之一是unmet dependency semver@4
我正在使用node@0.10.33
,npm@1.4.28
我运行了两个命令,它显示了两个版本,一个是无效的
在树中它显示semver@2.3.0 invalid
现在我跑
现在它显示4.1.0
我尝试了 npm update semver 但没有任何反应
我什至尝试过类似问题npm error invalid semver中提供的解决方案
但没有帮助
我是 npm 的新手,请帮忙!
ios - 关于使用 Harpy 进行语义版本控制
我在 App Store 中有我的应用程序的 2.0.3 版本。现在我想发送 2.0.4 版本。但是在调试时,Harpy 总是要求更新到 2.0.3。我哪里错了?下一个版本应该是什么?
gradle - 使用 Artifactory 和/或 Gradle 自动化版本号
我们用:
- Gradle 构建(我们的构建脚本)
- CI竹
- 用于 bin repo 的 Artifactory
在 Bamboo 上,我们使用Artifactory Gradle 插件将构建的 JAR 发布到 Artifactory。
Artifactory、Gradle 或 Artifactory-Gradle 插件是否能够根据semver
?
这种机制必须自动增加补丁/内部版本号,并将主要/次要数字作为 CI 脚本变量(我们将在准备新的主要/次要版本时手动更改)。此外,这种机制需要能够在每次主要/次要版本发生时将补丁/内部版本号重置为零。
这是一个选项吗?如果是这样,怎么做?
node.js - `npm publish -f` 是否有解决方法
现在npm publish -f
已弃用,是否有解决方法或软件包可以在目标版本发布后 覆盖它?
我知道semver;我还想要npm publish -f
。
api - REST API 的语义版本控制?
我已经评估了 REST api 的许多版本控制模式(标头、url、...)。到目前为止,最可靠的方法似乎是 url 选项:它适用于代理,并且不依赖于晦涩的模式,例如版本控制的日期。
现在,当我环顾四周时,每个使用基于 url 的方法的人似乎都使用诸如v1
、等版本v2
。没有人使用次要版本,甚至没有使用语义版本控制等模式。
这提出了一些问题:
- 你什么时候增加 REST API 的版本号(当然,你对它的更新比五年一次的要多)?
- 如果您只是修复错误,您可能不会增加版本号,但是您如何区分两个版本?
- 如果您使用非常细粒度的方法,您最终会得到很多需要并行托管的版本。你怎么处理?
换句话说:像 GitHub 这样的公司如何做到只有v3
今天(2015 年),而他们已经经营了 7 年?这是否意味着他们实际上只更改了两次 API?我简直不敢相信。
有什么提示吗?
git - 从给定标签中获取最后一个 git 标签
给定一个 git 标签(例如 v.0.1.0),我想要一个 bash 命令,它会给我上一个按时间顺序排列的标签(例如 v.0.0.5)。这里我使用 semver 进行版本控制,你可以看到我不能只减少数字。我需要给 repo 的最后一个标签。想法?
我试过git describe --tags
了,它给了我最后一个标签。但没有什么特别的。
python - 语义版本控制对参数名称更改意味着什么?
试图向朋友解释语义版本控制的重要性时,我遇到了以下困境。
假设我们有 library libfoo
, version1.2.3
公开了以下功能:
现在假设此函数及其文档更改为:
我的第一印象是说下一个版本将是1.2.4
,因为公共界面没有改变。例如,像这样调用函数的人根本不会注意到变化:
但再想一想,这很可能是一个API 中断,因为 Python 允许通过参数名称来指定参数。如果有人像这样调用我的函数:
这将不再适用于 version 1.2.4
,从而破坏了语义版本控制合同。
另一方面,这样的变化似乎很小,以至于我对将版本增加到2.0.0
.
总而言之,这是否构成 API 中断?在这种情况下,下一个版本号应该是什么?
versioning - 大型系统中的软件版本控制
我的公司正在开发一个系统 10 年。该系统有 15 个几乎独立的子系统(它们可能使用相同的库或包或 DB),这些子系统在不同的团队中本地构建,还开发了一个主要的简单系统来读取子系统配置并构建带有菜单和子菜单的页面来自配置(带有快捷方式)。我们公司的产品就是这个主系统的exe。
不幸的是,我们公司不使用标准版本号。现在,我们决定在公司强制制定一个标准,我发现Semantic Versioning是一个令人满意的标准,但在我们的案例中我有一些问题: 子系统版本的更改将如何增加主系统版本?通常,即使子系统发生重大更改,主系统的代码仍然不受影响。我认为主系统的变化应该影响该系统的版本号,但在这种情况下它没有意义。对于由多个子系统组成的大型应用程序的版本控制是否有任何解决方案?
node.js - 在 1.0.0 之前对 npm 包进行版本控制的约定是什么?
我正在阅读有关使用npm
.
预发行
假设您的包从版本开始0.0.0
npm version prerelease
=>0.0.1-0
npm version prerelease
=>0.0.1-1
基本上只是在破折号后增加数字
预补丁
从0.0.0
使用 pre[major|minor|patch] 开始...
npm version prepatch
=>0.0.1-0
npm version preminor
=>0.1.0-0
npm version premajor
=>1.0.0-0
修补
从0.0.0
使用补丁开始...
npm version patch
=>0.0.1
npm version patch
=>0.0.2
我了解碰撞主要次要版本和补丁版本的规则,但是之前版本控制的标准约定是什么1.0.0
?
scala - 在 Scala 中解析 SemVer
我正在尝试使用解析器组合器在 Scala 中编写 SemVer ( http://semver.org ) 解析器,作为对它们的一种熟悉。
这是我当前的代码:
我想知道我应该如何解析预发布部分的标识符,因为它不允许数字标识符中的前导零,当我尝试使用我当前的解析器解析时,前导零(例如在“01.2.3”中)只是成为一个列表包含元素 0。
更一般地说,我应该如何检测到字符串不符合 SemVer 规范并因此强制出现故障条件?