问题标签 [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.

0 投票
0 回答
210 浏览

versioning - 抛出异常类型的更改是否应该被视为重大更改?

如果我有一个使用语义版本控制管理的公共 API,是否应该将方法可能引发的异常类型的更改视为重大更改?

考虑这个例子:

调用代码可能如下所示:

如果 的实现API.Method因此改变:

是否应该增加语义版本的主要值,因为这种变化可能会破坏?它肯定会破坏上面的异常处理程序,所以看起来像是一个重大变化。

0 投票
1 回答
77 浏览

node.js - 为 npm install --save 指定 semver 运算符

默认情况下npm install --save用作^semver 运算符。我知道可以使用设置save-prefix配置来更改此默认值。但由于我想~为依赖项和^devDependencies 指定,我不想更改配置。有没有办法~用命令指定操作员--save

0 投票
1 回答
285 浏览

reactjs - ReactJS 版本 <1。是否已准备好生产(主要 API 在版本凹凸上不可变)?

正如标题所说,

我正在考虑在生产就绪项目中使用 React(特别是:Meteor 的Material-ui模块)。

因为它甚至在v1.0那时还不够稳定,可以在生产中使用吗?1.0使用 <版本有什么缺点?

0 投票
2 回答
909 浏览

java - 使用 maven 碰撞模块版本

我有一个大型的多模块 maven 项目(数十个模块,4 个嵌套级别)。

每个模块都有自己的语义版本(可以是也可以SNAPSHOT不是)。

我想找到使用一个命令或脚本自动调整每个模块主要版本的方法,以避免每个模块发生变化。

所以我有例如

撞了之后我想拥有

我知道Maven 发布插件版本 Maven 插件,但我不知道如何让它们自动更新主要版本。

你能帮我解决这个问题吗?

0 投票
1 回答
12753 浏览

node.js - npm install 使用预发布版本

我想在我的 package.json 中使用预发布版本来获取最新版本(包含 als 预发布)中的一些依赖项,但由于某些原因,它在我的情况下不起作用。预发行版被完全忽略。作为一个例子,让我们使用角度。如果我要求"angular": ">=1.4.0-rc.0 <1.4.1"作为依赖项,我希望我会1.4.0-rc.2安装版本,但我只得到版本1.4.0

显示npm info angular,有一些可用的 rc 版本,如

...
“1.4.0-beta.4”、
“1.4.0-beta.5”、
“1.4.0-beta.6”、
“1.4.0-rc.0”、
“1.4.0-rc”。 1',
'1.4.0-rc.2',

我的 package.json 现在看起来如下

任何想法为什么我没有得到任何 rc 版本?我该怎么做才能让它工作?

0 投票
2 回答
1092 浏览

node.js - 获取 maxSatisfying 版本,包括带有节点 semver 的预发布版本

如何使用 node/semver 从一系列版本中获取最新版本(包括预发布版本)。

例如:

返回 null,但我想取回 1.0.0-rc.11。

亲切的问候,祝您有美好的一天!

0 投票
3 回答
6075 浏览

ios - 使用 TestFlight 进行内部测试时,什么是好的 iOS 应用版本控制策略?

我有一个 iOS 应用程序,它使用语义版本控制来标记已发布的版本。我还使用 Apple 的 TestFlight 将内部构建推送给团队进行测试/QA。

推送内部构建需要将构建上传到 iTunes Connect。iTunes Connect 的测试版本和发布版本之间没有区别,iTunes Connect 不允许覆盖以前上传的版本。所以每次我想为内部测试推送一个新版本时,我都必须增加版本号(嗯,补丁(XX X)号)。

这很好用,除了对我们的用户来说,看起来我们的版本号在更新之间跳了很多。例如,如果这是我们的构建历史:

  • v1.0.0
  • v1.0.1(测试中发现bug)
  • v1.0.2
  • v1.1.0(测试中发现bug)
  • v1.1.1(测试中发现bug)
  • v1.1.2

...然后用户只看到大胆的发布,我们的发布历史看起来很奇怪:

  • v1.0.0
  • v1.0.2
  • v1.1.2

我认为避免这种情况的一个好方法是使用 beta 版本,例如v1.1.0-beta测试版本,但 iTunes Connect 拒绝任何不是X.X.X.

有没有办法继续使用 TestFlight 进行内部测试/QA 并避免向用户显示填补空白的版本历史记录?

0 投票
1 回答
42 浏览

internationalization - 出于语义版本控制的目的,i18n 字符串键是否被视为“公共 API”?

我正在维护一个 PHP 模块,该模块的 i18n 覆盖率非常低且过时,我们正在尝试对其进行更新。为了将内容放在应有的位置,我们需要组合一些键(例如 OrderInformation.ss.QUANTITY 和 ProductCategoryItem.ss.QUANTITY)并重命名其他键。

从理论上讲,这可能会导致之前翻译的一些网站在更新时恢复一些字符串。这是否有资格在语义版本控制下进行向后不兼容的更改?

0 投票
1 回答
55 浏览

php - 解析 JSON 文件并比较 semvers

我有一个看起来大致像这样的 json 文件。

我想知道是否有解决方案来解析和获取最重新发送的 semver 标签。我试过了:

现在,假设$container包含所有标签,我如何获得最新版本将是 2.4。

获取2.4不是问题,而是制定一种面向未来的可靠方法来找出哪个是最近的。

0 投票
2 回答
662 浏览

node.js - npm 安装不起作用

我的 npm 有问题。这是我的错误:

错误信息的屏幕截图

我尝试卸载 nodejs 并安装它,但我的错误仍然存​​在,然后我尝试命令 npm install npm,有同样的错误并且npm -v也不起作用。