-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Ran into a issue where changelog.yaml
got screwed up somehow.
I'm not sure what exactly caused it, but it seems like it's somehow related to when the collection got moved from a single-digit minor edition to a double-digit one (from version 0.9.0
to 0.10.0
).
I noticed that the last change to the changelog that happened prior to the indent getting screwed up was that version 0.10.0 got added to the changelog but it is missing the changes
key.
0.10.0:
release_date: '2023-12-12'
Looking through the history of the file I see that for other versions the changes
key is always added when a new version is added to the changelog, such as:
0.9.1:
changes:
trivial:
- 'patch: New prometheus/prometheus upstream release 2.48.1! (https://github.com/prometheus-community/ansible/pull/260)'
release_date: '2023-12-10'
At the same time where the changelog.yaml indent got screwed up it also added a new section for version 0.10.1 which is missing the changes
key.
It also looks like the sorting does not understand the semantic versioning fully as versions 0.10.0
and 0.10.1
are inserted between the last 0.1.x
version and first 0.2.x
version and not after version 0.9.x
as you'd expect.
0.1.5:
changes:
bugfixes:
- 'fix: follow PEP 440 standard for supported ansible versions (https://github.com/prometheus-community/ansible/pull/46)'
- 'fix: various role argument specs (https://github.com/prometheus-community/ansible/pull/50)'
trivial:
- 'docs: Remove references to to previous named ansible collection cloudalchemy
(https://github.com/prometheus-community/ansible/pull/44)'
- 'refactor: move yamllint cfg to standard path (https://github.com/prometheus-community/ansible/pull/47)'
release_date: '2023-03-05'
0.10.0:
release_date: '2023-12-12'
0.10.1:
release_date: '2023-12-12'
0.2.0:
changes:
bugfixes:
- 'fix: Fix typo on Install selinux python packages for RedHat family (https://github.com/prometheus-community/ansible/pull/57)'
minor_changes:
- 'feat: add systemd exporter role (https://github.com/prometheus-community/ansible/pull/62)'
removed_features:
- 'removed: community.crypto is only needed when testing (https://github.com/prometheus-community/ansible/pull/56)'
trivial:
- 'refactor: Disable line-length check in arguments_specs (https://github.com/prometheus-community/ansible/pull/58)'
- 'refactor: avoid using command module for systemd version fact (https://github.com/prometheus-community/ansible/pull/52)'
- 'test: fix: 2.12+ test requirements install (https://github.com/prometheus-community/ansible/pull/61)'
release_date: '2023-03-08'
I manually fixed the indent but since the changes
key is missing for those versions antsibull-changelog
fails to process the changelog.
antsibull-changelog generate -v
shell: /usr/bin/bash -e {0}
Traceback (most recent call last):
File "/home/runner/.local/lib/python3.10/site-packages/antsibull_changelog/cli.py", line 317, in run
return arguments.func(arguments)
File "/home/runner/.local/lib/python3.10/site-packages/antsibull_changelog/cli.py", line 699, in command_generate
changes = load_changes(config)
File "/home/runner/.local/lib/python3.10/site-packages/antsibull_changelog/changes.py", line 934, in load_changes
return ChangesData(config, path)
File "/home/runner/.local/lib/python3.10/site-packages/antsibull_changelog/changes.py", line 504, in __init__
self.load(data_override=data_override)
File "/home/runner/.local/lib/python3.10/site-packages/antsibull_changelog/changes.py", line 510, in load
super().load(data_override=data_override)
File "/home/runner/.local/lib/python3.10/site-packages/antsibull_changelog/changes.py", line 113, in load
self.data = sanitize_changes(load_yaml(self.path), config=self.config)
File "/home/runner/.local/lib/python3.10/site-packages/antsibull_changelog/yaml.py", line 33, in load_yaml
return yaml.load(stream, Loader=_SafeLoader)
File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 114, in load
return loader.get_single_data()
File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 49, in get_single_data
node = self.get_single_node()
File "yaml/_yaml.pyx", line 707, in yaml._yaml.CParser.get_single_node
File "yaml/_yaml.pyx", line 725, in yaml._yaml.CParser._compose_document
File "yaml/_yaml.pyx", line 776, in yaml._yaml.CParser._compose_node
File "yaml/_yaml.pyx", line 892, in yaml._yaml.CParser._compose_mapping_node
File "yaml/_yaml.pyx", line 905, in yaml._yaml.CParser._parse_next_event
yaml.parser.ParserError: while parsing a block mapping
in "/home/runner/work/ansible/ansible/changelogs/changelog.yaml", line 2, column 1
did not find expected key
in "/home/runner/work/ansible/ansible/changelogs/changelog.yaml", line 265, column 1
Here's the commit where the indent got screwed up: prometheus-community/ansible@e0697b4
Here's the commit where version 0.10.0 was added: prometheus-community/ansible@2fb25ec
The indenting issue has happened before: prometheus-community/ansible@766f0d7 but it got fixed on the next run, however the broken version sections is not something I've seen before.