【问题标题】:Versioning multiple configurations对多个配置进行版本控制
【发布时间】:2018-08-01 17:07:50
【问题描述】:

我一直在将Semantic Versioning 用于我通过 Nexus 分发的项目,但我遇到了一个难题。我需要为每个版本发布两种不同的配置:Release 和 Debug。一般来说,普通消费者会使用 Release 工件,但有些人会想要/需要 Debug 工件。

我怎样才能一致地对工件进行版本控制,以便发布配置优先于调试配置?

  • 我可以为调试配置添加一个标识符,但是预发布版本的优先级错误。

    ✓) 1.0.0-debug (调试) 1.0.0-alpha (发布)
  • 我可以使用元数据,但优先级相同。

    ×) 1.0.0+debug(调试)= 1.0.0(发布) ×) 1.0.0+debug(调试)= 1.0.0+release(发布)

也许我只是以错误的方式处理这个问题。如果是这样,正确的方法是什么?单独的工件?

【问题讨论】:

  • @Airhead,有充分的理由为各种包分发调试工件,尤其是库,这是 SemVer 的主要用例。

标签: semantic-versioning


【解决方案1】:

首先让我们定义一些术语。大多数现代构建系统至少具有用于构建输出的“调试”和“发布”配置,但在 SemVer 术语中,这些类型中的任何一种都可以是“发布”版本(X.0.0)或“预发布”版本(XYZ-prereleaseTag )。代码覆盖率和分析配置也是如此。

一个包可能只包含产品的一个版本,但配置的数量可能是无限的,因此您通常可以将所有配置打包在单独的目录中以获得单个版本。

示例包布局:

MyLib.1.0.0
    Debug
        Docs
        Bin
        Include
    Release
        Docs
        Bin
        Include

详细信息取决于您使用的包工具。 Nuget 和 NPM 都有自己的标准布局约定,但几乎可以让你以任何你想要的方式布局。

【讨论】:

  • 我很确定我明白你在说什么。你能举个例子吗?这听起来像是 Nexus 中的多个工件。
  • @ricksmt,添加示例。
猜你喜欢
  • 2010-12-30
  • 1970-01-01
  • 2014-05-26
  • 2018-10-02
  • 1970-01-01
  • 2017-03-22
  • 2012-05-17
  • 2011-10-13
  • 2018-05-31
相关资源
最近更新 更多