🚧 This release contains a critical bug which renders component communication unusable after 24 hours. The fix will be part of the v3.25.1
release. 🚧.
Added
- Optional Network Server database migration that removes obsolete last invalidation keys is now available.
- LoRaWAN Application Layer Clock Synchronization support.
- It is available using the
alcsync-v1
application package. - Can be enabled using the Console by visiting the application settings and ticking the Use Application Layer Clock Synchronization checkbox. By default, the package will operate on FPort 202.
- It is available using the
- Drop uplink frames with CRC failure.
Deprecated
- Returning special float values, such as
NaN
andInfinity
as part of the decoded payloads.- While the concepts of
NaN
andInfinity
are part of JavaScript, JSON does not have a dedicated value for such values. - Historically we have rendered them in their string form, i.e.
"NaN"
and"Infinity"
, but this form is not standard nor accepted by the standard libraries of most programming languages (at least by default). - Most usages of
NaN
are actually result of operations with the JavaScript concept ofundefined
, and are not intentional. Mathematical operations that interact withundefined
returnNaN
- for exampleundefined * 5
isNaN
. It is not hard to reachundefined
in JavaScript, as array access to undefined indices isundefined
, and payload decoders generally work by consuming the frame payload bytes. - Future The Things Stack versions may not render such values, or may discard the decoded payload completely. The deprecation discussion can be tracked on GitHub.
- While the concepts of
Removed
- Automatic migrations of the Network Server database using
ns-db migrate
from versions prior to v3.24 are removed. Migrating from prior versions should be done through v3.24 instead.