标签: semantic-versioning

何时在 Github 上修改项目的版本号

这更像是一个哲学问题,但我想知道该怎么走。

好吧,让我们举一个具体的例子。我在 Github 上有一个项目,它是一个 Ruby gem。

通常,当我发布一个新版本时,我会完成所有功能和修复,然后创建一个带有"Bumping version to v1.2.0"as 消息的提交,并且只包含 Changelog 更新和VERSION持续更新。该v1.2.0标签指向该承诺。

但是之后...

  • 我是否应该直接再次修改版本,使其成为v1.3.0-alpha回购协议?
  • 如果在此过程中的某个地方我最终做出了重大更改,我是否应该将版本重新调整为v2.0.0
  • 我应该创建一个v1.2.x分支来处理补丁版本吗?

围绕所有这些,您的流程和良好做法是什么?任何额外的建议?

谢谢大家!:)

ruby git github semantic-versioning

5
推荐指数
0
解决办法
1816
查看次数

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 更新次要或主要版本,而无需明确说明您需要什么版本(和开发版本)。由于它可以如此轻松地进行补丁版本更新,我希望有命令可以对次要或主要版本执行相同的操作。

maven jenkins semantic-versioning

5
推荐指数
1
解决办法
3460
查看次数

npm - 发布具有多个版本的多个分支的模块

我有一个 npm 模块,它已经在4.x.xversion下发布,并且与3.x.x稳定版本相比有重大变化。

但是我有一些3.x.x版本更新并想修补它的 npm 版本。是否可以?我可以在 npm 上管理 2 个主要版本吗?

https://docs.npmjs.com/cli/publish npm publish --tag做的伎俩?

git node.js npm git-branch semantic-versioning

5
推荐指数
1
解决办法
1029
查看次数

SemVer 和微服务

在微服务产品中应用 SemVer 是否有最佳实践/模式?每个微服务是否应该有 SemVer,整个产品是否应该有 SemVer?

示例 - 我有一个名为 的产品,SuperDatabase包含 3 个微服务SuperDatabaseCore,分别为SuperDatabaseReports、 和SuperDatabaseSearch

初始发行: SuperDatabase v1.0.0 SuperDatabaseCore v1.0.0 SuperDatabaseReports v1.0.0 SuperDatabaseSearch v1.0.0

报告的小更新: SuperDatabaseReport v1.1.0

产品应该是SuperDatabase v1.1.0现在吗?

如果以后有搜索补丁怎么办: SuperDatabaseSearch v1.0.1

产品版本是否应该再次更改?产品版本是否应该完全独立于微服务?它到底应该使用 SemVer 吗?或者它不应该有任何版本控制?

architecture semantic-versioning microservices

5
推荐指数
1
解决办法
2097
查看次数

将示例添加到包时是否应该更新 semver 版本?

我正在制作一个 npm 包,并将其发布为 1.0.0 版本,因为我对公共 API 很满意。但现在,我正在添加一个“示例”子项目来展示如何使用该库。显然,我不会将示例项目作为库的一部分发布(它将添加到 .npmignore 中),但它将出现在我的 github 存储库中。是否有任何语义版本控制规则?我应该更新补丁版本、次要版本还是什么也不更新?

一方面,我认为我不应该更新版本,因为它不会发布到 npm,因此应用程序的普通用户甚至不会注意到包中的差异。另一方面,semver 规则规定,当您进行文档更改时,您应该更新“补丁”或“次要”版本,即使文档也没有发布。

versioning github package npm semantic-versioning

5
推荐指数
1
解决办法
827
查看次数

语义版本控制 (Semver) - 如何 semver 向后兼容的大型功能更新

我的理解是,使用 XYZ,我们只更改 X 来进行重大更改。Y 表示向后兼容的功能更改。

因此,我的假设是否正确:即使我的更新绝对是对功能的巨大补充——没有重大更改,因为它只是一个补充,我仍然不会更改 X。

TLDR无论更新多么“重大”,如果它不是重大更改,您就不会更改 XYZ 的 X

javascript npm semantic-versioning

5
推荐指数
1
解决办法
877
查看次数

我应该对节点包的 package.json 引擎字段中的节点或 npm 版本使用 ">=(大于或等于)吗?

该软件包是使用(当前)的LTS版本在本地开发的。在engines下,我已设置为,但我注意到使用很常见(请参阅yarn) - 我如何决定是否应该“放松”我的节点版本?我也在考虑。node12.18.2node12.18.2>=~12.18.2

好处:如果包使用者使用的版本仍然适用于该包,则不会收到警告,node尽管该版本高于package.json.

潜在风险:是否担心未来版本的node重大更改或弃用会影响我的软件包?


>=我对版本的使用有同样的问题npm

node.js npm semantic-versioning package.json

5
推荐指数
0
解决办法
1万
查看次数

NPM标准版补丁版本问题

我正在尝试在我的 javascript 项目中使用标准版本。我将release脚本添加到我的 package.json 中:

"scripts": {
    ...
    "release": "standard-version"
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我向 git 存储库添加了一个提交,并显示以下消息:

feat: test
Run Code Online (Sandbox Code Playgroud)

我跑npm run release,它增加了项目的补丁版本。

所以我的初始版本是0.2.1(标签:v0.2.1),它是0.2.2用此提交消息生成的

chore(release): 0.2.2
Run Code Online (Sandbox Code Playgroud)

为什么不增加小版本?

javascript git npm semantic-versioning conventional-commits

5
推荐指数
1
解决办法
1330
查看次数

配置语义发布以通过 CLI 发布预发布

我的目标是配置semantic-release为从受保护的分支创建标签,如下所示:

\n
npx semantic-release --plugins @semantic-release/commit-analyzer --branches {'name': 'release/super-feature', 'prerelease': true}\n
Run Code Online (Sandbox Code Playgroud)\n

我期待该标签1.0.0-super-feature被创建。但是,我遇到了一个例外:

\n
[semantic-release] \xe2\x80\xba \xe2\x9c\x96  EINVALIDBRANCH A branch is invalid in the `branches` configuration.\nEach branch in the branches configuration (https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#branches) must be either a string, a regexp or an object with a name property.\nYour configuration for the problematic branch is ``.\n[10:03:55 AM] [semantic-release] \xe2\x80\xba \xe2\x9c\x96  EINVALIDBRANCH A branch is invalid in the `branches` configuration.\nEach branch in the branches configuration (https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#branches) must be either a …
Run Code Online (Sandbox Code Playgroud)

semantic-versioning semantic-release

5
推荐指数
1
解决办法
1122
查看次数

使用 SemVer 时,一个小的重大更改足以进行主要版本升级吗?

我对 SemVer 的概念很陌生。在我当前的项目中实施这似乎是一个非常有前途的想法。

根据 SemVer 概念,如果一个项目有名称project-a.b.c,则 a 是主要更新(重大更改),b 是次要更新(较新的实现),c 是补丁更新(错误修复)。

我的问题是,假设我有一个非常小的重大更改,我需要构建和更新我的存储库。那我该怎么办?

是重大更新还是补丁更新?

另外,SemVer 是否只适用于某些软件技术而不适用于所有技术?例如,一些节点开发人员告诉我他们很少使用这个。但是,我不确定有多少人在练习。

versioning version-control semantic-versioning

5
推荐指数
1
解决办法
949
查看次数