Autotest 0.14.0 released!

Autotest 0.14.0 is a new major release of autotest! The goal here is to
provide the latest advances on autotest while providing a stable ground
for groups and organizations looking for autotest, such as distro
packagers and newcomers.

For the impatient

Download autotest here


Or pick the tarballs automatically generated by github here:



API cleanup

Autotest 0.14.0 brings major new API changes over the previous 0.13.X series.
For a long time, we wanted to clean up the API namespace of unneeded _lib
prefixes to the autotest libraries. The main changes made were:

* No more autotest/client/bin dir, so no more autotest_lib.client.bin namespace.
Now all the main libs and entry points are at the top level client.
* API: autotest_lib -> autotest
* API: autotest.client.common_lib -> autotest.client.shared

As an example, here’s how the imports on client/bin/job.py used to be on pre-0.14:

from autotest_lib.client.bin import client_logging_config
from autotest_lib.client.bin import utils, parallel, kernel, xen
from autotest_lib.client.bin import profilers, boottool, harness
from autotest_lib.client.bin import config, sysinfo, test, local_host
from autotest_lib.client.bin import partition as partition_lib
from autotest_lib.client.common_lib import base_job
from autotest_lib.client.common_lib import error, barrier, log, logging_manager
from autotest_lib.client.common_lib import base_packages, packages
from autotest_lib.client.common_lib import global_config
from autotest_lib.client.tools import html_report

And that’s how it looks on 0.14.0:

from autotest.client import client_logging_config
from autotest.client import utils, parallel, kernel, xen
from autotest.client import profilers, boottool, harness
from autotest.client import config, sysinfo, test, local_host
from autotest.client import partition as partition_lib
from autotest.client.shared import base_job
from autotest.client.shared import error, barrier, log, logging_manager
from autotest.client.shared import base_packages, packages
from autotest.client.shared import global_config
from autotest.client.tools import html_report

The conversion should be mostly automatic for most users.

Entry names change

In order to ease discoverability on a system wide install, some widely used
entry point names changed names. By entry point, we mean the autotest high
level utility programs. Check out the name changes:

1. client/bin/autotest -> client/autotest-local
2. server/autoserv -> server/autotest-remote
3. cli/atest -> cli/autotest-rpc-client
4. scheduler/monitor_db.py -> scheduler/autotest-scheduler
5. scheduler/monitor_db_babysitter.py -> scheduler/autotest-scheduler-watcher


Autotest used a perl based tool to manage bootloader entries, but the
tool did not support grub2. So when Fedora started to use grub2, we took
the opportunity to rewrite the whole thing and ditch the perl based boot
tool. As a side effect, now it supports installing kernels on newer
Ubuntu too (and well, Opensuse and what else). It is based on the open source
project grubby, the tool used by anaconda and therefore, Fedora and RHEL distros
to manipulate boot entries.

Git history rewrite

The git repo history was rewritten to properly follow git authorship
conventions. This effort reveals over 200 unique authors that did contribute
to autotest during the last 6 years. May we have many years more with an active
and healthy development community!

What’s next?

With the series of cleanups and improvements, here are the next steps:

– Port of the rpc server application to Django 1.4
– Documentation improvements and API documentation generation.
– Further cobbler-autotest integration
– Separation of tests and core autotest code
– Make the autotest test runner to be smarter, more tight in terms of output

You can also help, please join the mailing lists and happy hacking!