Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CHANGELOG in master #1223

Merged
merged 9 commits into from
Sep 16, 2020
262 changes: 262 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,262 @@
# Change Log for AWS IoT Device SDK for Embedded C

## 202009.00 (September 2020)

### Major Changes

- This release introduces the re-factored **MQTT** client library, **JSON** parser library and **AWS IoT Shadow** client library.
These libraries have gone through code quality checks including verification that no function has a [GNU Complexity](https://www.gnu.org/software/complexity/manual/complexity.html) score greater than 8, and checks against deviations from the mandatory rules in the [MISRA coding standard](https://www.misra.org.uk/MISRAHome/MISRAC2012/tabid/196/Default.aspx). These libraries have also undergone both static code analysis from [Coverity statical analysis](https://scan.coverity.com/) and validation of memory safety and functional correctness proof through the [CBMC automated reasoning tool](https://www.youtube.com/watch?v=YwQHAPRhQkI&feature=youtu.be&t=1721).

- This release uses submodule references to the following new individual repositories for the MQTT, JSON and AWS IoT Shadow service client libraries under `libraries` folder:
- [FreeRTOS/coreMQTT](https://github.com/FreeRTOS/coreMQTT) for MQTT client library
- [FreeRTOS/coreJSON](https://github.com/FreeRTOS/JSON) for JSON parser library
- [aws/device-shadow-for-aws-iot-embedded-sdk](https://github.com/aws/device-shadow-for-aws-iot-embedded-sdk) for AWS IoT Shadow service client library.

- With this release, we are introducing a [date-based versioning scheme](README.md#versioning).

**Note**: This release is **NOT** backwards compatible with the v3 version of AWS IoT Device SDK for Embedded C.

## [3.1.0](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v3.1.0) (September 08, 2020)

This represents the last tag for the v3 version of AWS IoT Device SDK for Embedded C.

Bugfixes:
- [#205](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/205) Fix IAR compiler error about missing function prototypes.
- [#241](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/241) Fix command-line argument processing in Shadow demo.
- [#244](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/244) Fix parsing of metadata object in delta callback.
- [#854](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/854) Fix doxygen errors in v3 MQTT documentation.
- [#895](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/895) Fix issues reported by clang static analysis.
- [#1006](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/1006) Fix application hang when network is lost during QoS0 publish loop.
- [#1070](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/1070) Fix typo in job's status strings.

## [3.0.1](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v3.0.1) (May 10, 2018)

Bugfixes:

- [#167](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/167), [#168](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/168) Fixed issues reported by Coverity Scan.
- [#177](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/177) Fixes a memory corruption bug and handling of timeouts.

Other:

- Add .travis.yml for Travis CI.
- Removed C++ sample.
- Removed includes of `inttypes.h`, which doesn't exist on some systems.
- [#175](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/175) Added comments on static allocation of MQTT topics.

## [3.0.0](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v3.0.0) (Apr 17, 2018)

Bugfixes:

- [#152](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/152) Fixes potential buffer overflows in `parseStringValue` by requiring a size parameter in `jsonStruct_t`.
- [#155](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/155) Fixes other memory corruption bugs; also improves stability.

The two bug fixes above are not backwards compatible with v2.3.0. Please see [README.md](README.md#migrating-from-2x-to-3x) for details on migrating to v3.0.0.

## [2.3.0](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v2.3.0) (Mar 21, 2018)

New Features:

- Add [AWS IoT Jobs](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html) support.
- Use AWS IoT Core support for MQTT over port 443. MQTT connection now defaults to port 443.

Pull requests:

- [#124](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/124) - Thing Shadow: Fix potential shadow buffer overflow
- [#135](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/135) - mbedtls_wrap: Fix unintialized variable usage
- Fix bugs in long-running integration tests.

## [2.2.1](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v2.2.1) (Dec 26, 2017)

Bugfixes:

- [#115](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/115) - Issue with new client metrics

Pull requests:

- [#112](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/112) - Initialize msqParams.isRetained to 0 in publishToShadowAction()
- [#118](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/118) - mqttInitParams.mqttPacketTimeout_ms initialized

## [2.2.0](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v2.2.0) (Nov 22, 2017)

New Features:

- Added SDK metrics string into connect packet

Bugfixes:

- [#49](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/49) - Add support for SHADOW_JSON_STRING as supported value
- [#57](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/57) - remove unistd.h
- [#58](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/58) - Fix return type of aws_iot_mqtt_internal_is_topic_matched
- [#59](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/95) - Fix extraneous assignment
- [#62](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/62) - Clearing SubscriptionList entries in shadowActionAcks after subscription failure
- [#63](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/63) - Stack overflow when IOT_DEBUG is enabled
- [#66](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/66) - Bug in send packet function
- [#69](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/69) - Fix for broken deleteActionHandler in shadow API
- [#71](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/71) - Prevent messages on /update/accepted from incrementing shadowJsonVersionNum in delta
- [#73](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/73) - wait for all messages to be received in subscribe publish sample
- [#96](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/96) - destroy TLS instance even if disconnect send fails
- Fix for aws_iot_mqtt_resubscribe not properly resubscribing to all topics
- Update MbedTLS Network layer Readme to remove specific version link
- Fix for not Passing througheError code on aws_iot_shadow_connect failure
- Allow sending of SHADOW_JSON_OBJECT to the shadow
- Ignore delta token callback for metadata
- Fix infinite publish exiting early in subscribe publish sample

Improvements:

- Updated jsmn to latest commit
- Change default keepalive interval to 600 seconds

Pull requests:

- [#29](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/29) - three small fixes
- [#59](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/59) - Fixed MQTT header constructing and parsing
- [#88](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/88) - Fix username and password are confused
- [#78](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/78) - Fixed compilation warnings
- [#102](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/102) - Corrected markdown headers
- [#105](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/105) - Fixed warnings when compiling

## [2.1.1](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v2.1.1) (Sep 5, 2016)

Bugfixes/Improvements:

- Network layer interface improvements to address reported issues
- Incorporated GitHub pull request [#41](https://github.com/aws/aws-iot-device-sdk-embedded-c/pull/41)
- Bugfixes for issues [#36](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/36) and [#33](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/33)

## [2.1.0](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v2.1.0) (Jun 15, 2016)

New features:

- Added unit tests, further details can be found in the testing readme [here](https://github.com/aws/aws-iot-device-sdk-embedded-c/blob/master/tests/README.md/)
- Added sample to demonstrate building the SDK as library
- Added sample to demonstrate building the SDK in C++

Bugfixes/Improvements:

- Increased default value of Maximum Reconnect Wait interval to 128 secs
- Increased default value of MQTT Command Timeout in Shadow Connect to 20 secs
- Shadow null/length checks
- Client Id Length not passed correctly in shadow connect
- Add extern C to headers and source files, added sample to demonstrate usage with C++
- Delete/Accepted not being reported, callback added for delete/accepted
- Append IOT_ to all Debug macros (eg. DEBUG is now IOT_DEBUG)
- Fixed exit on error for subscribe_publish_sample

## [2.0.0](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v2.0.0) (April 28, 2016)

New features:

- Refactored API to make it instance specific. This is a breaking change in the API from 1.x releases because a Client Instance parameter had to be added to all APIs
- Added Threading library porting layer wrapper
- Added support for multiple connections from one application
- Shadows and connections de-linked, connection needs to be set up separately, can be used independently of shadow
- Added integration tests for testing SDK functionality

Bugfixes/Improvements:

- Yield cannot be called again while waiting for application callback to return
- Fixed issue with TLS layer handles not being cleaned up properly on connection failure reported [here](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/16)
- Renamed timer_linux.h to timer_platform.h as requested [here](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/5)
- Adds support for disconnect handler to shadow. A similar pull request can be found [here](https://github.com/aws/aws-iot-device-sdk-embedded-C/pull/9)
- New SDK folder structure, cleaned and simplified code structure
- Removed Paho Wrapper, Merge MQTT into SDK code, added specific error codes
- Refactored Network and Timer layer wrappers, added specific error codes
- Refactored samples and makefiles

## [1.1.2](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v1.1.2) (April 22, 2016)

Bugfixes/Improvements:

- Signature mismatch in MQTT library file fixed
- Makefiles have a protective target on the top to prevent accidental execution

## [1.1.1](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v1.1.1) (April 1, 2016)

Bugfixes/Improvements:

- Removing the Executable bit from all the files in the repository. Fixing [this](https://github.com/aws/aws-iot-device-sdk-embedded-C/issues/14) issue
- Refactoring MQTT client to remove declaration after statement warnings
- Fixing [this](https://forums.aws.amazon.com/thread.jspa?threadID=222467&tstart=0) bug


## [1.1.0](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v1.1.0) (February 10, 2016)
Features:

- Auto Reconnect and Resubscribe

Bugfixes/Improvements:

- MQTT buffer handling incase of bigger message
- Large timeout values converted to seconds and milliseconds
- Dynamic loading of Shadow parameters. Client ID and Thing Name are not hard-coded
- MQTT Library refactored


## [1.0.1](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v1.0.1) (October 21, 2015)

Bugfixes/Improvements:

- Paho name changed to Eclipse Paho
- Renamed the Makefiles in the samples directory
- Device Shadow - Delete functionality macro fixed
- `subscribe_publish_sample` updated

## [1.0.0](https://github.com/aws/aws-iot-device-sdk-embedded-C/releases/tag/v1.0.0) (October 8, 2015)

Features:

- Release to github
- SDK tarballs made available for public download

Bugfixes/Improvements:
- Updated API documentation

## 0.4.0 (October 5, 2015)

Features:

- Thing Shadow Actions - Update, Delete, Get for any Thing Name
- aws_iot_config.h file for easy configuration of parameters
- Sample app for talking with console's Interactive guide
- disconnect handler for the MQTT client library

Bugfixes/Improvements:

- mbedTLS read times out every 10 ms instead of hanging for ever
- mbedTLS handshake failure handled

## 0.3.0 (September 14, 2015)

Features:

- Testing with mbedTLS, prepping for relase

Bugfixes/Improvements:

- Refactored to break out timer and network interfaces

## 0.2.0 (September 2, 2015)

Features:

- Added initial Shadow implementation + example
- Added hostname verification to OpenSSL example
- Added iot_log interface
- Initial API Docs (Doxygen)

Bugfixes/Improvements:

- Fixed yield timeout
- Refactored APIs to pass by reference vs value

## 0.1.0 (August 12, 2015)

Features:

- Initial beta release
- MQTT Publish and Subscribe
- TLS mutual auth on linux with OpenSSL

Bugfixes/Improvements:
- N/A