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
https://github.com/autotest/autotest/downloads
Or pick the tarballs automatically generated by github here:
https://github.com/autotest/autotest/tarball/0.14.0
Changes
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
Boottool
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!