Вы можете прекрасно использовать YAML для создания файла манифеста, и вы можете использовать элементы маркера в качестве пар ключ-значение для отображения, которое представляет каждый выпуск.
Однако вам следует подумать о том, как вы соберете релизы, потому что, если вы не используете последовательность, не может быть гарантированного или полезного способа упорядочить релизы в манифесте.
В дальнейшем я предполагаю, что вы хотите следовать обычному шаблону, в котором последняя версия находится вверху файла манифеста.
Если вы решите использовать дату версии в качестве ключа для сопоставления корневого уровня:
2019-03-14:
name: new-name
version: [0, 2, 0]
2019-02-28:
name: some_name
version : [0, 1, 0]
Вы обнаружите, что в большинстве библиотек YAML нетривиально вставить
новый ключ в начале отображения (исключение составляет моя библиотека ruamel.yaml
для 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. Вместо этого вы можете загрузить старый файл в виде текста , затем сбросить одну новую запись в файл, а затем добавить загруженный текст в этот вновь созданный файл.