========== 89.0 Shrek ========== The Avocado team is proud to present another release: Avocado 89.0, AKA "Shrek", is now available! Release documentation: `Avocado 89.0 `_ Important Announcement ====================== The Avocado team is planning to switch the default runner, from the implementation most people currently use (internally simply called ``runner``), to the newer architecture and implementation called ``nrunner``. This may happen as soon as version 90.0 (the next release). **Users installing and relying on the latest Avocado release will be impacted by this change and should plan accordingly.** To keep using the current (soon to be legacy) runner, you **must** set the ``--test-runner=runner`` command line option (or the equivalent ``test_runner`` configuration option, under section ``[run]``). Known issues are being tracked on our GitHub project page, with the ``nrunner`` tag, and new issue reports are appreciated. .. tip:: To select the ``nrunner`` on this release (89.0 and earlier), run ``avocado run --test-runner=nrunner``. Users/Test Writers ================== * A new ``asset`` requirement type has been introduced, allowing users to declare any asset obtainable with :mod:`avocado.utils.asset` to be downloaded, cached and thus be available to tests. * ``--dry-run`` is now supported for the ``nrunner``. * The man page has been thoroughly updated and put in sync with the current ``avocado`` command features and options. * Avocado can now run from Python eggs. It's expected that official egg builds will be made available starting with Avocado 90.0. Avocado is planning to use eggs as an automatic and transparent deployment mechanism for environments such as containers and VMs. * The ``datadir.paths.logs_dir`` and ``datadir.paths.data_dir`` are set to more consistent and predictable values, and won't rely anymore on dynamic probes for "suitable" directories. Bug Fixes ========= * The ``nrunner`` now properly sets all test status status to the suite summary, making sure that errors are communicated to the end user through, among other means, the ``avocado`` execution exit code. * When running tests in parallel, multiple downloads of the same image (when using :mod:`avocado.utils.vmimage`) is now prevented by a better (early) locking. * A condition in which tests running in parallel could collide over the existence of the asset's cache directory (created by other running tests) is now fixed. Utility APIs ============ * :meth:`avocado.utils.software_manager.SoftwareManager.extract_from_package` is a new method that lets users extract the content of supported package types (currently ``RPM`` and ``deb``). * :meth:`avocado.utils.vmimage.get` is now deprecated in favor of :meth:`avocado.utils.vmimage.Image.from_parameters` Internal Changes ================ * :class:`avocado.core.plugin_interfaces.Discoverer` is a new type of plugin interface that has been introduced to allow tests to be discovered without the need of references. * Avocado now uses :func:`time.monotonic` pretty much everywhere it's possible. This time function will survive clock updates, and will never go back. * The safeloader, the Avocado component that looks for ``avocado-instrumented`` and ``python-unittest`` tests without executing possibly untrusted code, has seen a big refactor in this release, with an extended test coverage too. * The ``avocado-runner-requirement-package`` will now check for a package before installing it. This is an optimization and reduces the chance of multiple instances attempting to install packages at the same time. * Improvements to the handling and saving of messages generated by the ``nrunner``. * The ``nrunner`` received some prep work for supporting variants. Jobs using the ``nrunner`` can now see the variants being applied to test suites, but be aware that the parameters on variants are still not passed to the tests. * The requirement runnables now have access to their "parent" configuration. Misc Changes ============ * The documentation has been update and gives more precise instructions for the set up of development environments. * Major changes to the CI, in a trend towards using more GH Actions based jobs. For more information, please check out the complete `Avocado changelog `_.