我的团队正在开发三个相当大的YAML脚本,这些脚本会定期发布以供公众使用。
我需要创建一个清单文件,作为这些脚本的发行版的版本控制方式。
大多数清单格式(Windows应用程序,程序集,jar包等)都遵循标准或模板,但我认为我的方案没有默认的实现,其中已发布的对象只是YAML脚本。
我正在考虑从头开始创建一个新的YAML脚本,其键为:与该脚本捆绑有关的元数据值对。
我在想什么:
这几乎是我所拥有的,但这似乎是空的。
在这种情况下,是否有最佳的方法来构建清单?
我应该考虑一种替代方法来控制这些发行版吗?
答案 0 :(得分:1)
您可以很好地使用YAML来创建清单文件,并且可以将项目符号项用作表示每个版本的映射的键值对。
但是,您应该考虑如何将发布放在一起,因为除非使用序列,否则可能无法保证或有用地在清单中对发布进行排序。
在下文中,我假设您要遵循清单文件顶部具有最新版本的通常模式。
如果您决定使用版本日期作为根级映射的键:
2019-03-14:
name: new-name
version: [0, 2, 0]
2019-02-28:
name: some_name
version : [0, 1, 0]
您会发现,对于大多数YAML库来说,插入一个
映射开始处的新键(我的Python 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文件。相反,您可以将旧文件作为文本加载,然后将单个新条目转储到文件中,然后将加载的文本附加到该新创建的文件中。