Hi folks,

The 2021.04 tag has been pushed to master on git.lavasoftware.org.
.deb packages have been built in GitLab CI and are 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 device:
* kontron-pitx-imx8m

## imx8

The base_high_limits attribute default value is now false.

## lpcxpresso55s69

Add support for "pyocd" boot method.

## docker

### image dependencies

Two new apache2 mods are now enabled in lava-server docker image:
* mod_rewrite
* mod_ssl

Enabling these two modules by default will make docker based https deployment
and upgrade easier.

The new dependency has been added to the docker image: python3-django-allauth.
This makes gitlab SSO possible in the docker deployment.

### package versions

The following packages are now installed from the buster backports and will thus
have a higher installation version:
* qemu-system-arm
* qemu-system-mips
* qemu-system-misc
* qemu-system-ppc
* qemu-system-x86

## FVP

Instead of launching a long-running container to just get the model version,
LAVA now does a one-off docker run call. This avoids leaving that container
running in the background.

# LAVA server

## notifications

A custom query argument named ```dependency_query``` is added for notification
criteria section. If specified, the notifications will only be sent if all the
jobs from the query satisfy the criteria condition specified in criteria status
field. Example code:

```yaml
notify:
  criteria:
    status: finished
    dependency_query: testjob__description__icontains__somestring
  callback:
    url: https://git.lavasoftware.org/api/v4/projects/1232/jobs/11113/play
    method: POST
```

## configuration

LAVA now makes it possible to set the database, secret key and ALLOWED_HOSTS for
each environment based on environment variables. It is useful for other use
cases as well, such as LAVA deployments based on containers.

Variables that can be set via env variables:
* DATABASE_URL
* INSTANCE_NAME
* SECRET_KEY
* ALLOWED_HOSTS

## Worker token API

It is now possible to set the worker token via the lava-server manage command.

## Debian packaging

Downgraded postgresql and apache2 to a Recommends for lava-server, making LAVA
setup more flexible.

## Master/worker version mismatch

Added a new setting variable ALLOW_VERSION_MISMATCH to disable the version
check.

Note: users should be aware of potential side effects of version mismatch.

# LAVA dispatcher

## boot/pyocd

A new option is available in pyocd boot action, ```connect_before_flash```.
This will allow to connect to device before flashing and capture serial output
appearing immediately after flashing.

## failure retry interval

By default, individual action would be retried after 1 second, but you can now
specify ``failure_retry_interval`` to increase the interval between retries.

```yaml
  - deploy:
     failure_retry_interval: 10
```

## overlay

LAVA is now adding env variables (from env-dut.yaml) to the secrets file in
overlay.

# Bug fixes

* lava-server manage sync: show device type when devices come back from retired
* dispatcher: download: catch stderr when decompression fails
* doc: authentication: add notes to GitLab auth integration
* testdef: do not crash if a test step is None
* tar test definition: fix compression support
* containers: fix duplicate mount point for container share


Thank you,
-- 
Stevan Radaković | LAVA Senior Engineer
Linaro.org <www.linaro.org> │ Open source software for ARM SoCs