Hi folks,

The 2019.07 tag has been pushed to master on git.lavasoftware.org.
.deb packages have been built in GitLab CI and will be available 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:

* sun50i-h6-orangepi-one-plus (Allwinner)
* sun8i-a33-olinuxino (Olimex)
* TI CC13X2 LaunchPad (TI)

cmsis-dap
---------

In order to fix some infrequent issues on specific hardware and boards, LAVA will now explicitly perform a sync on the directory before umounting it.

depthcharge
-----------

### extra kernel arguments

Admins and users can now both define some extra kernel arguments in device-type templates and in the job context.

Use `base_kernel_args` in device-type templates and `extra_kernel_args` in job definitions.

### LZMA compression

Enable LZMA compression for arm64 kernel Image with Depthcharge.

docker
------

Secondary ssh connection is now supported for the docker device-type. Look at the [documentation](https://docs.lavasoftware.org/lava/pipeline-writer-secondary.html#secure-shell-connections-ssh) for more information.

lxc
---

Under some circumstances, LAVA could leak the lxc rootfs in `/var/lib/lxc/`. LAVA will no longer leak such rootfs.

We advice admins to have a look at `/var/lib/lxc` and to remove unused rootfs as they can use a significant amount of disk space.

OpenOCD
-------

Admins can set `board_selection_cmd` in the device-type template to specify a command to pass the board id/serial number to OpenOCD.

See OpenOCD documentation for details on the command to set the serial number for the interface your device type is using.

Docker
======

Dockerfiles
-----------

The repository [lava/pkg/docker](https://git.lavasoftware.org/lava/pkg/docker), hosting the Dockerfiles has been merged into the [lava/lava](https://git.lavasoftware.org/lava/lava) repository.

This merge will allow (in a near future) to build the docker images from sources.

entrypoint.d
------------

When starting `lava-server` or `lava-dispatcher` docker images, admin can execute custom scripts by adding them into `/root/entrypoint.d/` The scripts will be executed right before the start of the services.

In this release the support for custom script has been fixed.

performances
------------

When running gunicorn in docker container, the service will now use `/dev/shm` for storing heartbeat artifacts.

By default, gunicorn will use /tmp which is not mounted in docker containers. `/dev/shm` is guaranteed to be available and an in-memory filesystem.

Using a non-memory file system can lead to intermittent hang.

See [gunicorn in docker](https://pythonspeed.com/articles/gunicorn-in-docker/) for more information.

permissions
-----------

When starting `lava-logs` or `lava-server-gunicorn` the entrypoint will now check that the files under `/etc/lava-server/dispatcher-config/` and `/var/lib/lava-server/default/media/` belong to the `lavaserver` user and group.
The docker container will refuse to start if that's not the case as this can lead to crashes or strange behaviors.

lava-publisher
==============

The lava-publisher sockets will now automatically send ping messages thanks to the [ZMTP protocol](https://rfc.zeromq.org/spec:37/ZMTP/).
If the connection is lost, the [heartbeating protocol](https://rfc.zeromq.org/spec:37/ZMTP/#connection-heartbeating) will detect the issue and try to reconnect.

Error reporting
===============

In order to track crashes of the LAVA services, admins can setup [sentry](https://sentry.io) in `/etc/lava-server/settings.conf`:

```json
  "SENTRY_DSN": "http://<public_key>@<sentry>/<project-id>"
```

You should also install `sentry-sdk` from [pypi](https://pypi.org/project/sentry-sdk/) with:

```shell
apt-get install python3-pip
python3 -m pip install sentry-sdk==0.10.2
```

The lava-server docker image comes with the sentry sdk already installed.


Rémi, for the LAVA team.

--
Rémi Duraffort
LAVA Team, Linaro