This is the first full release from the combined source tree.

The expected direction of the LAVA codebase is to add more devices and the work of device integration is and has always been difficult. Merging the codebase removes an unnecessary hurdle in integrating new devices and smoothes the process of ensuring that existing integrations are maintained by generating dispatcher test files directly from the server templates. (This has been a problem in previous releases - static device configuration files in lava_dispatcher unit tests hid problems arising from changes to the templates in lava_scheduler_app. The unit tests are now more representative of real test job processing.) As a validation framework, our own unit test and CI support is a key technical component.

lava_scheduler_app and lava_dispatcher modules will remain tightly integrated, using ZMQ to allow for physical separation. Combining the tree also makes it easier to update the documentation each time a new device is integrated.

The new lava-common binary package allows lava-server to be installed without needing lava-dispatcher - this will reduce the number of dependencies required on instances with multiple workers where there are no devices attached to the master. The default remains to install lava-dispatcher alongside lava-server - use the --no-install-recommends option, as per the updated documentation.

There are changes required in Debian for this release and those will take some time. See https://ftp-master.debian.org/new.html and https://ftp-master.debian.org/new/lava_2018.5-1.html (It is not necessary for every package in that queue to be processed before the LAVA upload is processed, some packages are held back for specific reasons.) Once the LAVA upload clears NEW, the old lava-dispatcher and lava-server source packages will be removed from Debian.

One key advantage of this change within Debian is that all lava packages will migrate together - this will prevent a recurrence of the recent problem when lava-dispatcher was delayed arriving in backports but lava-server was accepted, causing installation failures.

Both lava-server and lava-dispatcher binary packages depend on the same version of lava-common. When upgrading, lava-common should be added automatically. If not, use dist-upgrade or list the packages explicitly to let apt add the new package.

e.g.

$ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  lava-common
The following packages will be upgraded:
  lava-dev lava-dispatcher libprocps6 procps

Once lava-common is installed, if a master has no devices attached, admins can choose to remove lava-dispatcher and the extra dependencies can also be removed. *Check the list of packages to be removed on each instance* for packages required by other tools on the master, e.g. local admin scripts and similar.

$ sudo apt update
$ sudo apt upgrade

or to list packages explicitly:

# master with devices (may also have workers):
$ sudo apt update
$ sudo apt install lava-server lava-dispatcher

# or for workers:
$ sudo apt install lava-dispatcher

# or for master without devices:
$ sudo apt install lava-server
$ sudo apt remove lava-dispatcher
$ sudo apt-get --purge autoremove

lava changes
============

4a4bde2a1 LAVA-999 Export master and logger config
6f50e1145 LAVA-1315 add option to update existing users
ff8d9f882 Update device-types to match my lab config
809ae34ea Use InfrastructureError for uefi menu timeout
e52d83dc6 Stop the Overlay tests duplicating the base class
099f19599 LAVA-1310 separate the template unit tests
198283abb Drop Python2 xmlrpc support
13fa6bdef Fix support for scheduler.jobs.definition
a40fe8664 Fix query results export to CSV.
b18e74ca9 Create lava_common for Timeout and Exceptions
ece1a46d4 Generate device configuration from templates
e2d0f4b36 LAVA-1324 QEMU usage of KVM accelerator
59e0ab091 Extend timeouts in example test jobs
4269cc55a Merge branch 'master' into coordinator
7f49853f0 Complete fastboot sequence cannot be governed in device dictionary.
50d69d971 Update instructions for merged codebase
e2de099f4 LAVA-1316 Instant scheduling
edd48e0b1 signals: always add health_check field
1bbaec1e2 Allow to create health-check directly
e0cddeb5e Create admin log entries when looping
2489bcbc8 Add auto-login to fastboot sequence of hi6220 device types.
13a4b5923 Drop debug line to update pipeline_reference
da933a151 Add support for optionally running using pytest-3
51c81f659 Test decompression during download streams
3d2541d00 docker: always run with --rm
1cdd275aa Fix ResetDevice comment to match what it actually does.
db2775001 Allow to sleep after the usb serial appeared
391595bcc LAVA-1309 - pre-* commands should be called with minus-lxc
d524354f7 Add an helper to list all keys of an action namespace
9bfe50d84 Expand command lists in device dictionaries
0ff09a569 LAVA-1173 - allow for matching parents of nodes
3b5f47bf7 Make device_info validate errors unique
dad039adb Allow for multiple udev rules in a single file
80ca5346a LAVA-1203 - Allow multiple callback URLs in notify action
120181cb6 ci-run should stop on first error
bed5fcb20 Allow dispatcher unit tests to generate device config
a3cc054f3 Implementation of recovery mode deploy and boot
47b184796 Print the url when validating file:// download
8d1ffad00 dispatcher: raise a TestError for invalid regexp
fb39a9da8 Factorize compatiblity code
4511d4de6 monitor: log the start message
c18752652 Fix broken unit test
84769209a Exclude Retired devices from invalid_template check
534f1a9b8 LAVA-1300 - fail if static devices cannot be found
235f17d35 Add the end time to the Recent job errors table
e18d27c5a Update templates for changes from Harston lab
fa0d9125f Update second UART example jobs
600fc7b4e ci-run: Remove some of the unused args and clean it up for jenkins
36fee805b Revert "Remove unused and obsolete requirements.txt"
2e051cb6d Remove any generated top level init.py
2060d7851 LAVA-1298 fix references to old repositories
1978274d1 Treat kernel panics as a job failure
d920b7825 Remove unused and obsolete requirements.txt
ed9039e87 LAVA-1297 - Incorporate changes to run jobs without LXC
fabd4a44f Port to python3 and fix prospector warning
e98737c55 LAVA-1286 Raise JobError if 'params' is not a dict
5af7a7f74 compression: do not use shell=True
a4e1ac09b device-types: add meson-gxbb-nanopi-k2
2e84699d8 Port classes to python3 only
6a02322a1 device-types: add meson-gxl-s905x-libretech-cc
968873081 publisher: do not duplicate logs
05d119426 Send the wait-all role reply
80a912d7e Add a ./ci-run script
02a83fed4 Fix waitall with a role support
33644d89e Port to new daemon support with systemd service
a1d9f99e3 Explicitly allow wait-all to occur before send
8b2e3feb0 Add a status check script
a4cfb1b90 LAVA-489 Python3 support
1c570a0f8 add the gitreview file for lava-coordinator
210e4b7cf bump version


--

Neil Williams
=============
neil.williams@linaro.org
http://www.linux.codehelp.co.uk/