Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 02:37
· 27 commits to main since this release
668f882

Date: 2026-10-29

Summary

A reference server of OpenADR 3.0.1: openleadr301, OpenLEADR openleadr-rs
v0.1.4, the last release of OpenADR 3.0. Fixtures can be of either
revision, a new fixture baseline-301 is the baseline in 3.0.1, and a
client and a server are paired only when they share a revision. Contract
1.4 and fixture schema 1.1: additions, nothing a consumer of 1.3 has to
change.

Changes

Added

  • The openleadr301 image, ghcr.io/otfabric/openadr-interop-openleadr301, for linux/amd64 and linux/arm64: OpenLEADR v0.1.4 (commit 92f4ba12d34cee0458af5846f170996d0b31978f) with a private PostgreSQL, server role only, openadrVersions ["3.0.1"]. No MQTT, no Multicast DNS, no notifiers. The VTN listens on port 3000 whatever it is told; the adapter forwards --port (default 8080) to it and refuses --port 3000.
  • The baseline-301 fixture: the clients of baseline with the same IDs and secrets, its ven, resource, programs and events, with targets as valuesMap objects. The targeted program and event name VEN_NAME site-1.
  • "3.0.1" in openadrVersions of the capability schema, and in openadrVersion of the fixture schema, whose targets are strings in 3.1.0 and valuesMap objects in 3.0.1.
  • make smoke checks of a 3.0.1 server (a token from /auth/token, valuesMap targets, a targeted program seen only by its VEN), and of every adapter refusing a fixture of a revision it does not serve or speak.

Changed

  • Every adapter refuses a fixture of a revision it does not serve: exit 4 for server, a usage error (exit 2) for client. The openleadr and elaadnl images serve and speak 3.1.0 only, as before.
  • make interop pairs a client with a server only when they share an OpenADR version, and logs each pairing and each pair it leaves out. elaadnl → openleadr301 is left out: 3.1.0 against 3.0.1.
  • The conformance suite stays of 3.1.0 and runs against openleadr only: it asserts the 3.1.0 OpenAPI document, which 3.0.1 differs from in the shape of every targeted object.
  • The weekly candidate probe covers openleadr301, following v0.1.x tags only.

Fixed

  • docs/COMPATIBILITY.md and the elaadnl adapter said that ElaadNL openadr3-client 2.4.0 names the operations of a subscription "as OpenADR 3.0.1 did". It does not: 3.0.1 names them READ, CREATE, UPDATE and DELETE, as 3.1.0 does. The library names them with HTTP methods, which 3.0.1 uses only for the operation of a notification. The v0.4.0 notes below say the same wrong thing.

Upstream notes

Observed by running v0.1.4 with baseline-301; details in docs/COMPATIBILITY.md.

  • No /subscriptions (404), which 3.0.1 defines.
  • A VEN cannot delete its own report (403); only Business Logic can. While a report exists, its event and program cannot be deleted (409).
  • GET /programs?targetType=VEN_NAME&targetValues=… finds nothing: program targets of that type are kept apart, as the list of VENs that may see the program. A VEN is shown such a program without its targets.
  • A VEN client without a ven sees no programs, not even untargeted ones.
  • A bearer token the VTN did not issue is answered 403, which the 3.0.1 OpenAPI document allows.

Verification

On arm64: make validate lint images smoke interop conformance-test documents conformance. Smoke 33 (openleadr), 44 (elaadnl) and 32 (openleadr301) checks; self-test 73 checks passed and 5 skipped on declared capabilities, elaadnl → openleadr301 not paired; conformance of openleadr 20 of 24 scenarios, 4 known findings; 3 capability documents and 65 client results valid against their schemas.

Images

Image Upstream Digest
ghcr.io/otfabric/openadr-interop-openleadr:v0.5.0 v0.2.7 sha256:4f8eb4b1795bd3f21307346eb8cff0e3860f9c9753e841710de50a5af1353ab5
ghcr.io/otfabric/openadr-interop-elaadnl:v0.5.0 2.4.0 sha256:3c8d2e56b87740f138d3e083303c8333a28cfe6d386aab1a9a009ae70c33d12f
ghcr.io/otfabric/openadr-interop-openleadr301:v0.5.0 v0.1.4 sha256:a2039fff5b7d3e4a3691883a543bb602b885a07ed8a3a2779fed238627c7e1a5

Pinning in a consumer

OPENADR_INTEROP_OPENLEADR_IMAGE=ghcr.io/otfabric/openadr-interop-openleadr@sha256:4f8eb4b1795bd3f21307346eb8cff0e3860f9c9753e841710de50a5af1353ab5
OPENADR_INTEROP_ELAADNL_IMAGE=ghcr.io/otfabric/openadr-interop-elaadnl@sha256:3c8d2e56b87740f138d3e083303c8333a28cfe6d386aab1a9a009ae70c33d12f
OPENADR_INTEROP_OPENLEADR301_IMAGE=ghcr.io/otfabric/openadr-interop-openleadr301@sha256:a2039fff5b7d3e4a3691883a543bb602b885a07ed8a3a2779fed238627c7e1a5

manifest.json records the upstream versions these images were built from. The images contain third-party software under its own licences; see THIRD_PARTY_NOTICES.md and /licenses in each image. Notes: RELEASE.md.

2026-10-29: manifest.json and checksums.txt were replaced. The first upload listed only 3.1.0 under openadrVersions (fixed in #5); it now lists 3.1.0 and 3.0.1. Nothing else changed: the images and their digests are the same.