如何为仅包含三个yaml脚本文件的发行版构建清单文件?

问题描述 投票:0回答:1

我的团队正在开发三个相当大的YAML脚本,这些脚本定期发布供公众使用。

我需要创建一个清单文件作为这些脚本版本的版本控制方式。

大多数清单格式(Windows应用程序,程序集,jar包等)都遵循标准或模板,但我认为我的方案没有默认实现,其中发布的对象只是YAML脚本。

我正在考虑从头开始创建一个新的YAML脚本,其中包含有关此脚本包的元数据的关键:值对。

我在想的是指定:

  • 那么
  • 版本号
  • 版本日期
  • 创造者
  • 当前版本的文件
  • 依赖

这就是我所拥有的一切,但这似乎是空洞的。

在这种情况下,是否有最佳方法来构建清单?

我是否应该考虑控制这些版本的替代方法?

version-control yaml manifest
1个回答
1
投票

您可以很好地使用YAML创建清单文件,并且您可以将项目符号项用作表示每个版本的映射的键值对。

您应该考虑如何将版本放在一起,因为除非您使用序列,否则可能没有保证或有用的方法来在清单中订购版本。

在下面我假设你想要遵循清单文件顶部最新版本的通常模式。

  • 如果您决定使用版本日期作为根级别映射的关键: 2019-03-14: name: new-name version: [0, 2, 0] 2019-02-28: name: some_name version : [0, 1, 0] 您会发现大多数YAML库在映射开始时插入一个新键是非常重要的(对此我的ruamel.yaml库是一个例外)。此表单排除了在一天内发布多个版本,这可能会在将来某个日期出现问题。
  • 如果您决定使用版本号作为密钥: [0, 2, 0]: name: new-name date: 2019-03-04 [0, 1, 0]: name: some_name date : 2019-02-28 您可能会发现某些YAML库无法处理这些类型的密钥。并且当密钥被排序时,将它们更改为像0.2.0这样的字符串可能会让您遇到更大麻烦,只要一些数字开始为两位数字

完成此操作的最简单方法可能是使用根级别序列,这样,在添加版本的每次往返中,插入和排序都是完全可控的:

    - name: new-name
      version: [0, 2, 0]
      date: 2019-03-04
    - name: some_name
      version: [0, 1, 0]
      date : 2019-02-28

如果您的版本直接位于根级别下,则通常无需完全加载 - 更新 - 写入版本YAML文件。相反,您可以将旧文件作为文本加载,然后将单个新条目转储到文件,然后将加载的文本附加到新创建的文件。

© www.soinside.com 2019 - 2024. All rights reserved.