Releases: SmingHub/Sming
4.1.1
We have a new minor release thanks to the efforts from @aemseemann, @kmihaylov and @mikee47 and other contributors.
New features
- Added Modbusino - simple modbus rtu library. #2043
- Added make target
python-requirements
to install Python requirements of project. #2019 - Added support for Arduino's TensorFlow Lite. #2063
- Added distance measurement using vl53l0x sensor. #2050
- Added OTA upgrade as a component. #2006
- Added Blake2s to Crypto component. #2033
Improvements
- Build.mk changes to allow the use of CPPFLAGS, CFLAGS and CXXFLAGS. #2065
- Updated DHTesp to latest version. #2057
- Updated BearSSL to latest. #2056
- Updated NON-OS SDK to 3.0.3 #2055
- Updated ws-parser to latest version. #2054
- Updated http-parser to version v2.9.4. #2053
- Changed Rboot to be optional component. #2066
Bug fixes
- ModbusMaster fixes. #2059
- Fix to the Travis-CI scripts #2052
- Fixed axtls-8266 patch to work on all supported Windows platforms. #2048
All PRs that were merged in this release can be seen from here
For a complete list of changes run the following command:
git log 4.1.0..4.1.1
Thanks to everyone who helped us make this release happen!
4.1.0
We are happy to announce Sming version 4.1.0 - a new major release containing new features, improvements and bug fixes. Some of them are listed below:
New features
- No-WiFi build option #2004 - get more resources if your application is not using WIFI.
- Multiple SSL adapters based on axTLS and BearSSL. #1999
- Added basic Crypto support library #2014
- Updates framework to build using GCC 9.2.0 toolchain for C++17. #1825
- Modbus master #1992
- Implemented Small String Optimisation (SSO). #1951
- Webcam stream and sample webcam web server. #1981
- Allow HTTP connections to ignore rejected body content #1928
Improvements
- Some improvements to multipart parser #2007
- Update ArduinoJson to 6.13.0 #1979
- Added precaching from Arduino for ESP8266. #1965
- Add support for 'Expect: 100-continue' in HTTP server. #1931
- Upgrade to FlashString Library #1974, #2013
Bug fixes
- Updated mqtt-codec to allow publish messages without payload. #1976
- HttpConnection freed twice. #1938
- Hangs at startup when custom heap enabled. #1996
- Fix issues reported by valgrind #2017
Breaking changes and Migration
- See our dedicated page for migration from 4.0.0 to 4.1.0.
All PRs scheduled for this release can be seen from here
For a complete list of changes run the following command:
git log 4.0.0..4.1.0
Thanks to everyone who helped us make this release happen!
4.0.0
This is a major new version of Sming Framework. If your application was based on older version of Sming you should read the migration guide. We also provide 3.8.x LTS version - currently 3.8.1 for those that haven't had the time to upgrade yet. The LTS version will be supported until 1st of April, 2020.
Below you will find an impressive list of new features, improvements and bug-fixes in Sming 4.0.0.
New features
- Initial support for multiple architectures. At the moment ESP8266 and Host with ESP32 coming soon. ( #1675 )
- Modular build system ( #1724 ). Beware of changed behaviour when using environmental variables ( #1758 ).
- Host Emulator (#1692)
- Added support for both ArduinoJson version 6 and 5 ( #1752 ). The default version is now version 6.
- New documentation system based on sphinx ( #1766 ). The new documentation is located at https://sming.readthedocs.io/en/latest/.
- Clock framework and Polled Timers ( #1821 )
- Integrated libsodium v1.0.18 as a component ( #1797)
- Added support for time zones and sunrise/sunset calculation #1840
- File upload support in the HttpServer. #1792
- I2S driver + Basic Audio sample (#1862).
- RingTone Player sample plus libraries (#1864).
- Added support for BME280 and MCP23008 arduino libraries. #1763
- Initial CAN Bus support. #1646
- Added malloc_count Component to track heap usage #1743
- Enforced C11 standard #1695
Improvements
- WiFi improvements ( #1812, #1802 )
- Unified Callback Timer API ( #1831 )
- Updating internal SDK to NON-OS version 3.0.1. ( #1832 )
- BodyParser improvements. ( #1823, )
- Fixed Esp8266 partitions, added 8Mbyte and 16Mbyte device support #1800
- Decreased latency in MqttClient publishing. Latency is less than 1ms. #1761
- Fixed custom heap #1745
- Updated servo library and sample (#1870).
- Updated ArduinoJson6 to current version 12.0 (#1885).
- Improvements to the tcp connection handling and axTLS.
Breaking Changes
- For Architecture:Esp8266 only NON-OS SDK version 3.0.1 is officially supported (#1878).
Bug fixes
- Fixed array bounds issue detected via GCC-8 on Host build #1709
- Fixed memory leak in MqttClient #1742
- Fixed UpdServer_Echo. #1775
All PRs that were merged in this release can be seen from here
For a complete list of changes run the following command:
git log 3.8.0..4.0.0
Thanks to everyone who helped us make this release happen and especially to @mikee47 for working so hard on multiple new features, improvements and bug fixes!
v3.8.1
Sming version 3.8.1 is a minor update to the previous 3.8.0 version. 3.8.x releases are our Long Term Support (LTS) releases. 3.8.x will be supported until 1st of April, 2020. It is for those who have not had the time to migrate their application to Sming 4.0.0.
This release contains stability improvements and bug fixes. There are no new features. If you want to have the latest and greatest features from our develop
branch we highly recommend migrating to Sming 4.0.x due to its major improvements in build system, platform support, performance, security and code quality.
All PRs that were merged in this release can be seen from here
For a complete list of changes run the following command:
git log 3.8.0..3.8.1
Thanks to everyone who helped us make this release happen!
4.0.0 - Release Candidate 4
This is the fourth and most probably the last pre-release for the upcoming 4.0.0 version of Sming Framework.
It contains mainly improvements and bug-fixes.
Improvements
- Improved the automatic release process
- Bugfixes for RELEASE builds
- Fixing issues reported by Coverity in our Sming/Core code. (#1917, #1916, #1913)
- Bugfix for using SPIFF in slots other than 0 (#1923).
Deprecations
- Deprecated DNSServer. Use DnsServer instead. (#1915)
For a complete list of changes run the following command:
git log 4.0.0-rc3..4.0.0-rc4
4.0.0 - Release Candidate 3
This is the third pre-release to prepare you for the upcoming 4.0.0 version of Sming Framework.
It contains mainly improvements and bug-fixes.
The biggest change in terms of release deployments is that the code of the submodules will NOT be included in the master repository. An archive of the patched submodules will be attached as an asset to every new release.
For a complete list of changes run the following command:
git log 4.0.0-rc2..4.0.0-rc3
4.0.0 - Release Candidate 2
This is the second pre-release to prepare you for the upcoming 4.0.0 version of Sming Framework.
Below you will find a list of new features, improvements and bug-fixes in comparison to version 4.0.0-rc1 .
New features
Improvements
- Updated servo library and sample (#1870).
- Updated ArduinoJson6 to current version 12.0 (#1885).
- Improvements to the tcp connection handling and axTLS.
Breaking Changes
- For Architecture:Esp8266 only NON-OS SDK version 3.0.1 is officially supported (#1878).
4.0.0 - Release Candidate 1
This is a pre-release to prepare you for the upcoming 4.0.0 version of Sming Framework.
Below you will find an impressive list of new features, improvements and bug-fixes.
New features
- Initial support for multiple architectures. At the moment ESP8266 and Host with ESP32 coming soon. ( #1675 )
- Modular build system ( #1724 ). Beware of changed behaviour when using environmental variables ( #1758 ).
- Host Emulator (#1692)
- Added support for both ArduinoJson version 6 and 5 ( #1752 ). The default version is now version 6.
- New documentation system based on sphinx ( #1766 ). The new documentation is located at https://sming.readthedocs.io/en/latest/.
- Clock framework and Polled Timers ( #1821 )
- Integrated libsodium v1.0.18 as a component ( #1797)
- Added support for time zones and sunrise/sunset calculation #1840
- File upload support in the HttpServer. #1792
- Added support for BME280 and MCP23008 arduino libraries. #1763
- Initial CAN Bus support. #1646
- Added malloc_count Component to track heap usage #1743
- Enforced C11 standard #1695
Improvements
- WiFi improvements ( #1812, #1802 )
- Unified Callback Timer API ( #1831 )
- Updating internal SDK to NON-OS version 3.0.1. ( #1832 )
- BodyParser improvements: ( #1823, )
- Fixed Esp8266 partitions, added 8Mbyte and 16Mbyte device support #1800
- Decreased latency in MqttClient publishing. Latency is less than 1ms. #1761
- Fixed custom heap #1745
Bug fixes
- Fixed array bounds issue detected via GCC-8 on Host build #1709
- Fixed memory leak in MqttClient #1742
- Fixed UpdServer_Echo. #1775
All PRs that were merged in this release can be seen from here
v3.8.0 - codename "Double M"
We are happy to announce Sming version 3.8.0 - a new major release containing new features, improvements and bug fixes. This release is codenamed "Double M". Where "M" stands for high-quality major release. Thanks to @mikee47's and his fantastic work.
Some of the highlights in this release include:
- a new WIFI Sniffer.
- better live debugging support with support for GDB Host I/O and File I/O extensions.
- better UART support
- a new OS Message Interceptor that is helping the discovery of problems reported from the underlying system.
- better SSL handling.
- network improvements to FTP, Websocket, HTTP and MQTT protocols.
- fixed formatting ranges on SPIFFS creation
A longer list with more details and merged PR is given below.
New features
- Interceptor for system messages #1613
- Introduce ObjectMap #1638
- Add optional
deferMillis
parameter toSystem::restart()
#1611 - Expand
SSLSessionId
structure to manage allocated memory. #1614 - Adafruit_SSD1306 library add support for 64 × 48 pixels OLED Shield #1622
- WifiSniffer #1647
Improvements
- GDB and exception handling improvements. #1655
- A couple of general additions to uart driver for reporting error status and handling line breaks #1655
- Better handling of out-of-memory issues in axTLS #1651
- Add support for escaped URLs #1642
- Refactor Ftp classes #1633
- WebsocketConnection improvements #1632
- DateTime fixes & improvements #1625
- Add HttpClientConnection class #1624
- Improve memory management of SSL fingerprint data #1618
- Http connection base improvements #1601
- Improvements to the ssl structure management #1600 #1606
- General tidy of Netutils module #1599
- HttpServer_Websockets sample: wait 1 second before calling
server.shutdown()
#1598 - TCP improvements #1595
- StreamTransformer improvements #1593
- Change use of
ReadWriteStream*
toIDataSourceStream*
where appropriate #1588 - Change fileSetContent() to return a result #1657
Bug fixes
- Fixes to the SPIFFS size calculation. #1653
- Fix
map()
bug inWMath.cpp
#1636 - Fix: HttpConnection memory leak #1639
- Fix:
HardwareSerial
interrupt callback code not in IRAM #1610 - Fix mqtt fifo memleak #1612
- Fix file stream size tracking #1608
- Fix signed/unsigned bug introduced in #1599 and highlighted by codacy #1605
- MqttClient memory leak #1594
- Updated the mqtt-codec version with fixes to the remaining length cal… #1591
- Revert to default MAC string format for
getMAC
method... #1584 #1583 - Do not flash blankfs.bin if SPIFFS is disabled #1586
- Fix for the compilation of esp-gdbstub with SDK 3.0.0 in strict mode. #1582
- MqttClient bugfix: payloadStream discarded #1587
- SPIFFS updated to its latest version #1664
Coding style
- Ensure all core code has standard header and consistent guard naming #1630
- Enforce code deprecation and virtual methods
#1629 - Coding style changes: deprecated and override #1620
- Switched to clang-format v6 #1589
All PRs that were merged in this release can be seen from here
For a complete list of changes run the following command:
git log 3.7.1..3.8.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!
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!