-
Notifications
You must be signed in to change notification settings - Fork 0
Release0.14 0
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.
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.
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:
- client/bin/autotest -> client/autotest-local
- server/autoserv -> server/autotest-remote
- cli/atest -> cli/autotest-rpc-client
- scheduler/monitor_db.py -> scheduler/autotest-scheduler
- 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.
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!
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!