103.0 - Sound of Freedom
103.0 - Sound of Freedom
The Avocado team is proud to present another release: Avocado 103.0,
AKA "Sound of Freedom", is now available!
Release documentation: http://avocado-framework.readthedocs.io/en/103.0/
Users/Test Writers
-
The remote spawner is a new optional plugin that makes use of remote
aexpect (https://github.com/avocado-framework/aexpect/) sessions
(to remote hosts or equivalently remote containers behind remote hosts
forwarded via specific ports) as slots to schedule test runs on. -
The format of test log messages have been reverted to more closely
match previous LTS (92.x) format like line number and Python module
name (see #5721). -
The
avocado-instrumented
runner used to have an internal timeout
of 24 hours that users might not have intended to use or respect.
This internal timeout has been removed and configuration such as
task.timeout.running
or--job-timeout
are the timeout users
should worry about (see #5394). -
The
json
result file now contains the actual start and end time
of tests in a format based on :func:time.time
(see
#5768). -
The
avocado jobs list
command now presents a sorted list of jobs
based on the modification of the results file (see a956ff0. -
If the status server is manually configured (that is,
--status-server-disable-auto
is set), and either the URI
(--status-server-uri
or the listen address is given
(--status-server-listen
) the other will automatically be set to
the same value for convenience (see
#5748). -
Python 3.12 is now formally supported (see
#5789). -
Resolvers can now choose to report a resolution result of type
:data:avocado.core.resolver.ReferenceResolutionResult.CORRUPT
, which
can be used when the reference seems to be accurate to the resolver in
question, but something is broken in the resolved entity (such as a
corrupt test file. See
#5710. -
When running
avocado-instrumented
tests with atimeout
defined, it's possible to set atimeout_factor
parameter that
will either extend or shorten the actual timeout for that execution
(see #5820).
Utility Modules
-
The :meth:
avocado.utils.ssh.Session.cmd
now supports setting a
timeout
for the command execution (see
#5775). -
The :mod:
avocado.utils.distro
module added specific detection for
CentOS Stream (see #5667). -
The :mod:
avocado.utils.distro
module improved detection for
Amazon Linux (see https://github.com/avocado-framework/avocado/issues/5668>.
Bug Fixes
-
The loader for
avocado-instrumented
tests could end up using the
wrong Python module if a module of the same name existed elsewhere
in the import path. Now, the actual path of the Python file
containing the test (given in themodulePath
parameter) is used
explicitly by the Python module importer (see
#5686). -
When :ref:
dependencies <managing-requirements>
are not fulfilled,
test results would be missing, instead of being clearly shown as
CANCEL
(see #5667). -
:func:
avocado.utils.path.init_dir
would raise
:class:FileExistsError
if the directory already existed, usually
causing crashes on its users (see#5746 <https://github.com/avocado-framework/avocado/pull/5746>
__). -
The :ref:
whiteboard <saving-test-generated-custom-data>
file was
being created with duplicate content because of the legacy runner
implementation, which is now removed (see#5770 <https://github.com/avocado-framework/avocado/issues/5770>
__). -
The
avocado jobs show
command now presents the correct time
tests have ended (see#5762 <https://github.com/avocado-framework/avocado/pull/5762/commits/b7ec30e69b2a51f97eb97ee445b12997366b5652>
__). -
The :func:
avocado.utils.download.url_open
function used to
misleadingly says that a URL had been retrieved at a stage where
only a response was obtained. It now presents an accurate message
(see#5742 <https://github.com/avocado-framework/avocado/issues/5742>
__). -
The Podman Spawner had a race condition where the state of the
container (and thus the task) would not take into account the
transition from "created" to "running" (see#5783 <https://github.com/avocado-framework/avocado/pull/5783>
__). -
Avocado has re-enabled
stdout
andstderr
files for
avocado-instrumented
files (see#5779 <https://github.com/avocado-framework/avocado/issues/5779>
__). -
The Spawner interface and implementations now properly checks if the
termination of a task was successful or not. The statemachine uses
that information to let users know of situations where a task could
not be terminated (see#5788 <https://github.com/avocado-framework/avocado/pull/5788>
__). -
The
tearDown()
ofavocado-instrumented
now gets called
properly if a test times out (see#5795 <https://github.com/avocado-framework/avocado/pull/5795>
__). -
The Process Spawner now properly handles a situation where, during
the termination of a task, the process itself finishes before the
spawner has the chance to do so (see#5805 <https://github.com/avocado-framework/avocado/pull/5805>
__). -
When interrupting
avocado-instrumented
tests, thetearDown()
will be called to allow for cleanups. If an error occurred during
the execution oftearDown()
the status of the test would change
toERROR
(instead of keeping its originalINTERRUPT
status
(see#5801 <https://github.com/avocado-framework/avocado/issues/5801>
__). -
The HTML result plugin was not properly filtering tests based on
their status (see#5828 <https://github.com/avocado-framework/avocado/issues/5828>
__). -
The
testlogs
plugin was not showing tests with all "not ok"
statuses and was showing test names instead of test IDs which are
unique in a suite (see#5827 <https://github.com/avocado-framework/avocado/issues/5827>
__).
Additional information
For more information, please check out the complete
Avocado changelog <https://github.com/avocado-framework/avocado/compare/102.0...103.0>
_.
For more information on the actual issues addressed, please check out
the milestone information <https://github.com/avocado-framework/avocado/milestone/29?closed=1>
_.
For more information on the release codename, please refer to IMDb <https://www.imdb.com/title/tt7599146>
_.