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

Version control 如何为仅包含三个yaml脚本文件的发行版构建清单文件?,version-control,yaml,manifest,Version Control,Yaml,Manifest,我的团队正在开发三个相当大的YAML脚本,它们定期发布供公众使用 我需要创建一个清单文件,作为这些脚本版本的版本控制方式 大多数清单格式(windows应用程序、程序集、jar包等)都遵循标准或模板,但我认为在我的场景中没有默认实现,其中发布的对象只是YAML脚本 我正在考虑从头开始创建一个新的YAML脚本,其中包含关于这个脚本包的key:value元数据对 我的想法是具体说明: 名字 版本号 版本日期 创造者 当前版本上的文件 依赖关系 这几乎是我所有的,但那似乎是空的 在这种情况下,有没

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

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

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

我正在考虑从头开始创建一个新的YAML脚本,其中包含关于这个脚本包的key:value元数据对

我的想法是具体说明:

  • 名字
  • 版本号
  • 版本日期
  • 创造者
  • 当前版本上的文件
  • 依赖关系
这几乎是我所有的,但那似乎是空的

在这种情况下,有没有最佳的方法来构建清单


是否应该考虑版本控制这些版本的另一种方式?

< P>你可以很好地使用YAML来创建一个清单文件,并且可以使用子弹项作为每个版本的映射的键值对。 但是,您应该考虑如何将发布放在一起,因为除非您使用序列,否则可能无法保证或有效地在清单中对发布进行排序

在下文中,我假设您希望遵循通常的模式,将最新版本放在清单文件的顶部

  • 如果决定将版本日期用作根级别映射的键:

    2019-03-14:
      name: new-name
      version: [0, 2, 0]
    2019-02-28:
      name: some_name
      version : [0, 1, 0]
    
    您会发现,在大多数YAML库中插入 映射开始处的新键(一个例外是my
    ruamel.yaml
    library for Python)。此表单排除了多次发布 总有一天,这在将来的某个日期可能会成为一个问题

  • 如果您决定使用版本号作为密钥:

    [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文件。相反,您可以将旧文件作为文本加载,然后将单个新条目转储到文件中,然后将加载的文本附加到新创建的文件中