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

maven - 如何获得 Maven 版本的主要部分?

是否可以获得主要版本(<Major>.<Minor>.<Patch>project.version

例如,如果我的版本是1.3.4,我想1稍后在同一个 pom.xml 的配置中使用它

就像是:

如果没有,有什么替代方案?

0 投票
8 回答
10415 浏览

ruby-on-rails - 您将 Rails 应用程序的版本号存储在哪里?

在对我们的 rails 应用程序进行版本控制时,我们使用了出色的语义版本控制范式。我的一个问题是最好将这个号码存储在哪里?我已经看到它存储在/lib,environment.rb等中。

只是想知道人们对最佳实践的看法?

0 投票
1 回答
2647 浏览

nuget - 可以在 VS 包管理器 UI 中显示预发布的 NuGet 包吗?

我正在使用自定义 NuGet 源来部署自己的 NuGet 包。我正在使用semver,因此我的 CI 服务器在每次构建时都会生成一个部署新的预发布包。默认情况下,这些预发布包显然在包管理器中不可见。

有没有办法在包/提要/全局级别上指定预发布包应该出现在包管理器的更新选项卡下?

如果我通过例如编辑packages.config文件来安装预发布包,我的包在包管理器中清楚地标有红色“预发布”标签,因此管理器可以正确理解版本控制。

0 投票
4 回答
3748 浏览

semantic-versioning - 语义版本控制中的“公共 api”是什么意思?

我正在学习如何使用来自http://semver.org/的名为“语义版本控制”的规则分配和增加版本号。

在它的所有规则中,第一条说:

使用语义版本控制的软件必须声明一个公共 API。此 API 可以在代码本身中声明或严格存在于文档中。不管怎么做,都应该是准确和全面的”

我对“公共 API”感到困惑。它指的是什么?

0 投票
4 回答
310 浏览

.net - 迁移到可移植类库是一项重大改变吗?

目前我正在构建单独的二进制文件以针对每个运行时

  • .net 4
  • 视窗电话
  • 银光

现在,如果我将库移动为单个Portable Class Library,并且我没有更改功能,这是否被视为重大更改?

或者在SemVer术语中,它是主要、次要还是补丁版本更改?

0 投票
1 回答
105 浏览

open-source - 重构软件时版本号发生变化

我们正在开源一个以前专有的 Java 软件系统。我们松散地遵循了 Tom Preston-Werner 的语义版本控制,其中:

  • 错误修复意味着补丁更新(例如,1.0.X)
  • 对向后兼容的公共 API 的更改意味着较小的更新(例如 1.X.0)
  • 对向后不兼容的公共 API 的更改意味着重大更新(例如 X.0.0)

开源系统的任务需要我们重命名包。我们还认为我们应该整合以前存在的大部分模块。

重组任务不会改变公共 API,但会改变 API 用户的依赖关系。

重组/包重命名在哪里适合语义版本控制?在知名的开源项目中如何处理这样的重组?

0 投票
4 回答
4065 浏览

continuous-integration - 使用 TeamCity 合并语义版本控制的最佳实践是什么

TeamCity 是一个很棒的 CI 工具,我们也使用 Semantic Versioning 来管理我们的 DLL 版本很长一段时间,现在我们正在达成将 TeamCity 和 Semantic Versioning 集成在一起的想法,同时我们对这个主题进行了一些研究,比如说版本信息喜欢

MajorVersion.MinorVersion.PatchVersion.BuildNumber

buildNumber 我们总是使用 teamcity buildnumber,以及我们在 assemblyinfo.cs 中维护的其他 3 个版本,这里的问题是 - 我们如何使用 teamcity 将其 build number 输入到 assemblyinfo.cs,我可以找到 Msbuild 支持这个参数,有没有处理同一件事的最佳做法?我们还希望将整个版本作为已发布的版本信息提供给我们的开发人员的 nuget 包

非常感谢

0 投票
0 回答
2052 浏览

ruby - 何时在 Github 上增加项目的版本号

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

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

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

但是之后...

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

您的流程和在所有这些方面使用的良好做法是什么?有什么额外的建议吗?

谢谢大家!:)

0 投票
1 回答
12808 浏览

nuget - 如何创建包含预发布的 nuspec 依赖项

一些上下文:

我有 4 个具有依赖项的 nuget 包。它们都处于预发布模式,并且按照自己的节奏从 alpha 发展到“稳定”。我希望能够在依赖定义中指定应该包含预发布,但是当“稳定”版本可用时,它应该更新到稳定版本。

NuGet Docs中,版本控制规则定义[]包含您指定的版本号()排除您指定的版本号。

有关 nuspec 文件中版本影响的一些示例:

==> 这将安装 MyComponent 1.2.0 或更高版本。(不包括预发布 1.2.0-alpha)

==> 这将安装 MyComponent 1.2.0 或更高版本。(不包括预发布 1.2.0-alpha)

==> 这将安装 MyComponent 1.2.0 直到但不包括版本 2.0.0。(不包括预发布 1.2.0-alpha 但包括预发布 2.0.0-alpha)

目前我设置:

但我觉得这是一种非常丑陋的方式,它并不能真正反映现实。(如果版本 1.1.32767.1 存在怎么办?)

我想知道如何指定您希望在最低版本中包含预发布版本?

0 投票
1 回答
146 浏览

ruby - 描述用于语义版本控制的 ruby​​ gem 公共 API

语义版本控制规范中的第一点指出兼容软件必须声明公共 API。

我想知道 gems 是如何建立这个公共 API 的。似乎它通常是通过自述文件完成的(例如,参见ActiveRecord),感觉它并没有在公共 API 代码和其他代码之间划出严格的界限。一个做得更好的 gem 的例子是Twitter API,将它的公共 API 代码放在API 目录中,但即使在那里,这条线也是灰色的,因为公共 API 的配置方法是在API 目录之外的twitter.rb中定义的。

作为尝试坚持语义版本控制的 gem 的潜在贡献者(这是其中的大多数,因为我们有像 bundler 这样的工具),我想知道哪些方法是公共 API 的一部分,哪些不是。也许我必须查看更多源代码,但是否有明确定义公共 API 的指南?