Releases: avocado-framework/avocado
112.0
111.0
Release 111.0
110.0
Release 110.0
109.0
Release 109.0
108.0
Release 108.0
107.0
Release 107.0
106.0 - Taking Off
The Avocado team is proud to present another release: Avocado 106.0,
AKA "Taking Off", is now available!
Release documentation: Avocado 106.0
Users/Test Writers
-
The usage of Coverage.py (the de-facto Python tool for for test
coverage) with Avocado received a number of improvements such as
support forpython-unittesttests in addition to
avocado-instrumentedtests. -
When listing tests with
avocado -V list, the resolver that
handled the reference to test resolution is now shown. The reason
is that with the introduction of resolvers such as
runnable-recipeandrunnables-recipethe resolver may not be
the same as the test type. -
Job log files can now use a memory buffer to reduce I/O pressure
when there's much log activity. Users can set the
job.run.logging_buffer_sizewith the desired buffer size.
Utility Modules
-
avocado.utils.disk.get_io_scheduler_list: new utility
function that returns the I/O scheduler available for the I/O
device. -
avocado.utils.disk.get_io_scheduler: new utility function
that returns the I/O scheduler which is currently set for a device.
Bug Fixes
-
The resolver could fail to check file permissions on systems such as
macOS due to limitations inos.access. A more robust check
is now used based onos.stat. -
A hardcoded reference and check for the "nrunner" runner plugin was
removed. -
A regression that was adding the entire Avocado configuration to
every runnable was fixed. -
The suite configuration is now applied to all runnables at suite
creation time, instead of at just before the test execution time
with theavocado runcommand/plugin. -
The current configuration of a runnable is used to set its
identifier.
Additional information
For more information, please check out the complete
Avocado changelog.
For more information on the actual issues addressed, please check out
the milestone information.
For more information on the release codename, please refer to IMDb.
105.0 - Poor Things
The Avocado team is proud to present another release: Avocado 105.0,
AKA "Poor Things", is now available!
Release documentation: Avocado 105.0 <http://avocado-framework.readthedocs.io/en/105.0/>_
Users/Test Writers
-
A couple of new resolvers were introduced: one that can reads from
standardJSON"runnable recipe" files, and one that can read
from aJSONfile containing multiple occurrences of the
previously mentioned runnable recipes. This allows users to
"configure" inJSONwhat Avocado is going to resolve, and if
it's the case, run as a test. -
Users can now define common dependency for each test inside job or
with Job API inside suite. With this feature, it should be easier
to create jobs with tests which have common dependencies. -
More control over the environment variables in
exec-testwas
introduced. It's now possible to disable one environment variable or
clear the whole environment during the test runtime so it won't be
available to the underlying executable.
Utility Modules
-
:mod:
avocado.utils.cpu: added support for getting physical cores
fromlscpu -
:mod:
avocado.utils.git: added support for checking out submodules -
:mod:
avocado.utils.cpu: utility update for AMD x86_64 arch to
return family details, model number for x86_64 and Zen information -
:mod:
avocado.utils.disk: improved the exception handling -
:mod:
avocado.utils.astring: optimizedbitlist_to_string()using
bytearray
Bug Fixes
-
Runnables no longer ignore the configuration passed from recipes
-
Runnable (and Task) dependencies could deadlock and fail to complete
if they were duplicates. Duplicates are now removed before
attempting to fulfill them.
Internal Changes
-
Added a module boundary check for importing avocado plugins inside
avocado core. -
Some selftests had shebangs and
main()calls removed -
The
JSONbased runnable recipe now receives schema based
validation when the supporting library is available, or a simplified
check when it's not. -
The GitHub actions used on the various workflows were all updated to
the latest available versions. -
The code style is slightly changed with the update to black version 24.3.0
Additional information
For more information, please check out the complete
Avocado changelog <https://github.com/avocado-framework/avocado/compare/104.0...105.0>_.
For more information on the actual issues addressed, please check out
the milestone information <https://github.com/avocado-framework/avocado/milestone/31>_.
For more information on the release codename, please refer to IMDb <https://www.imdb.com/title/tt14230458/>_.
104.0 - Restore Point
The Avocado team is proud to present another release: Avocado 104.0,
AKA "Restore Point", is now available!
Release documentation: Avocado 104.0 <http://avocado-framework.readthedocs.io/en/104.0/>_
Users/Test Writers
-
The minimal Python version requirement now is 3.8. Python 3.7 and
earlier are not tested nor supported starting with this release. -
The result.json test attributes related to time has been renamed in version 104.0
to correspond tojob.result.testsin Job API. The Difference between new and old::time_start = start actual_time_start = actual_start time_end = end actual_time_end = actual_end time_elapsed = time -
The parsing of avocado configuration files has been improved to
show better error messages during parsing error. -
Unused and legacy
simpletest.*settings have been removed
from avocado as leftover of legacy runner.
Utility Modules
- :func:
avocado.utils.network.interfaces.NetworkInterface.get_device_IPI_name,
got a fix for "ERROR: 'CmdResult' object has no attribute 'decode'". - :func:
avocado.utils.data_structures.comma_separated_ranges_to_listhas been optimized. - :mod:
avocado.utils.podmangot a synchronous version of podman utilities.
Bug Fixes
- TaskStatusService got error handling for lost connection and
avocado-runner-*won’t crash any more when the status server socket is closed.
Internal Changes
- The
contrib/scripts/avocado-fetch-eggs.pygot an update for
egg handling related to post LTS changes. - Added CodeQL workflow for GitHub code scanning in Avocado repo.
- The
tmpfile.mktemphas been changed totmpdirbecause of security reasons. - CI: fix for testing of different OS images with egg and version tasks.
- Unused and legacy
runner queuehas been removed from :class:avocado.Test.
Additional information
For more information, please check out the complete
Avocado changelog <https://github.com/avocado-framework/avocado/compare/103.0...104.0>_.
For more information on the actual issues addressed, please check out
the milestone information <https://github.com/avocado-framework/avocado/milestone/30>_.
For more information on the release codename, please refer to IMDb <https://www.imdb.com/title/tt9362492/>_.
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-instrumentedrunner 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.runningor--job-timeoutare the timeout users
should worry about (see #5394). -
The
jsonresult file now contains the actual start and end time
of tests in a format based on :func:time.time(see
#5768). -
The
avocado jobs listcommand 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-autois set), and either the URI
(--status-server-urior 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-instrumentedtests with atimeout
defined, it's possible to set atimeout_factorparameter that
will either extend or shorten the actual timeout for that execution
(see #5820).
Utility Modules
-
The :meth:
avocado.utils.ssh.Session.cmdnow supports setting a
timeoutfor the command execution (see
#5775). -
The :mod:
avocado.utils.distromodule added specific detection for
CentOS Stream (see #5667). -
The :mod:
avocado.utils.distromodule improved detection for
Amazon Linux (see https://github.com/avocado-framework/avocado/issues/5668>.
Bug Fixes
-
The loader for
avocado-instrumentedtests 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 themodulePathparameter) 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_dirwould raise
:class:FileExistsErrorif 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 showcommand 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_openfunction 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
stdoutandstderrfiles for
avocado-instrumentedfiles (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-instrumentednow 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-instrumentedtests, 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 originalINTERRUPTstatus
(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
testlogsplugin 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>_.