Hi folks,
The 2026.01 tag has been pushed to master on gitlab.com/lava/lava. .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
and
https://hub.docker.com/u/lavasoftware
Changes in this release ==================
# Device-types
## New device-types
* imx952-19x19-evk * osm-imx93 * r8a779g3-sparrow-hawk * juno-r2 * mt8188-geralt-ciri-sku4 * RZV2L
# LAVA Server
## LAVA monitoring
Two scripts for exporting test job data and device transitions as JSON was added.
The scripts can be called with:
```shell lava-server manage testjob_exporter --output-dir data/ lava-server manage transition_exporter --output-dir data/ ```
The json files can then be consumed by [lava-dashboard]( https://gitlab.com/lava/dashboard/lava-dashboard) to generate graphs of the device and job usages.
## UI improvements
Interminent worker to server communications errors used to be displayed at the top of the job details page. This is now collapsed by default for complete jobs and visible for incomplete jobs.
A link to the failing job is now available when the health of the device is bad (after a failed check for the device).
Improve test job table filtering
The following views are now properly checking properly user permissions::
* Plain device dictionary download * Device health check list * Worker details
## XMLRPC API
Allow to add a reason when updating the health. This was already available in the web interface and the REST API.
The reason of the latest health change is also shown on the device details page.
# LAVA Worker
## Labgrid support
LAVA now supports running labgrid tests natively or within the LAVA Docker test shell.
Native run example:
```shell $ cd share/labgrid2lava/ $ python3 ./converter.py -l examples/uboot.yaml -o output/ -d bcm2837-rpi-3-b-32 $ sudo lava-run --job-id 1 \ --output-dir ./1 \ --device ./output/device.yaml \ ./output/job.yaml ```
Job definition example with LAVA Docker test shell:
```yaml actions: - test: docker: image: python:3.13 local: true definitions: - repository: https://github.com/Linaro/test-definitions.git from: git path: automated/linux/labgrid/labgrid.yaml parameters: UPDATE_ENV: true LG_ENV: "./tests/example/env.yaml" LG_TEST: "./tests/example/test_shell_strategy.py" DEB_PKGS: "usbrelay" name: labgrid-shell-strategy-example ```
## Misc
When manipulating cpio archives all operations are performed using `fakeroot`. This is fixing issues with devices nodes (like /dev/null) that where lost in the process.
## Docker test shell
### Environment variables
Boot and test character delay are now available as environment variables inside the docker test shell: `LAVA_BOOT_CHARACTER_DELAYS` and `LAVA_TEST_CHARACTER_DELAYS`.
### Serial disconnect
Test shell running in docker can now disconnect device connection to allow test definition to use it. Test shell also has access to connection specific environment variables.
Add this snippet to the job definition:
```yaml - test: docker: image: debian:trixie disconnect_connection: True ```
## FVP
Add support for running fvp shell commands. The `commands` are executed in the FVP Docker container after the FVP model has started. It allows running custom shell commands or a script that is already in the container to communicate with the model.
## usbg-ms deploy action
Allow users to run `usbg_ms_commands.disable` command in the job definition, to disable usbg-ms whenever needed.
In order to call this function, add to the job definition:
```yaml - command: name: usbg_ms_commands_disable ```
## Boot action
### boot to bootloader
By default LAVA will reset the previous connection and the board power when executing the boot action. Users can skip this step by adding `reset_connection: false` and `reset_device: false` respectively.
This version allows to skip reset with the boot to bootloader action.
### Transfer overlay
LAVA will now check that the overlay is properly downloaded and deployed when using `transfer_overlay`. In case of failure, LAVA will fail the job.
## List of expected tests
List of expected tests is now supported in test definitions or job definitions. Missing test cases are reported as fail, while extra test cases are logged as warnings. These cases are always checked and reported either after the test finishes or right before the job exists on errors. All three test actions (definitions, monitors and interactive) support providing the list in the same way.
Test definition example:
```yaml metadata: format: Lava-Test Test Definition 1.0 name: expected-testdef-example run: steps: [] expected: - tc1 - tc2 - tc3 - tc4 ```
Job definition example:
```yaml - test: definitions: - repository: https://gitlab.com/lava/functional-tests.git from: git path: functional/expected-tests.yaml name: expected-tests expected: - tc1 - tc2 ```
## Fixed SShSession action raising exception
It became broken in 2025.10 release.
## Fixed RunNodebooterContainer action raising exception
It was broken since 2023.06 release.
# CI
Enable more pylint checks and fix code that wasn't compliant before. Enabled checks include: C0121, C0123, C0201, C0206, C0207, C2801, R1701, R1718, R1719, R1721, R1728, R1729, R1731, R1733, R1734, R1735, W0101, W0102, W0106, W0108, W0127, W0130, W0640, W0706, W0715, W3101 and W4701
More details on the meaning of the codes can be found in [pylint wiki]( http://pylint-messages.wikidot.com/all-codes)
Rgds