Skip to content

Latest commit

 

History

History
1016 lines (672 loc) · 42.5 KB

CHANGELOG.rst

File metadata and controls

1016 lines (672 loc) · 42.5 KB

antsibull -- Ansible Build Scripts Release Notes

Topics

Feature and bugfix release.

  • Allow to update collection deprecations and removals (#640).
  • antsibull-build now depends on antsibull-core >= 3.4.0 (#640).
  • Fix link to changelogs for collections without changelog.yaml (#642).

Bugfix release.

  • Fix new-ansible subcommand so it will not wipe the newly added extra data from changelog.yaml files (#641).

Feature release.

  • Add a subcommand reformat-build-data which reformats the changelog.yaml file (#638).
  • Add changelog.yaml linting to lint-build-data (#638).
  • Adjust the changelog config so that changelog.yaml has a nicer order and nicer layout (#638).
  • Adjust to upcoming changes in antsibull-changelog by removing superfluous parameters (#635).
  • Allow to remove collection changelog entries from the Ansible changelog (#639).
  • Declare support for Python 3.13 (#637).
  • Now depends on antsibull-changelog >= 0.31.0 (#638).
  • Use Proxy configuration settings from the environment. Check out the aiohttp documentation on Proxy support for information on which environment variables are supported (#631).
  • Adjust the rebuild script included in Ansible releases to install antsibull-build instead of antsibull (#636).

Maintenance release due to rename of the repository and project from antsibull to antsibull-build.

  • The name of this project has been changed from antsibull to antsibull-build to reflect that it provides the antsibull-build command and disambiguate this project from the other antsibull projects. For backwards compatibility purposes, the antsibull project on PyPI has been converted to an empty stub package that requires antsibull-build, but users should immediately switch to the new name. The Git repository has also been moved to https://github.com/ansible-community/antsibull-build (#627, #629).

Feature release for the upcoming Ansible releases.

  • Add --end-of-life flag to the announcements subcommand to announce the last release of a major release train (#626).
  • Antsibull now depends on antsibull-docs-parser 1.x.y (#623).
  • Automatically generate collection deprecation and removal changelog fragments from collection-meta.yaml information (#623).
  • Prefer stderr for error messages during building Ansible and the logging facility for warnings in changelog-related code (#630).

Bugfix and feature release with breaking changes

  • Add dependency on antsibull-fileutils. Some functionality from antsibull-core is moving there, so we can use it from there directly (#619).
  • Add subcommand lint-build-data for linting build data in ansible-build-data (#617).
  • Remove the mention of mailing lists from the Ansible README (#613).
  • Antsibull now depends on antsibull-core >= 3.1.0 and pydantic >= 2.0.0 (#617, #620).
  • The announcements --send command no longer attempts to send mails to the mailing lists, which have been sunset (#613).
  • Add explicit dependency on PyYAML, since we directly use it (#619).
  • announcements - fix link to ansible-core changelog in the Ansible package release announcement template (#621).

Bugfix and feature release.

  • If you are using argcomplete, you can now tab-complete antsibull-build 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 (#611).
  • Fix bug when handling antsibull_build_reset was passed in as a string from CLI (#602).

Bugfix release.

  • Fix bug in --preserve-deps option handling (#602).

Feature release for improving the automatic release workflow.

  • The release role now has a antsibull_build_reset option, which defaults to the value of antsibull_data_reset, that allows to control whether .build files are reset during alpha and beta-1 releases (#601).

Feature release for improving the automatic release workflow.

  • Add option --preserve-deps to the prepare subcommand that allows to preserve the dependencies if a .deps file for that version already exists. The versions from that .deps file are validated against the build requirements and constraints, and the remainder of the release preparation process remains unchanged. The release role allows to pass this flag when antsibull_preserve_deps=true (#599).
  • Allow the release role to skip the prepare step by setting antsibull_skip_prepare=true if the .deps file already exists (#598).
  • The prepare subcommand will no longer overwrite an existing release summary in the changelog.yaml file (#597).
  • Use feature freeze for all betas from b2 on, and all release candidates in the release role (#598).
  • The release role no longer automatically skips the prepare step when the .deps file already exists. If you need this behavior, set antsibull_skip_prepare=true (#598).

Bugfix release.

  • The PyPI API model used during the release announcement generation has been updated to accept null for keywords, maintainer, and maintainer_email (#594).

Maintenance and bugfix release.

  • Add support for the antsibull-core v3 (#593).
  • announcements - add missing newline before heading in email template (#589).

Bugfix and feature release

  • Add a sanity-tests subcommand to run sanity tests accross the collection tree created by verify-upstreams and display the results (#556).
  • Add a verify-upstreams subcommand to ensure that files in a collections' Galaxy collection artifact match its upstream repository (#556).
  • Add new antsibull-build announcements command to generate release announcement text (#573).
  • Add new antsibull-build send-announcements command to interactively send release announcements. Make sure to install pyperclip with pip install antsibull[clipboard] to fully take advantage of its functionality (#573).
  • Add support for the latest antsibull-core v3 pre-release, 3.0.0a1 (#586).
  • Adjust the pip install antsibull call in the build-ansible.sh script added to the ansible source distribution to use the version of antsibull used to build the ansible release (#563).
  • Change the license from GPL-3.0-or-later to GPL-3.0-or-later AND Python-2.0.1. Antsibull now contains a small amount of code derived from CPython (#556).
  • Explicitly set up Galaxy context instead of relying on deprecated functionality from antsibull-core (#570).
  • The Ansible changelog is now generated both in MarkDown and ReStructuredText (#576).
  • The dependency on antsibull-changelog has been bumped to 0.24.0 or later (#576).
  • ansible package README - add a link to the ansible-build-data issue tracker (#554).
  • Use certain fields from library context instead of app context that are deprecated in the app context and are removed from antsibull-core 3.0.0 (#569).

Hottfix for the ansible 9.0.1 release to fix setup.cfg metadata

  • Use the correct directive in setup.cfg for Ansible 9+ for requiring a Python version, i.e. use python_requires instead of requires_python (#559).

Feature release for the upcoming Ansible 9.0.0rc1 release.

  • ansible python metadata - remove links specific to ansible-core and add links to the Ansible forum and the ansible-build-data repository (#558).
  • build-release role - add changed_when: false to validate-tags task (https://github.com/ansible-community/antsibulll/pull/557).
  • build-release role - add a test to ensure that Python files in the ansible package successfully compile (#552).
  • build-release role - directly install the wheel when running tests (#553).
  • Fix regression in validate-tags subcommand argument validation that caused a traceback (#51).

Feature release for the upcoming Ansible 9.0.0a1 release.

  • Support a constraints file that allows to fix dependencies for the new-ansible and prepare subcommands (#546).

This bugfix release fixes the retrieval of ansible-core Porting Guides.

  • Retrieve the ansible-core Porting Guide from the ansible-documentation repo. These files are being removed from the ansible-core repo (#540).

This release adds a couple new features and drops support for older ansible versions.

  • Antsibull now no longer depends directly on sh (#514).
  • Antsibull now uses sys.executable instead of the first 'python' in $PATH to call the PyPA build tool (#514).
  • Make dep_closure errors clearer by including the offending collection's version in the message (#531).
  • Move setuptools configuration into the declarative setup.cfg format for Ansible 9 and above. ansible sdists will still contain a setup.py file, but we recommend that users move to tools like pip and build and the PEP 517 interface instead of setuptools' deprecated setup.py interface (#530).
  • Now depends antsibull-core 2.0.0 or newer; antsibull-core 1.x.y is no longer supported (#514).
  • release playbook - run antsibull-build validate-tags-file to ensure that collections follow the Release Management section of the Collection Requirements (#518).
  • Remove code to build ansible versions < 6.0.0 from the setup.py template and elsewhere in the codebase. antsibull-build will error out if a user attempts to build an unsupported version (#477, #524).
  • Removed the deprecated multiple and collection subcommands (#522, #525).
  • Properly handle non-standard version ranges or version pins for feature freeze (#532, #533).

Hotfix release to fix compatibility with older setuptools versions

  • For setup.py generated for Ansible 8+, do not use recursive globs (**) as these are only supported since setuptools 62.3.0 (#520).

Maintenance release.

  • Remove now broken self-test from release role (#512).
  • Remove the parameters antsibull_ansible_git_repo, antsibull_ansible_git_version, and antsibull_ansible_git_dir from release role (#512).
  • Support for building ansible major versions less than 6 is deprecated and will be removed in an upcoming release (#515).

Release with new features, other improvements, a new build system, and a deprecation

  • 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 (#490).
  • Add a -I / --ignore and a --ignores-file flag to the antsibull-build validate-tags and antsibull-build validate-tags-file subcommands to ignore errors for certain collections (#491).
  • Make compatible with deprecations issued by newer setuptools releases (#433, #502).
  • Use the pypa build tool to build wheels and source distributions for ansible in an isolated environment. This replaces direct calls to python setup.py bdist_wheel and python setup.py sdist which are deprecated (#492).
  • The multiple and collection subcommands are deprecated and will be removed soon. They were never used to our knowledge except in the exploratory phase before the first Ansible 2.10 releases, have no test coverage, and might not even work at all. If you are actively using them and are interested in keeping them, please create an issue in the antsibull repository as soon as possible (#505).

New release with features, bugfixes, and breaking changes.

  • Drop support for Python 3.8 (#465).
  • Removed the antsibull-lint command line utility. It had no functionality anymore for some time now (#466).
  • Explicitly declare the sh dependency and limit it to before 2.0.0. Also explicitly declare the dependencies on packaging, semantic_version, aiofiles, aiohttp, and twiggy (#487).
  • Fix broken ansible-build-data repository link in ansible package README (#485).

Feature and bugfix release.

  • Add --tags-file option to the single, rebuild-single, and prepare subcommands. This allows including a collection git tags data file in ansible-build-data and the ansible sdist (#476).
  • Add pyproject.toml to ansible sdist to use the setuptools.build_meta PEP 517 backend. Tools that still call setup.py directly will work the same as they did before (#471).
  • Bump minimum antsibull-core requirement to 1.5.0. It contains changes that are needed for the new --tags-file option (#476).
  • There have been internal refactorings to simplify typing (#469).
  • Correct Python version classifiers in the ansible setup.py template. Limit the Python 3.8 classifer to ansible 5 and 6 and add the Python 3.11 classifier to ansible >= 7 (#479).
  • Do not crash when the changelogs/changelog.yaml file of a collection cannot be loaded (#481, #482).

Major feature and bugfix release with breaking changes.

  • Add a validate-tags subcommand to ensure that collection versions in an Ansible release are tagged in collections' respective git repositories (#456).
  • Make compatible with antsibull-core 2.x.y (#463).
  • Drops support for Python 3.6 an 3.7 (#458, #460).
  • The antsibull-docs dependency has been removed (#451).
  • The deprecated antsibull-lint subcommands have been removed. Use antsibull-changelog lint-changelog-yaml or antsibull-docs lint-collection-docs depending on your use-case (#451).
  • The deprecated build-collection subcommand of antsibull-build has been removed. Use collection instead (#451).
  • The deprecated build-multiple subcommand of antsibull-build has been removed. Use multiple instead (#451).
  • The deprecated build-single subcommand of antsibull-build has been removed. Use single instead (#451).
  • The deprecated new-acd subcommand of antsibull-build has been removed. Use new-ansible instead (#451).

Bugfix release. The next minor release will no longer support Python 3.6 and 3.7.

  • Add --collection-dir to the antsibull-build collection and build-collection subcommands. Previously, the --collection-dir option was added to the wrong CLI argument parser and not exposed to users. (#461).
  • Use compatibility code instead of trying to run asyncio.run directly, which will fail with Python 3.6 (#459).

Bugfix release.

  • Fix handling of Python dependency data when building changelogs and collections (#452).

Feature release for Ansible 7.

  • Now requires antsibull-core >= 1.3.0 (#449).
  • The python_requires information is now extracted from ansible-core and stored in the .build and .deps files instead of guessing it from the Ansible version (#449).

Feature and bugfix release.

  • Added galaxy requirements.yml file as build-release role depends on community.general collection (#432)
  • Define minimal Python requirement for Ansible X depending on X, under the assumption that ansible-core's Python requirement is increased by one version every two ansible-core major releases, and that every Ansible major release corresponds to an ansible-core major release from Ansible 5 on (#448).
  • The build-release role fails to execute when ./build/antsibull-build-data doesn't exist and when the antsibull_data_reset variable is set to false (#442).
  • When building Ansible 6.3.0 or newer, fail on collection dependency validations (ansible-community/community-topics#94, #440).
  • Adjust release role to work around a bug in the current beta version of ansible-core 2.14 (#447).
  • Fix typing errors in the multiple subcommand (#443).

Bugfix and feature release containing breaking changes in the release role.

  • Allow to copy the files used to create the source distribution and wheels to a new directory during antsibull-build rebuild-single (#435).
  • Perform minor refactoring of the build-release role, mostly concerning tasks/tests.yml. This reduces use of shell and set_fact, makes the role more robust, and replaces short names with FQCNs (#432).
  • Show warnings emitted by building the source distribution and/or wheels (#435).
  • The files in the source repository now follow the REUSE Specification. The only exceptions are changelog fragments in changelogs/fragments/ (#437).
  • The build-release role now depends on the community.general collection (#432).
  • Fix typo in generated MANIFEST.in to list the existing file README.rst instead of the non-existing file README (#435).
  • When preparing a new Ansible release, only use pre-releases for ansible-core when the Ansible release itself is an alpha pre-release. This encodes that the first beta release of a new major Ansible release coincides with the ansible-core GA (#436).

Bugfix and feature release containing some breaking changes in the release role.

  • In the release role, automatically set antsibull_build_file and antsibull_data_dir based on antsibull_ansible_version (#430).
  • The release role has now an argument spec (#430).
  • In the release role, antsibull_ansible_version and antsibull_ansible_git_version must now always be specified (#430).
  • When preparing a new Ansible release, bump the ansible-core version to the latest bugfix version (#430).

Feature release for Ansible 6.0.0rc1.

  • Include ansible-community CLI program with --version parameter from Ansible 6.0.0rc1 on (#429).

Feature and bugfix release with improvements for the release role, release building, and changelog generation.

  • Avoid including the complete condensed changelog of collections added to Ansible to that Ansible release's changelog and porting guide entries (#428).
  • The build-release role now also uses antsibull_data_reset to prevent regeneration of build-X.ansible for alpha and beta-1 releases (#422).
  • In the build-release role, when antsibull_force_rebuild is true, delete the existing python wheel in addition to the release tarball (#427).
  • Remove various empty lines from generated setup.py (#424, #425).
  • Use packaging.version instead of (indirectly) distutils.version to check whether the correct ansible-core version is installed (#426).

Bugfix release.

  • The build-release role now no longer ignores collection prereleases of collections for the alpha releases (#420).

New feature release with one breaking change to the build-release role.

  • Add antsibull-build subcommand validate-deps which validates dependencies for an ansible_collections tree (#416).
  • Check collection dependencies during antsibull-build rebuild-single and warn about errors (#416).
  • In the build-release role, stop shipping a separate roles/build-release/files/deps-to-galaxy.py script and use the new galaxy-requirements.yaml style file created during release preparation (#417).
  • Update Ansible's README.rst to focus on Ansible package details (#415).
  • When preparing a new Ansible release with antsibull-build prepare or antsibull-build single, create a galaxy-requirements.yaml style file next to the dependencies file (#417).
  • The build-release role no longer uses poetry to run antsibull, but assumes that antsibull is installed. To revert to the old behavior, set the Ansible variable antsibull_build_command to poetry run antsibull (#420).

Split up antsibull into multiple PyPi packages (antsibull-core, antsibull-docs, and antsibull). Note that upgrading is a bit more complicated due to the way pip works! See below for details.

  • The antsibull package now depends on antsibull-core and antsibull-docs, and most code was moved to these two packages. The antsibull-docs CLI tool is now part of the antsibull-docs package as well. The behavior of the new version should be identical to the previous version (#414).
  • The antsibull-lint command is deprecated. Use antsibull-changelog lint-changelog-yaml instead of antsibull-lint changelog-yaml, and use antsibull-docs lint-collection-docs instead of antsibull-lint collection-docs (#412, #410).
  • When upgrading from antsibull < 0.44.0 to antsibull 0.44.0+, it could happen that the antsibull-docs binary is removed due to how pip works. To make sure the antsibull-docs binary is present, either first uninstall (pip uninstall antsibull) before installing the latest antsibull version, or re-install antsibull-docs once the installation finished (pip install --force-reinstall antsibull-docs) (#414).

Feature release.

  • Add lint-collection-docs subcommand to antsibull-docs. It behaves identical to antsibull-lint collection-docs (#411, #410).
  • Support MANIFEST.json and not only galaxy.yml for antsibull-docs lint-collection-docs and antsibull-lint collection-docs (#411).
  • Prevent crashing when non-strings are found for certain pathnames for antsibull-docs lint-collection-docs and antsibull-lint collection-docs (#411).

Bugfix release.

  • antsibull-docs sphinx-init - the --fail-on-error option resulted in an invalid build.sh (#409).

Major feature release preparing for Ansible 6. Also adds support for the new collection links file, and improves the attributes tables.

  • Allow collections to specify extra links (#355).
  • Building Ansible 6+ now builds wheels next to the source tarball (#394).
  • From Ansible 6 on, improve setup.py to exclude unnecessary files in the Python distribution (#342).
  • Remove Ansible 2.9 / ansible-base 2.10 checks from setup.py for Ansible 6 so that we can finally ship wheels. This change is only active for Ansible 6 (#394).
  • Add a new docs parsing backend ansible-core-2.13, which supports ansible-core 2.13+ (#401).
  • Add an autodetection auto for the docs parsing backend to select the fastest supported backend. This is the new default (#401).
  • Add option --no-semantic-versioning to antsibull-lint changelog-yaml command (#405).
  • Change more references to ansible-base to ansible-core in the code (#398).
  • If the role is used to build a non-alpha or first beta version and the bulid file does not exist, it is created instead of later failing because it does not exist (#408).
  • Mention the ansible-core major version in the Ansible porting guide (#397).
  • Redo attributes table using the same structure as the options and return value table. This improves its look and adds a linking mechanism (#401).
  • Fix ansible-core version parsing for ansible-doc docs parsing backend (#401).
  • Fix filename of mentioned ansible-core porting guide in Ansible's porting guide introductionary comment (#398).
  • antsibull-docs will no longer traceback when it tries to process plugins not found in its own constant but are available in ansible-core (#404).

Feature and bugfix release.

  • Add --fail-on-error to all antsibull-docs subcommands for usage in CI (#393).
  • Allow to select a different Sphinx theme for antsibull-docs sphinx-init with the new --sphinx-theme option (#392).
  • Fully implement antsibull-docs collection. So far --current was required (#383).
  • Mention the plugin type more prominently in the documentation (#364).
  • Remove email addresses and (!UNKNOWN) from plugin and role author names (#389).
  • Support new keyword field in plugin documentations (#329).
  • The conf.py generated by antsibull-docs sphinx-init will be set to try resolving intersphinx references to Ansible's devel docs instead of a concrete Ansible version (#391).
  • If plugin parsing fails for antsibull-docs plugin, handle this more gracefully (#393).
  • Improve error message when plugin specified for antsibull-docs plugin cannot be found (#383).
  • When using --use-html-blobs, malformed HTML was generated for parameter aliases (#388).

Bugfix release.

  • Fix rsync call when antsibull-docs sphinx-init is used with --squash-hieararchy (#382).
  • Fix invalid HTML in return value RST tables. Closing </div> were missing for a wrapping <div> of every content cell, causing problems with some text-based browsers (https://github.com/ansible-community/antsibull/issues/386, #387).
  • Work around Python argparse bug by using vendored class for all Python versions until the bug is fixed in argparse. This makes --help work for all antsibull-docs subcommands (#384).

Bugfix release.

  • Fix bug in collection enum for docs generation, which caused role FQCNs to be mangled (#379).

Feature and bugfix release.

  • Responsive parameter and return value tables. Also use RST tables instead of HTML blobs (#335).
  • Add a changelog (#378).
  • Allow to specify collection_cache in config file (#375).
  • Allow to still use HTML blobs for parameter and return value tables. This can be controlled by a CLI option --use-html-blobs and by a global config option use_html_blobs (#360).
  • Avoid prereleases when creating the .build file in antsibull-build new-acd. The old behavior of including them can be obtained by passing the --allow-prereleases option (#298).
  • Change ansible-base references in documentation and code to ansible-core where it makes sense (#353).
  • During docs build, only write/copy files to the destination that have changed assuming they are not too large (#374).
  • Improve build-ansible.sh script integrated in the release tarball (#369).
  • Improve galaxy-requirements.yaml generation (#350).
  • Mention new options in the porting guide (#363).
  • Modify thread_max default value from 80 to 8 (#365, #370).
  • Move modules to beginning of plugin index (#336).
  • Remove unnecessary Python 2 boilerplates (#371).
  • Simplify ansible-core dependency in setup.py with compatibility operator (#346).
  • Split antsibull-build single subcommand into prepare and rebuild-single subcommand (#341).
  • Stop using deprecated Python standard library distutils.version (#372).
  • Various improvements to the build role (#338).
  • The antsibull-build single subcommand is deprecated. Use the prepare and rebuild-single subcommands instead (#341).
  • Fix rsync flags in build scripts generated by antsibull-docs sphinx-init to allow Sphinx to not rebuild unchanged files (#357).
  • Fix boolean logic error when --skip-indexes was used in antsibull-docs (#377).
  • Fix feature freeze handling after Beta 1 in build role (#337).
  • Require Python 3.8 for Ansible 5 (#345).
  • Fixes an incompatibility with antsibull-lint with Python 3.9.8.
  • Improves and extends the Ansible build role and its tests.
  • Fixes M(...) when used in HTML blobs.
  • Improve wait on HTTP retries.

Docs generation:

  • Improve boilerplate for ansible.builtin documentation
  • Render choices in return value documentation
  • Add alternating background colors to option and return value tables

Also improves the Ansible release playbook/role.

Avoid creating role documentation for roles without argument spec. Avoid naming collision with Ansible Sphinx config's rst_epilog contents.

Fix for attributes support: also allow new support value N/A.

Support CLI options for the ansible.builtin.ssh connection plugin, and support ansible-core 2.12 module/plugin attributes.

Initial release.