Skip to content

2.0.0

Compare
Choose a tag to compare
@gotmax23 gotmax23 released this 03 May 20:55
· 98 commits to main since this release
2.0.0
09c05b2

Release Summary

New major release

Minor Changes

  • Add async_log_run() and log_run() methods to antsibull_core.venv.VenvRunner and antsibull_core.venv.FakeVenvRunner. These should be used instead of get_command() (#50).
  • Add a store_yaml_stream function to antsibull_core.yaml to dump YAML to an IO stream (#24).
  • Add a new antsibull_core.subprocess_util module to help run subprocesses output and log their output (#40).
  • Allow Galaxy client to communicate with the Galaxy v3 API (#45).
  • Allow the Galaxy downloader to trust its collection cache to avoid having to query the Galaxy server if an artifact exists in the cache. This can be set with the new configuration file option trust_collection_cache (#78).
  • Allow to cache ansible-core download artifacts with a new config file option ansible_core_cache (#80).
  • Allow to fully trust the ansible-core artifacts cache to avoid querying PyPI with a new config file option trust_ansible_core_cache (#80).
  • Allow to skip content check when doing async file copying using antsibull_core.utils.io.copy_file() (#78).
  • Avoid using the collection artifact filename returned by the Galaxy server. Instead compose it in a uniform way (#78).
  • Replace internal usage of sh with the antsibull.subprocess_util module (#51).
  • The fields ansible_core_repo_url, galaxy_url, and pypi_url have been added to the library context. If ansible_core_repo_url is not provided, it will be populated from the field ansible_base_url if that has been provided (#81).
  • Use the pypa build tool instead of directly calling setup.py which is deprecated (#51).

Breaking Changes / Porting Guide

  • Remove breadcrumbs, indexes, and use_html_blobs from global antsibull config handling. These options are only used by antsibull-docs, which already validates them itself (#54).
  • Support for Python 3.6, 3.7, and 3.8 has been dropped. antsibull-core 2.x.y needs Python 3.9 or newer. If you need to use Python 3.6 to 3.8, please use antsibull-core 1.x.y (#16).
  • The install_package() method of antsibull_core.venv.VenvRunner now returns a subprocess.CompletedProcess object instead of an sh.RunningCommand. The rest of the function signature remains the same. Most callers should not need to access the output to begin with (#50).

Deprecated Features

  • Deprecate the get_command() methods of antsibull_core.venv.VenvRunner` and antsibull_core.venv.FakeVenvRunner. These methods will be removed in antsibull-core 3.0.0. Use the new log_run()andasync_run()`` methods instead (#50).
  • The antsibull_core.compat module deprecates the metadata module. Use importlib.metadata instead, which is available from Python 3.8 on (#16).
  • The antsibull_core.compat module deprecates the functions asyncio_run, best_get_loop, and create_task. Replace asyncio_run with asyncio.run, create_task with asyncio.create_task, and best_get_loop with asyncio.get_running_loop (#16).
  • The doc_parsing_backend option from the library context is deprecated and will be removed in antsibull-core 3.0.0. Applications that need it, such as antsibull-docs, must ensure they allow and validate this option themselves (#59).
  • The fields ansible_base_url, galaxy_url, and pypi_url of the app context have been deprecated. Use the fields ansible_core_repo_url, galaxy_url, and pypi_url, respectively, of the library context instead (#81).

Removed Features (previously deprecated)

  • The unused antsibull_core.schemas.config.ConfigModel model and the unused antsibull_core.config.read_config function have been removed (#82).

Bugfixes

  • Fix a bug in Galaxy download code when the filename is found in the cache, but the checksum does not match. In that case, the collection was not copied to the destination, and the code did not try to download the correct file (#76).
  • Remove improper usage of @functools.cache on async functions in the antsibull_core.ansible_core module (#67).
  • Restrict the pydantic dependency to major version 1 (#35).
  • Restrict the sh dependency to versions before 2.0.0 (#31).