=================
77.0 The Hangover
=================
The Avocado team is proud to present another release: Avocado 77.0,
AKA "The Hangover", is now available!
Release documentation: `Avocado 77.0
`_
Users/Test Writers
==================
* The :meth:`avocado.Test.fetch_asset
` method now has two new
parameters: ``find_only`` and ``cancel_on_missing``. These can be
combined to cancel tests if the asset is missing after a download
attempt (``find_only=False``) or only if it's present in the local
system without a download having been attempted during the test
(``find_only=True``). This can bring better determinism for tests
that would download sizable assets, and/or allow test jobs to be
executable in offline environments.
* The ``avocado-software-manager`` script, a frontend to the
:mod:`avocado.utils.software_manager` module, now produces output as
expected from a script.
* The ``multiplex`` command, an alias to ``variants``, has been
deprecated for a long time, and has now finally been removed.
Bug Fixes
=========
* When a dry-run is executed, by passing the ``--dry-run`` command
line option, the proper file name of the test will be shown, instead
of the file implementing the "fake" :class:`avocado.core.test.DryRun`
class.
* Users of :mod:`avocado.utils.ssh.Session` as a context manager, would
have all the exceptions captured and suppressed because of a buggy
``__exit__`` implementation.
Utility APIs
============
* The new :mod:`avocado.utils.pmem` module provides an interface for
manage persistent memory. It allows for creating, deleting,
enabling, disabling and re-configuring both namespaces and regions
depending on supported hardware. It wraps the features present on
the ``ndctl`` and ``daxctl`` binaries.
* The new :meth:`avocado.utils.ssh.Session.get_raw_ssh_commands` allows
access to the generated (local) commands, which could be used for advanced
use cases, such as running multiple (remote) commands in a test.
See the ``examples/apis/utils/ssh.py`` for an example.
* The :mod:`avocado.utils.network` module received a complete
overhaul, and provides features for getting, checking and setting
network information from local and even remote hosts.
* Better documentation for the :mod:`avocado.utils.ssh`,
:mod:`avocado.utils.cloudinit`, :mod:`avocado.utils.service` and
other modules.
Internal Changes
================
* The foundation of the :doc:`/blueprints/BP001` has been implemented,
in the form of the :mod:`avocado.core.future.settings` and by
adjusting pretty much all of Avocado's code to make use of it. In
the near future, this is going to replace :mod:`avocado.core.settings`.
* It's now easier to write a runner script that extends the types
of runnables supported by the N(ext) Runner. For an example, please
refer to ``examples/nrunner/runners/avocado-runner-foo``.
* Many more refactors on the :mod:`avocado.utils.asset` module.
For more information, please check out the complete
`Avocado changelog
`_.