Hi folks,

The 2019.10 tag has been pushed to master on git.lavasoftware.org.
.deb packages have been built in GitLab CI and will be published at

  https://apt.lavasoftware.org/release

Docker images for amd64 and arm64 have been built in GitLab CI and
are available from

  https://hub.lavasoftware.org/

and

  https://hub.docker.com/u/lavasoftware

Changes in this release
=================

Device-types
============

New device-types
----------------

New supported devices:
* hifive-unleashed-a00 (SiFi)
* meson-g12b-a311d-khadas-vim3 (Amlogic)
* meson-gxm-q200 (Amlogic)
* MIMXRT1050-EVK (NXP)
* sun4i-a10-olinuxino-lime (Olimex)
* sun7i-a20-olinuxino-lime2 (Olimex)
* sun7i-a20-olinuxino-micro (Olimex)

u-boot error messages
---------------------

The list of u-boot errors that LAVA can recognized has been extended. The full list is now: `Resetting CPU`, `Must RESET board to recover`, `TIMEOUT`, `Retry count exceeded`, `Retry time exceeded; starting again`, `ERROR: The remote end did not respond in time.`, `Bad Linux ARM64 Image magic!`, `Wrong Ramdisk Image Format`, `Ramdisk image is corrupt or invalid`, `ERROR: Failed to allocate`, `TFTP error: trying to overwrite reserved memory`

dragonboard
-----------

Update the device-type template to flash GPT partitions in the right order (if present).

meson-g12a-sei510
-----------------

Fix some issues with u-boot command corruptions and allow to use LAVA tftp resources already setup by LAVA.

imx6q-sabrelite
---------------

Move the addresses around for imx6q-sabrelite to give `63MiB` for the kernel image, `1MiB` for the dtb and the rest for the ramdisk.

jlink
-----

LAVA can now boot some boards using the `jlink` boot method. Currently, only the `frdm-k64f` can use this method.

```yaml
- deploy:
    timeout:
      minutes: 3
    to: tmpfs
    images:
      zephyr:
        url: http://zephyr.bin
- boot:
    method: jlink
    timeout:
      minutes: 10
```

vemsd
-----

The `vemsd` support has been improved after some experiments in the Cambridge lab:
1. call `sync` on the mount point prior to umount
2. raise the right exception when failing to flash (Infrastructure error)

mps
---

The `mps` support was also improved after some issues in the Cambridge lab:
1. allow to flash multiple test binaries in one deploy block
2. allow to use soft reboot

```yaml
- deploy:
    to: mps
    images:
      recovery_image:
        url: mps2_sse200_an512.tar.gz
        compression: gz
      test_binary_1:
        url: tfm_sign.bin
      test_binary_2:
        url: mcuboot.bin
```

Authorization
=============

Some issues found with the new authorization model has been fixed:

* fix crashes in some XMLRPC calls
* merge `admin_testjob` and `cancel_resubmit_testjob` into `change_testjob`
* remove `submit_testjob` and `add_testjob` permissions
* remove old permissions like `dashoard_app`
* rename `admin_` permissions to `change_` permissions

The [documentation](https://docs.lavasoftware.org/lava/authorization.html) of this new model has been updated.

gunicorn
========

Fix log rotation. Due to a missing reload in the log rotate configuration file, the `lava-server-gunicorn` service was logging to the old log file, even after the log rotation.

Admin should look at the logs in `/var/log/lava-server/`.

Docker
======

Add an option to `lava-master` to set the event url when `lava-master` and `lava-publisher` are running on two different hosts or containers.

Add `EVENT_URL="--event-url tcp://localhost:5500"` in `/etc/lava-server/lava-master`.

This setting is used by [docker-compose](https://git.lavasoftware.org/lava/pkg/docker-compose/).

Rest API
========

Users can now submit jobs by `POST` the job definition to the `/jobs/` endpoint.

Django 2
========

This release is the first release to work on both Django 1.11 and Django 2.

Development
===========

Allow developer to run lava server and dispatcher services using `foremon`. Thanks to this support, running a development version of lava is now way simpler.


--
Rémi Duraffort
LAVA Architect
Linaro