版本化多个配置

时间:2018-02-21 23:49:09

标签: semantic-versioning

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

如何对工件进行一致的版本设置,以使Release配置优先于Debug配置?

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

    ✓) 1.0.0-debug       (Debug)  <  1.0.0       (Release)
    ×) 1.0.0-alpha.debug (Debug)  >  1.0.0-alpha (Release)
    
  • 我可以使用元数据,但优先级是相同的。

    ×) 1.0.0+debug (Debug)  =  1.0.0         (Release)
    ×) 1.0.0+debug (Debug)  =  1.0.0+release (Release)
    

也许我只是以错误的方式接近这一点。如果是这样,什么是正确的方法?一个单独的神器?

1 个答案:

答案 0 :(得分:0)

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

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

示例包布局:

MyLib.1.0.0
    Debug
        Docs
        Bin
        Include
    Release
        Docs
        Bin
        Include

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