Hi folks,

The 2023.06 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
==================

# Upgrading

## Database migrations

Three database migrations are present in this release:
* lava_results_app.0019_update_query_contenttype
* lava_scheduler_app.0057_dt_permissions_worker_master_version
* lava_scheduler_app.0058_add_testjob_view_performance_indexes

The three migrations can be safely ran before upgrading and restarting gunicorn.

If you already applied the two first migrations, you should revert them by calling:
```shell
lava-server manage migrate lava_results_app 0018_drop_buglink
lava-server manage migrate lava_scheduler_app 0056_testjob_queue_timeout
```

Then you can safely call
```shell
lava-server manage migrate
```

# Device-types

## New device-types

New supported devices:

* acer-n20q11-r856ltn-p1s2-nissa
* r8a779m1-ulcb

# Docker images

The LAVA container images are now based on Debian (12) Bookworm.

# Docker caching

When using a docker container in a job action, by default, LAVA dispatcher will call `docker image pull` to get the latest version of the image.
In order to drop the `pull`, ones can add `local: true`. Starting from this release, when using `local: true`, if and only if the image is not present locally, LAVA dispatcher will pull the image first.
If the image is already available on the worker, then LAVA dispatcher will never force a refresh.

# Job metadata

Allow to pass any kind of objects into the job metadata:

```
metadata:
  api:
    name: example.com
    url: https://example.com/api/
    version: latest
  node_id: 12345
```

# Kernel log parsing

Allow to ignore kernel errors when parsing the boot log.

In order to use this, add `ignore_kernel_messages: True` to the boot action.

# lava-docker-worker

The LAVA project is currently migrating to [gitlab](https://gitlab.com/lava/). In order to ease the transition, lava-docker-worker is now pulling docker images from `registry.gitlab.com` and fallback to `hub.lavasoftware.org`.

# Performances

## lava-run logs

When failing to push logs from `lava-run` to the server, wait some time before retrying. Prior to this version, `lava-run` was DOSing the server in case of error.

## lava-server

The LAVA server SQL queries has been improved a lot and should make the web interface way faster.

# Prometheus

A prometheus endpoint is now available at `/v1/prometheus`. To configure prometheus, add:
```yaml
- job_name: "lava"
  metrics_path: "/v1/prometheus"
  static_configs:
  - targets: ["https://lavaserver.example.com"]
```

To export metrics about private devices, you should provide basic authentication with username and token (same as XMLRPC API).

# Version format

The development version string format is now `<tag>.dev<commits>` instead of `<tag>.<commits>.g<hash>` to follow python recommendations that are now enforced by Debian 12.


Rgds

-- 
Rémi Duraffort
Principal Tech Lead
Automation Software Team
Linaro