Skip to content

Latest commit

 

History

History
518 lines (339 loc) · 20.5 KB

CHANGELOG.rst

File metadata and controls

518 lines (339 loc) · 20.5 KB

Ansible Changelog Tool Release Notes

Bugfix release for ansible-core.

  • Fix namespace extraction for ansible-core modules (#184, #185).

Feature release.

  • Add --strict parameter to the lint-changelog-yaml subcommand to also check for extra fields that should not be there (#182).
  • Declare support for Python 3.13 (#180).
  • Python API: allow to extract extra data when loading changelog files, and allow to insert extra data when saving (#181).
  • Python API: allow to preprocess changelog.yaml before linting (#181).
  • More internal code related to the old changelog format has been removed. This only potentially affects other projects which consume antsibull-changelog as a library. The sister antsibull projects antsibull-build and antsibull-docs might only be affected in older versions. Users of the antsibull-changelog CLI tool are not affected by this change (#179).

Feature release.

  • Allow to configure the used VCS in changelogs/config.yml. Valid choices are none (default), git, or auto. If set to git, or auto detects that the project is part of a Git repository, only non-ignored files will be copied to a temporary directory when trying to load information on Ansible modules, plugins and roles (#172, #175).
  • Antsibull-changelog now depends on the new package antsibull-docutils. This should not have any visible impact, expect potentially improved MarkDown output (#174).
  • Antsibull-changelog now depends on the new project antsibull-fileutils (#176).
  • If you are using argcomplete global completion, you can now tab-complete antsibull-changelog command lines. See Activating global completion in the argcomplete README for how to enable tab completion globally. This will also tab-complete Ansible commands such as ansible-playbook and ansible-test (#173).

Feature release.

  • Add a reformat command that reformats changelogs/changelog.yaml to the current settings of changelogs/config.yaml (#169).
  • Adds a new configuration option changelog_sort. This option allows sorting of changelog entries in changelogs/changelog.yaml (#165).
  • Replaces numbers with constants for return codes (#77).
  • Removes support for the deprecated classic changelog format. changes_format must now be present and set to combined for ansible-core usage, and the value classic is no longer allowed (#137).
  • Remove Python version check that was checking for Python >= 3.6 (instead of >= 3.9). This check is not really necessary since pyproject.toml declares requires-python, and old enough Python versions where pip does not know about requires-python will not load antsibull-changelog due to syntax errors anyway (#167).

Feature release.

  • There is now an option changelog_nice_yaml to prepend the YAML document start marker --- to the header of the changelogs/changelog.yaml file, and to increases indentation level on list items. This makes the file pass ansible-lint (#91, #152, #160).

Feature release.

  • Adds period where needed at end of new plugin short descriptions. Controlled by the add_plugin_period option in the config file (#87, #162).

Feature release.

Bugfix and feature release.

  • Add --version flag to print package version and exit (#147).
  • When multiple output formats are defined and antsibull-changelog generate is used with both --output and --output-format, an error was displayed that --output-format must be specified (#149, #151).

Feature release which now allows to output MarkDown.

  • Allow automatically retrieving package version for hatch projects with the hatch version command (#141).
  • Allow to render changelogs as MarkDown. The output formats written can be controlled with the output_formats option in the config file (#139).
  • Officially support Python 3.12 (#134).
  • Some code in antsibull_changelog.changelog_entry has been deprecated, and the antsibull_changelog.rst module has been deprecated completely. If you use them in your own code, please take a look at the PR deprecating them for information on how to stop using them (#139).

Feature release.

  • Allow to generate changelog for a specific version (#130).
  • Allow to generate only the last entry without preamble with the generate command (#131).
  • Allow to write generate output to a user-provided file (#131).

New feature release

  • Add antsibull-changelog-lint and antsibull-changelog-lint-changelog-yaml pre-commit.com hooks (#125).
  • Add toml extra to pull in a toml parser to use to guess the version based on pyproject.toml (#126).

Maintenance release with a deprecation.

  • Support for classic changelogs is deprecated and will be removed soon. If you need to build changelogs for Ansible 2.9 or before, please use an older version (#123).

Bugfix and maintenance release using a new build system.

  • Change pyproject build backend from poetry-core to hatchling. pip install antsibull works exactly the same as before, but some users may be affected depending on how they build/install the project (#109).
  • When releasing ansible-core and only one of --version and --codename is supplied, error out instead of ignoring the supplied value (#104, #105).

Feature release.

  • Allow to extract other project versions for JavaScript / TypeScript projects from package.json (#100).
  • Allow to extract other project versions for Python projects from PEP 621 conformant pyproject.toml (#100).
  • Support Python 3.11's tomllib to load pyproject.toml (#101, #102).
  • Use more specific exceptions than Exception for some cases in internal code (#103).

Maintenance release that drops support for older Python versions.

  • Drop support for Python 3.6, 3.7, and 3.8 (#93).

Feature release for ansible-core.

  • Only allow a trival section in the ansible-core/ansible-base changelog when explicitly configured (#90).

Feature and bugfix release.

  • Allow to extract other project versions for Python poetry projects from pyproject.toml (#80).
  • The files in the source repository now follow the REUSE Specification. The only exceptions are changelog fragments in changelogs/fragments/ (#82).
  • Mark rstcheck 4.x and 5.x as compatible. Support rstcheck 6.x as well (#81).

Feature release.

Feature release that will speed up the release process with ansible-core 2.13.

  • The internal changelog.yaml linting API allows to use packaging.version.Version for version numbers instead of semantic versioning (#73).
  • Use the new --metadata-dump option for ansible-core 2.13+ to quickly dump and extract all module/plugin version_added values for the collection (#72).

This release makes changelog building more reliable.

  • Always lint fragments before releasing (#65, #67).
  • Fix issues with module namespaces when symlinks appear in the path to the temp directory (#68, #69).
  • Stop mentioning galaxy.yaml instead of galaxy.yml in some error messages (#66).

New feature release which supports other projects than ansible-core and Ansible collections.

  • Support changelogs for other projects than ansible-core/-base and Ansible collections (#60).
  • Fix prerelease collapsing when use_semantic_versioning is set to true for ansible-core.
  • When using ansible-core 2.11 or newer, will now detect new roles with argument spec. We only consider the main entrypoint of roles.
  • When subdirectories of modules are used in ansible-base/ansible-core, the wrong module name was passed to ansible-doc when --use-ansible-doc was not used.
  • The new --cummulative-release option for antsibull-changelog release allows to add all plugins and objects to a release since whose version_added is later than the previous release version (or ancestor if there was no previous release), and at latest the current release version. This is needed for major releases of community.general and similarly organized collections.
  • Will now print a warning when a release is made where the no prelude_section_name section (default: release_summary) appears.
  • Make sure that the plugin caching inside ansible-base/-core works without --use-ansible-doc.
  • Add support for reporting new playbooks and roles in collections.

  • Add support for special changelog fragment sections which add new plugins and/or objects to the changelog for this version. This is mainly useful for test and filter plugins, and for playbook and role objects, which are not yet automatically detected and mentioned in changelogs/changelog.yaml or the generated RST changelog.

    The format of these sections and their content is as follows:

    ---
    add plugin.filter:
      - name: to_time_unit
        description: Converts a time expression to a given unit
      - name: to_seconds
        description: Converts a time expression to seconds
    add object.role:
      - name: nginx
        description: The most awesome nginx installation role ever
    add object.playbook:
      - name: wipe_server
        description: Totally wipes a server
    

    For every entry, a list of plugins (section add plugin.xxx) or objects (section add object.xxx) of the given type (filter, test for plugins, playbook, role for objects) will be added. Every plugin or object has a short name as well as a short description. These fields correspond to the module/plugin name and the short_description field of the DOCUMENTATION block of modules and documentable plugins.

  • Add --update-existing option for antsibull-changelog release, which allows to update the current release's release date and (if relevant) codename instead of simply reporting that the release already exists.
  • The new option prevent_known_fragments with default value being the value of keep_fragments allows to control whether fragments with names that already appeared in the past are ignored or not. The new behavior happens if keep_fragments=false, and is less surprising to users (see #46). Changelogs with keep_fragments=true, like the ansible-base/ansible-core changelog, are not affected.
  • Fixed error on generating changelogs when using the trivial section.
  • Allow to not save a changelog on release when using API.
  • Allow to sanitize changelog data on load/save. This means that unknown information will be removed, and bad information will be stripped. This will be enabled in newly created changelog configs, but is disabled for backwards compatibility.
  • A new config option, ignore_other_fragment_extensions allows for configuring whether only .yaml and .yml files are used (as mandated by the ansible-test sanity --test changelog test). The default value for existing configurations is false, and for new configurations true.
  • Allow to use semantic versioning also for Ansible-base with the use_semantic_versioning configuration setting.
  • Refactoring changelog generation code to provide all preludes (release summaries) in changelog entries, and provide generic functionality to extract a grouped list of versions. These changes are mainly for the antsibull project.
  • New changelog configurations place the CHANGELOG.rst file by default in the top-level directory, and not in changelogs/.
  • The config option archive_path_template allows to move fragments into an archive directory when keep_fragments is set to false.
  • The option use_fqcn (set to true in new configurations) allows to use FQCN for new plugins and modules.
  • The internal changelog generator code got more flexible to help antsibull generate Ansible porting guides.
  • Allow to enable or disable flatmapping via config.yaml.
  • Fix bad module namespace detection when collection was symlinked into Ansible's collection search path. This also allows to add releases to collections which are not installed in a way that Ansible finds them.
  • Do not fail when changelogs/fragments does not exist. Simply assume there are no fragments in that case.
  • Improve behavior when changelogs/config.yaml is not a dictionary, or does not contain sections.
  • Improve error message when --is-collection is specified and changelogs/config.yaml cannot be found, or when the lint subcommand is used.
  • Allow to pass path to ansible-doc binary via --ansible-doc-bin.
  • Changelog generator can be ran via python -m antsibull_changelog.
  • Use ansible-doc instead of /path/to/checkout/bin/ansible-doc when being run in ansible-base checkouts.
  • Allow to enumerate plugins/modules with ansible-doc by specifying --use-ansible-doc.
  • Added more testing.
  • Fix internal API for ACD changelog generation (pruning and concatenation of changelogs).
  • Improve error handling.
  • Improve reStructuredText creation when new modules with and without namespace exist at the same time.
  • Title generation improved (remove superfluous space).
  • Use PyYAML C loader/dumper if available.
  • lint subcommand no longer requires specification whether it is run inside a collection or not (if usual indicators are absent).

Initial release as antsibull-changelog. The Ansible Changelog Tool has originally been developed by @mattclay in the ansible/ansible repository for Ansible itself. It has been extended in felixfontein/ansible-changelog and ansible-community/antsibull to work with collections, until it was moved to its current location ansible-community/antsibull-changelog.