Skip to content

Releases: avocado-framework/avocado

112.0

24 Sep 11:44

Choose a tag to compare

Release 112.0

111.0

19 May 12:28

Choose a tag to compare

Release 111.0

110.0

27 Mar 09:34

Choose a tag to compare

Release 110.0

109.0

14 Jan 13:26

Choose a tag to compare

Release 109.0

108.0

07 Oct 12:59

Choose a tag to compare

Release 108.0

107.0

02 Sep 08:22

Choose a tag to compare

Release 107.0

106.0 - Taking Off

29 Jun 02:00

Choose a tag to compare

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 for python-unittest tests in addition to
    avocado-instrumented tests.

  • 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-recipe and runnables-recipe the 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_size with 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 in os.access. A more robust check
    is now used based on os.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 the avocado run command/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

07 May 18:41

Choose a tag to compare

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
    standard JSON "runnable recipe" files, and one that can read
    from a JSON file containing multiple occurrences of the
    previously mentioned runnable recipes. This allows users to
    "configure" in JSON what 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-test was
    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
    from lscpu

  • :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: optimized bitlist_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 JSON based 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

19 Mar 14:02

Choose a tag to compare

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 to job.result.tests in 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_list has been optimized.
  • :mod:avocado.utils.podman got 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.py got an update for
    egg handling related to post LTS changes.
  • Added CodeQL workflow for GitHub code scanning in Avocado repo.
  • The tmpfile.mktemp has been changed to tmpdir because of security reasons.
  • CI: fix for testing of different OS images with egg and version tasks.
  • Unused and legacy runner queue has 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

06 Jan 01:39

Choose a tag to compare

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 a timeout
    defined, it's possible to set a timeout_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 the modulePath 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 and stderr 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() of avocado-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, the tearDown()
    will be called to allow for cleanups. If an error occurred during
    the execution of tearDown() the status of the test would change
    to ERROR (instead of keeping its original INTERRUPT 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>_.