Release Changelog
This section contains release changelogs automatically generated from Conventional Commits by the CI/CD Finalize-Sprint pipeline.
Release History
Changelogs are organized by release version under changelog/{version}/.
A new version folder is published each time a release branch is finalized.
Each release contains:
| File | Description |
|---|---|
|
Jira ticket references only ( |
|
Customer-facing changes: Jira refs, features, bug fixes, documentation, and maintenance. |
|
Complete changelog including every conventional commit type. |
External Components in a Release
Beyond the generated files, every release page (changelog/{version}/index.adoc) carries a hand-maintained External components in this release section: the versions of the third-party products this release was built and verified against — the base image, the application framework and the protocol libraries.
That section is written by hand because the generated files cannot produce it: they are derived from commit messages, and a dependency that did not change in a sprint leaves no commit behind while still being part of what the release was verified against.
The current values live in Third-Party Components and are copied into the release page when the release is cut.
Once a release is published, those same third-party versions — and the versions of every other FT service shipped alongside — also appear on FT Version Control, together with the upgrade steps between releases. That page is the platform-wide record across services; the section here describes only what this branch is built against right now.
|
Add the section to |
Current values
What this branch is built and verified against right now, and the set that gets copied into the first release page when a release is cut. It describes the current state of the branch — not a released version. The full list, with the pom each figure comes from, is in Third-Party Components.
| Component | Version | Notes |
|---|---|---|
Java |
25 |
Language level and runtime ( |
Spring Boot |
4.0.0-SNAPSHOT |
Web UI and REST API. Not a release version — see the warning below |
Eclipse Californium |
2.0.0-M16 |
CoAP and DTLS transport for the CoAP, LwM2M and USP emulators. Milestone |
Eclipse Leshan |
1.0.0-M12 |
LwM2M client implementation. Milestone |
Apache Commons Collections |
4.5.0-M2 |
LRU-bounded session cache for the USP MTP. Milestone |
Eclipse Paho MQTT |
v3 1.2.0, v5 1.2.5 |
MQTT transport and the USP MQTTv5 MTP |
protobuf-java |
4.29.2 |
USP record and message encoding |
BouncyCastle |
1.81 |
TLS for the USP MQTTv5 MTP |
MySQL |
server version not pinned; driver managed by the Spring Boot BOM |
Optional — only the Extract CPE from DB feature connects to a database |
Base image |
|
Runtime image the emulator is built from ( |
Docker Engine / Compose |
20.10+ / 2.0+ |
Recommended deployment method |
|
Four of the figures above are not release versions — a |
Changelog Format
Entries are derived from the commit message prefix:
| Prefix | Section |
|---|---|
|
Features |
|
Bug Fixes |
|
Performance |
|
Documentation |
|
Refactoring |
|
Maintenance |
|
Jira References (rendered as clickable links) |
Example commit messages:
feat(gui): expose build info via /api/version
fix(usp): null-guard in UspDevice.addNewParameter
docs(installation): document FT_TLS_AUTH env var
refs: DEV-2132
Unreleased
Features
-
Java control client. A typed Java client for the control REST API,
com.friendly.qa:ft-oneiot-emulator-client, for JUnit tests and the rig. It covers 50 of the 60 control operations. See Java Control Client. No version has been published yet; the first planned version is0.1.0. -
EST-coaps enrollment for LwM2M devices (PROD-584). A LWM2M device over UDP with DTLS and X.509 enrolls a certificate with
/crts,/sen, and/sren(RFC 9148).-
New options:
lwm2m.est.uri,lwm2m.est.server_cert_sha256,lwm2m.est.fault. See EST enrollment. -
New endpoints:
POST /api/devices/{clientId}/est/enroll,POST /api/devices/{clientId}/est/reenroll,GET /api/devices/{clientId}/est,POST /api/devices/{clientId}/est/options. See EST endpoints. -
Known limits:
-
Scandium 2.0.0-M16 accepts a ServerKeyExchange message without a signature. The pin does not stop an attacker on the network path.
-
The emulator copies the EST private key to
/0/x/5. The unauthenticated REST API returns it. Never publish port 8556. -
The integration test is pinned to
ft-est-servicecommit9815176.
-
-
-
LwM2M scale mode (multi-device load). One container can hold thousands of LwM2M devices. See LwM2M Scale Mode and Load Testing.
-
New switches:
FTEMUL_VIRTUAL_THREADS/-Dftemul.virtualThreads(default off),ftemul.sharedPoolSize. -
New credentials:
lwm2m.psk.per_device, X.509 minting from a CA PKCS#12 (lwm2m.x509.ca.keystore,lwm2m.x509.ca.alias,lwm2m.x509.leaf.validity_days,lwm2m.x509.leaf.chain, password only from the file named byFTEMUL_X509_CA_PASSWORD_FILE). -
New knob:
lwm2m.scale.dtls.receive_buffer(default 2048, 1500 to 16490, scale mode only); over-limit datagrams are counted and logged asevent=dtls-datagram-over-limit. -
New tools under
loadtest/: capacity tool, demo-host launcher and native measure tool.
-
Behaviour changes
-
ack_timeoutandlwm2m.transport.protocol_stage_thread_cnt,receiver_thread_cntandsender_thread_cntbelow 1 (or non-numeric) are now refused when the device is created; they were accepted before. -
WRITE-ATTRIBUTES on a server-Created LwM2M instance is now applied; it was dropped before.