v3.7.0 - codename "M"
This is a major release containing new features, fixes and breaking changes. This is a very important new release as it marks the start of polishing the existing components, improving their quality and paving the way for version 4.
This release is codenamed "M" which might stand for Mini, Maxi or @mikee47 - our new top contributor who made a lot of changes in this release that led to substantial list of improvements and more free memory heap for your applications based on Sming Framework.
This release is worth trying! And the next one is promising to be even better :).
Without further ado here are some of the highlights ( full list is here ):
New features
- Allowed the use of multiple DS18S20 sensors #1440.
- Experimental support for SDK 3.0 for rBoot apps. #1470
- Added TM1637 7-segment led display library #1512
Improvements
- Optimised HashMap to use pass-by-reference where possible. #1455
- Improved uri escaping / unescaping #1457
- More free heap due to moving constant data in flash #1438 #1459
- Improvements to the String class and added support for binary strings #1437. Revised SplitString #1508
- HttpHeaders #1461 #1463. HttpRequest improvements and HttpParams as a separate module #1498
- Rewritten flashmem driver to cope with misaligned RAM buffers #1490
- Upgrades to the serial port driver #1493
- Various improvements to NtpClient class #1482
- Updated AxTLS with fixes related to CVE-2018-16150 and CVE-2018-16149 #1506
- Streaming support for flash data. Changes to FileStream class #1510
- Fixed Basic_WebSkeletonApp body parsing #1516
Refactoring
- Stream classes #1488, #1496
- Refactored TemplateFileStream class using TemplateStream #1500
- Refactored websocket client and server #1514
- Refactored http connections for better code reuse #1515
Deprecations
- As per our poll results: Deprecate non-rBoot apps #1513
- Hardware_Timer is deprecated. You should use HardwareTimer instead
- HttpResponse::hasHeader() - this method is deprecated since quite some time and will be removed in the next version.
Breaking Changes
- SystemClock::now() returns
time_t
instead ofDateTime
.
If you use Websocket functionality make sure to read the notes below.
-
Renamed Websocket related types, classes and methods. We used to have
WebSocket
andWebsocket
. From now on onlyWebsocket
will be used. ExampleWebsocketConnection::getActiveWebSockets
is nowWebsocketConnection::getActiveWebsockets
. -
WebsocketConnection
Renamed the method making thebinding
to a http server socket to be calledbind
. -
WebsocketClient
All methods starting withsetWebSocket
are shortened toset
. Example:setWebSocketMessageHandler
is renamed tosetMessageHandler
.
All PRs merged in this release can be seen from here
For a complete list of changes run the following command:
git log 3.6.1.2..3.7.0
Thanks to everyone who helped us make this release happen and especially to @mikee47 for working so hard on multiple improvements and bug fixes!