Python3 =======
2018.2 is built with Python2 and Python3 support but only Python2 remains is available for runtime (until Jessie support is removed). This results in the built packages for Debian unstable and stretch-backports now bringing in Python3 versions of the existing Python2 packages like python3-django. The unit tests are routinely run using Python2 and Python3.
The packages available from the LAVA repositories reflect the same: jessie-backports 2018.2-1+jessie - Python2 only stretch-backports 2018.2-1+stretch - Python2 and Python3, using Python2 at runtime.
Bootloader support changes ==========================
25859894 Better detect errors in the bootloader - this adds support to distinguish between a bootloader failure and a kernel failure to detect problems when the bootloader tries to start the kernel. This has an important effect on how some test jobs run - see Quiet Kernels below. The parallel change (7a2b3a68 Change the flow of bootloader commands so they are executed individually) supports detecting failures to download artifacts as distinct from failures to execute once downloaded.
Bootloader action optimisations ===============================
To support the better error detection, several bootloader actions have been optimised. This means that different actions may be used, changing the names you may be using for timeouts. e.g. https://staging.validation.linaro.org/scheduler/job/209814/definition#deflin... The timeout name was u-boot-interrupt - now it is bootloader-interrupt. The UI shows you which actions have been assembled into the pipeline.
e.g.: bootloader-interrupt: Wait for prompt Hit any key to stop autoboot (timeout 00:02:00)
Quiet Kernels =============
The bootloader support changes wait for an indication that the bootloader has completed and that the kernel has started, by watching for a kernel_start_message. If your kernel is configured to be quiet, then each test job using that kernel *must* clear the kernel_start_message:
context: kernel_start_message: ''
In most cases, the test job should not use 'quiet' as this hides important debugging information from the kernel boot process.
LXC mocker ==========
lava-dispatcher now builds a second binary package which is intended to support the use of Docker without needing to change the test job submission which did not use Docker. e.g. submissions to LKFT use LXC and there are issues trying to use LXC inside Docker. To make it simpler to reproduce test jobs when debugging regressions, the lava-lxc-mocker can be installed in Docker instead of lxc. Commands which would then have been run in the LXC will instead be executed inside Docker directly.
CAUTION: do not install lava-lxc-mocker *except* inside other containerisation like Docker. When using lava-lxc-mocker, create a dedicated Docker image which handles only one DUT so that tools like fastboot and adb which are constrained inside the LXC do not interfere with other test jobs and devices.
If you have been using the developer build scripts and you are using 'sudo debi' then you will need to change to using 'sudo dpkg -i' and listing the lava-dispatcher package instead of the .changes file.
Release cadence ===============
Now that the roadmap to remove V1 is complete, the need for monthly releases has diminished. As part of a range of other plans aimed at making LAVA more flexible, the monthly release cadence has been dropped. We are looking at a range of options, including wider functional testing of the master branch, to support releases on a rough 3 month cadence but without the added pressure of expected release dates. This will become a lot easier once support for Jessie is dropped and the build matrix becomes simpler.
Changes in this release:
lava-server ===========
9ef41db7 Fix missing failure comment 206e5c65 manage jobs: allow to force fail a job 42a3bc31 Save TestCases even when metadata is too large 5efb92c7 lava-logs: look for lava.job results in all cases 19937074 Use the named urls instead of static urls e60afcbc Ensure uboot_extra_error_message is usable 843a49ed Use reverse() instead of a static url 7583bb09 device-types: add meson-gxbb-p200 40cbffc8 breadcrumb: keep the last element clickable 2d5f34d8 Update docs examples metadata 5a5548ad device-types: fix broken conditional in base-depthcharge d663a9dc device-types: add rk3399-gru-kevin 21ac9eb2 LAVA-1230 include lava-logs in encryption docs d57e9131 device-types: rpi3 32-bit: allow custom kernel cmdline 32312dc7 device-types: rpi3 32-bit: allow extra_kernel_args append afa28d5a device-types: rpi-3 32-bit: fixup DT load address 0c9e227b Add missing change to the X15 template 968a00dd Fix fdt load command wrapping. 156f1e7b fix quoting of serial numbers 57610c06 lava-logs: simplify log format 5301ef66 breadcrumb: the last element should not be a link 08547de9 Fix api pages titles and breadcrumb fc03f62b LAVA-1083 - Bug links can be managed only on list pages 35146e4c Remove distinct ON because it can't be used correctly with order by. 85f6bd67 Test shell helper support with base-fastboot b86981ad master: do not send START to offline workers b6cf83f8 admin: fix group cancelation 8890d270 Drop auto-login from hikey 620 template 5642e8cd Allow cancelation in Scheduling and Scheduled too. bbf6c5bb LAVA-1220 - Update API calls and docs for scheduler changes. 742433b0 Drop invalid boot_message for hikey 6220 441919d7 Skip kernel-start-message for dynamic connections 8f4ecdcb Add a parameter to u-boot to override interrupting 8c093e7f Reorganise fastboot for multiple OS support abb9fa5d Adding device-type config for MPS devices 240ffeda Add rk3399-puma-haikou device type and health check bd0c7da7 TestCase: fix crash when accessing old test cases 4e22927e Set Unknown as the default option for changing health 078b6499 api: return the right http error code e6b3ffdd Fix doc Unexpected indentation error. b523e20f Fix the filename in header to the actual filename. acf537fb Improve device tables a0a87385 LAVA-1225 catch errors when creating health checks ea8d5a72 Do not show Idle state when device is unavailable dd4f25bd Allow custom tftp commands for loadfdt in U-Boot a074403a LAVA-1219 allow unicode for job.original metadata 58d23f23 Python3 branch now merged into master 717c177c fix missing quote mark in docs dcb8bd5a LAVA-1224 support for Xilinx-ZCU102 ZYNQ fec11287 Improve python2 and 3 support 756d2e6a migrate-job-output: fix inverted logic for dry-run fbeaa57f Add NotificationRecipient in the admin site 135654d6 Fix online devices listing 7007fda8 Fix change in 70cb792c7 to show extra_source 025bab80 LAVA-1221 change mouse pointer whenever needed b28e4c7b LAVA-1222 use verbose names instead of constants a281a6a7 Extend timeout to cover when dispatcher is busy 3985a0e1 Update development docs for Python3 plans 71374e3a migrate-job-output add --slow and --dry-run 9ce62f2d LAVA-1213 - move developer builds to Python3 81fbb4c4 Charts x-axis attribute should refer to job metadata 7af37d79 LAVA-1164 relicence some lava-server files 14604fb5 LAVA-1211 Document appending to kernel command line e8eb6ec0 Add admin actions to update device health b16e197b LAVA-1107 fix "device-types add" documentation 18be0e5b Set device health to unknown after an infra error 54ae8263 LAVA-950 use a ROUTER socket to connect to master 54ed49c2 Fix crash in lava.scheduler.jobs.logs 7a2b3a68 Change the flow of bootloader commands so they are executed individually
lava-dispatcher ===============
7b9c3e84 Allow some deployments to not use deployment_data d5dc6418 ssh: fix comparison ebbd717b Remove spurious conditional in autologin b3e4d794 LAVA-1232 - LAVA LXC Mocker 4d445841 Fixes for X15 fastboot_uboot fd6dbec5 actions/deploy/lxc: lxc-apt-install action add non-interactive mode 1621ea5b LAVA-1202 - multiple boot + test section using transfer_overlay fails 84d78a08 LAVA-1229 - read-feedback: failed on DUTs without telnet or ssh 0ae6815e Ensure RetryAction has protocol support. 6b96c961 LAVA-1227 - Handle cancellation within LXC ce1421a3 Update ZCU102 device file for bootloader changes d53e452c Fix login support for second UART a0104eb9 Remove unused pipeline reference file. a9f22a9c Allow for empty values in boot methods 00addc73 Fix lookup for grubmenuselector interrupt prompt 782e69d4 Allow skipping of kernel_start_message 52ac66fa Make waiting for a bootloader prompt optional 41f7d58d Not all boot methods have parameters 8b0d03cd Remove deprecated actions in boot sequence. a3fb0095 Reorganize for hikey 960 AOSP support 7d78da6e Fix usage of FastbootReboot 161c1660 LAVA-1167 - Improve disk usage of test overlay tarball creation 7306a5c6 download: record the http error code when failing fd1f7013 Pass USB devices to LXC via ID_FS_LABEL 8bae0785 raise an infra error when docker is not installed 414861e1 LAVA-1138 - panic not recorded by auto-login-action 548a6bb1 LAVA-1224 - support for Xilinx ZCU102 abb9869f Unit tests for 960 AOSP support 0a2f84ce Fix man pages b15eb55e LAVA-950 use a ROUTER socket to connect to master 7a936509 Fix logrotation by using WatchedFileHandler 8f23430b Fix prospector warnings 25859894 Better detect errors in the bootloader 324615d7 LAVA-1165 - skip reading feedback on closed connection