问题标签 [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 投票
1 回答
163 浏览

php - 如何使用 PHPDoc 为 PHP 代码块添加最后修改/版本?

我正在开发一个 WP 主题,我正在使用 PHPDoc 评论我的 PHP 代码。我想添加大型代码块的版本,以便客户知道它何时更新。

假设我发布了初始版本 1.0.0,然后我在 1.0.2 版本中更新了一些代码。如何记录代码已更改?这是否正确:

我不确定这是使用@version 的正确方法,因为另一方面我还有另一种情况,即更新后另一个代码块没有更改:

所以不确定这是否有意义..请让我知道你的想法。

谢谢你。

0 投票
1 回答
1310 浏览

git - 语义版本控制和 git 分支

我在v1.0有一个 master 分支和一个v1.1dev的开发分支。

然后我从 dev 创建一个新的发布分支,并将版本号从v1.1dev 提升v1.1,完成,将所述发布分支合并到 master 中,并且 presto - v1.1诞生于master.

但是随后,我将相同的发布分支合并回 dev ,因此 dev 分支也是v1.1

尽管这在技术上是正确的,但我觉得 dev 它应该始终以dev结尾,因为毕竟,它是正在朝着下一个真正版本努力的开发版本。


所以我的问题是:

  • 在合并到发布分支后,是否每个人都在 dev 分支上专门提交一次提交来提升他们的 Dec 代码的版本,还是我遗漏了一些东西(脚本、方法、技术等)?
  • 另外,上面的描述是否普遍代表人们如何提高他们的版本号?

TL;DR: 假设语义版本控制,您应该何时在 git 版本化项目的各个分支中增加版本号?

0 投票
5 回答
427 浏览

r - 对包含语义版本的字符向量进行排序

似乎是一个非常基本的问题,但我真的想不出一个“简单”的方法来做到这一点。

我想对包含具有基本 R 功能的语义版本号character的向量进行排序:

排序后应该是这样的:

当然,这并没有让我得到我想要的,因为 R 只是按字母顺序对整个内容进行排序:

尝试对其进行规范化(有点沿着这篇文章),但我想不出适合语义版本结构的匹配/替换方案:

到目前为止我能想到的最好的就是这个,但它看起来很漂亮......参与;-)

0 投票
0 回答
423 浏览

regex - 尝试与朋友分享 Gulp 项目

我做了一个 gulp 项目,我正在尝试与朋友分享。它是一个简单的 CSS 网格,集成了 gulp 任务。

你可以在这里下载包: https ://www.dropbox.com/s/od1dsh75tegbq24/projectfolder.zip?dl=1

当您解压缩包并确保已安装 node.js、ruby 和 gulp.js 并尝试运行 gulpfile 时,它​​会引发以下错误:

在我安装之后(npm install --save semver-regex)它会抛出同样的错误:

在我安装之后,构建过程可以工作,但是 liveReload 和 watch 任务不会......

有没有一种方法可以轻松共享 Gulpfile?我只想下载和使用它:)

Package.json 位于根目录中:

0 投票
1 回答
76 浏览

gradle - 如何下载非依赖工件作为语义版本控制的 buildScript 块的一部分

首先,我没有要显示的代码,因为我完全被这个难住了。这对于一个 SO 问题来说是一种糟糕的形式,所以我真的很抱歉——我昨天整个工作在相关的构建脚本上,但没有得到任何有用的东西来展示这个。

我目前正在开发一个构建脚本,作为jar任务的一部分(或者更确切地说,它的doLast {}关闭)将使用SemVer API将当前 JAR 与我自己的 Artifactory 中以前发布的 JAR 进行验证。除了实际下载项目的先前版本外,我拥有的所有其他东西都可以使用;我似乎无法设计一个工作脚本。

到目前为止,我的方法是基于这样的推理,即 Gradle 使用 Ivy 作为其依赖管理系统,我应该能够使用正确的参数调用Ivy 的一些 Ant 任务- 与当前项目相同,因此我实际上可以访问组、名称和当前版本很容易 - 然后获取下载的人工制品文件的路径并将其用作上述 SemVer API 的输入。作为一个 Gradle 新手并且实际上已经有几年没有使用 Ivy,即使我的挣扎也向我表明,在这一点上,我不知道如何以一种干净的方式真正做到这一点。到目前为止,我的主要障碍之一是 Gradle 的文档过于广泛,以至于当我什至不记得我想要的某些位的正确术语时,很难找到东西。

由于我没有提供到目前为止我所拥有的任何代码/构建脚本示例,我不介意您的答案是否只是朝着正确的方向轻推。

0 投票
2 回答
2679 浏览

github - 当 GitHub 上只有 README 发生更改时,我是否必须更新项目版本?

我正在 GitHub 上编辑我的一个开源项目,我想在README.md.

每次我对 README 文件或文档进行一些小的更改(没有任何实际代码更改)时,我是否必须更新库版本?

社区接受的做法是什么?

如果它很重要,我将使用Bower分发我的包和SemVer作为版本控制系统。

0 投票
2 回答
371 浏览

versioning - 使用 SemVer 进行版本控制

我需要一些关于SemVer版本控制的帮助/建议。

我在一个客户的网站上工作,他在一个 word 文档中向他的网站发送了大大小小的相关修改(就像他们一直做的那样)。

我有一个基于我的主分支的分支来进行这些新的修改,并且已经为我迄今为止所做的每个已完成的修改创建了提交。

我的想法是我将完成所有修改,然后在下一个版本(v2.0.0)中发布它们,因为我认为所有这些更改都是相关的,并且所有这些更改都足以保证版本号的增加。

我遇到的问题是,客户希望在 2.0.0 发布之前立即进行其中的一些修改,那么处理这个问题的最佳方法是什么 - 我会将这些完成的修改上传到现有版本中吗?并增加次要号码,或者即使所有的修改都没有完成,我也会将它提升到 2.0.0?

在版本控制方面,我有点菜鸟,但我正在努力通过阅读和尝试理解语义版本控制网站来尽可能地学习。

0 投票
0 回答
23 浏览

configuration - 语义版本控制 - 配置更新的版本更新

在我们的应用程序中,我可以在部署时设置配置(数据库主机、API 密钥等),因此配置与我的代码无关,因此与我的应用程序版本无关。

大多数配置都可以这样设置,但有一个第三方配置文件我们很少更新,目前无法这样设置。

如果我需要更新此文件的值,我该如何处理我的版本号?

semver 文档似乎没有涵盖这种特殊情况,因为配置并没有真正执行以下任何操作:

  • 它没有引入向后兼容的修复
  • 它没有引入新的向后兼容功能
  • 它不会引入向后不兼容功能

这个配置更新所做的只是增加了我们当前运行的工人数量。

谢谢

0 投票
1 回答
836 浏览

git - Composer 分支别名和标签的最佳实践

我在 Packagist 上有一个包裹。我标记了0.2.0版本,我将 dev-master 的分支别名设置为 0.3.x-dev。所以这意味着我所做的所有开发都是为了下一个 0.3.x 版本。这也意味着人们可以要求0.3.*@dev我的包的一个版本。

现在,假设我突然意识到我正在做的事情更接近 1.0 版本,所以我将 dev-master 的分支别名更改为1.0.x-dev. 由于我从未制作过 0.3 标记,因此这会导致每个使用我的包的人的依赖关系都被破坏0.3.*@dev

所以......在我决定更改分支别名之前,我是否应该创建一个 0.3 标签?还是人们通过要求我的包的开发分支来承担风险?

0 投票
1 回答
231 浏览

angularjs - 支持多个版本的 AngularJS

我维护一个名为 Angular Modal Service 的 AngularJS 库。我想更改依赖项,以便以 AngularJS 1.3 为目标,如下所示:

但是,我明确知道该库适用于〜1.2。我不想强迫想要我的代码的最新版本的消费者必须升级,可以这样做:

让我的图书馆保持低影响?如果可能,它实际上是否合适?对此有什么好的指导方针吗?