avocado-framework/avocado

View on GitHub
docs/source/releases/100_1.rst

Summary

Maintainability
Test Coverage
=============
100.1 The 100
=============

The Avocado team is proud to present another release: Avocado 100.1,
AKA "The 100", is now available!

This is a bug fix release, with just a minor number of changes since
release 100.0.

Release documentation: `Avocado 100.1
<http://avocado-framework.readthedocs.io/en/100.1/>`_

Changes on version 100.1
========================

* Podman spawner bug fix: use runner plugins instead of removed
  generic nrunner.  This is the issue that prompted this bug fix
  release, and it re-enables the Podman spawner functionality when
  using the default eggs provided by the Avocado project.

* Include Python 3.11 eggs builds during the release process.

* CI (GitHub Actions) fixes and versions bumps.

The following changes are from the 100.0 release notes.

Users/Test Writers
==================

* Asset cache checksum can now use multiple hash algorithms.  The
  ability to store multiple hashes, created by different algorithm to
  the cache ``CHECKSUM`` file was added.  This is useful when
  different tests refer to the same asset, but use different hash
  algorithms.

* Information on a test's file name was introduced in the xunit/junit
  result files.  Although not a standard field everywhere, this
  information is used and displayed on platforms such as GitLab.

* Python 3.11 (final) is now formally supported and tested on CI.

* The ``runner.output.utf8`` and ``core.input_encoding`` were settings
  were removed, and now default to the the system's setting (by using
  :func:`sys.getdefaultencoding()`.

* Command line options prefixed with ``--nrunner-`` had that prefixed
  removed.  A command line option such as ``--nrunner-spawner`` is now
  simply ``--spawner``.  The matching configuration options such as
  ``nrunner.something`` became ``run.something``.  This is due to the
  fact that nrunner is now the only runner implementation offered by
  default, so the differentiation and extra typing seems unnecessary.
  If other runners are added in the future (or by custom, out of tree,
  plugins) they can choose to respect the existing options if they
  apply.

* The ``avocado jobs get-output-files`` command was removed.  Its
  original intended purpose has not been relevant for some time, and
  the preservation of output files are already handled directly by all
  spawner implementations.

Utility Modules
===============

* :mod:`avocado.utils.process` received the changes necessary to cope
  with changes in :func:`signal.default_int_handler`.  It now passes
  all the given arguments along.

* :mod:`avocado.utils.software_manager` now allows DNF/YUM repository
  options to be customized.

Bug Fixes
=========

* Fixed a limit for ``exec-test`` and ``tap`` tests, where the
  ``STDOUT`` or ``STDERR`` buffers could be exhausted, and the test
  would get stuck forever on further writes.  The ``exec-test`` and
  ``tap`` runners can now make use of the (optional) ``output_dir``
  parameter, resulting in a much more efficient I/O handling.  When
  ``output_dir`` is used, the only limitation on ``STDOUT`` and
  ``STDERR`` is the file-system itself.

* The ``--show`` option was not being respected when running
  ``avocado-instrumented`` tests.  The log messages generated by, say,
  an ``avocado.test.foo`` logger, should be presented at the Avocado
  job UI as it happens, provided ``--show=avocado.test.foo`` was
  given.

* An existing aid for the usage of Avocado running from Python eggs
  would result in unnecessary changes to the ``PYTHONPATH``.  Those
  changes could cause unpredictable Python module import behavior.

* Fixed a condition in which, when failing to import Python modules on
  tests, the error message returned was ``Test.__init__() got an
  unexpected keyword argument 'run.results_dir'`` which was quite
  cryptic and confused users.

* The assets fetch plugin won't attempt to fetch and cache the assets
  of the same test more than once.

* Running tests' statuses are now properly marked as ``INTERRUPTED``
  instead of ``CANCEL`` when they reach their own (or the job)
  timeout.

* The ``avocado jobs show`` command used to show a simplified and
  possibly incorrect information about the spawner used.  This
  information is no longer displayed, given that it's a test suite
  attribute, and not really a job level information.

* The Podman spawner could fail to preserve the output directory when
  users on the host and the container did not match.  This has now
  been fixed.

Internal Changes
================

* The resolver received the same kind of test coverage as the legacy
  loader architecture, in preparation for the removal of the loader.

* The Fedora version used on selftests related to the Podman spawner
  were pinned to 36.  The reason is that, because of the release of
  Fedora 37, which has Python 3.11, no ``setuptools`` or Avocado eggs
  are available for Python 3.11 yet.

* Removal of the generic ``avocado-runner`` runner, which is a
  reminiscent of the all-in-one ``nrunner.py`` file, for ease of
  deployment. With the nrunner split and now deployed via Python eggs,
  it does not have to exist anymore.

* Selftests will no longer not store temporary results in user's
  default results directory.

---

For more information, please check out the complete
`Avocado changelog
<https://github.com/avocado-framework/avocado/compare/99.0...100.1>`_.