Advance notice of some changes coming in 2018.7

{% set device_type = 'foo' %} is going away
===========================================

The purpose of any item in the device dictionary or device-type template is to provide information to lava-run to operate the test job. As far as lava-run is concerned, the device_type is completely meaningless. Device type is a database object, a component of scheduling and administration.

So in 2018.7, all device-type Jinja2 templates have been updated to move this to a comment and the schema has been updated to remove the device_type field.

If you have local Jinja2 templates which use {% set device_type = 'foo' %}, this needs to be changed to:

{# device_type = 'foo' #}

or if your template uses:

device_type: foo

This needs to be removed or commented out:

# device_type: foo

Any mention of device-type in a device dictionary will be ignored.

This also means that deploying 2018.7 will involve changes to most upstream device-type templates. If you use an admin tool like salt, ansible, puppet etc. then it is worth making this change ahead of time. In the Harston lab, we create a code review against the git repo containing the device-type templates. When the admin is ready to upgrade a particular instance, the changes from the review are applied before the package upgrade is started. This prevents dpkg interrrupting the upgrade with prompts about changed configuration files whilst keeping the device-type templates under version control.

Database configuration is now upstream
======================================

Previous releases have relied on the Debian packaging to do the work of setting up the PostgresQL database and managing database migrations during installation when a database already exists.

We took this upstream so that we could manage the process in Python instead of shell, partly because the psql commands require some complex quoting which is very difficult to read and understand in shell. The other advantage is to have more eyes on the database setup code and to have formal code review of changes. In due course, it may also be helpful with the use of LAVA with docker.

Availability
============

2018.7 is likely to be available on or after 24th July 2018. At that point, Debian will still be handling the migration to Python3.7 which has caused issues in a range of Python packages with new keywords.

https://tracker.debian.org/pkg/lava

On request, we will not be uploading 2018.7 directly to Debian unstable until this transition is complete. As far as we can tell at the moment, there are no changes required within the LAVA codebase but there are a lot of Python dependencies which are yet to be fixed. This will also delay the arrival of 2018.7 into buster and stretch-backports in Debian.

2018.7 will be available from the LAVA repositories on images.validation.linaro.org once the release is ready. I'll make a separate announcement with the full list of changes at that time.

--

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