diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..decab8c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,24 @@ +name: CI Checks +on: + push: + pull_request: + workflow_dispatch: +jobs: + git-secrets: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - name: Checkout awslabs/git-secrets + uses: actions/checkout@v2 + with: + repository: awslabs/git-secrets + ref: master + path: git-secrets + - name: Install git-secrets + run: cd git-secrets && sudo make install && cd .. + - name: Run git-secrets + run: | + git-secrets --register-aws + git-secrets --scan diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f9030c8 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,98 @@ +name: Release automation + +on: + workflow_dispatch: + inputs: + commit_id: + description: 'Commit ID/branch to tag and create a release for' + required: true + version_number: + description: 'Release Version (Eg, 202012.00-LTS)' + required: true + +jobs: + tag-commit: + name: Tag commit + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.inputs.commit_id }} + - name: Configure git identity + run: | + git config --global user.name "Release Workflow" + - name: Tag Commit and Push to remote + run: | + git tag ${{ github.event.inputs.version_number }} -a -m "Release ${{ github.event.inputs.version_number }}" + git push origin --tags + - name: Verify tag on remote + run: | + git tag -d ${{ github.event.inputs.version_number }} + git remote update + git checkout tags/${{ github.event.inputs.version_number }} + git diff ${{ github.event.inputs.commit_id }} tags/${{ github.event.inputs.version_number }} + create-zip: + needs: tag-commit + name: Create ZIP and verify package for release asset. + runs-on: ubuntu-latest + steps: + - name: Install ZIP tools + run: sudo apt-get install zip unzip + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.inputs.commit_id }} + path: FreeRTOS-LTS + submodules: recursive + - name: Checkout disabled submodules + run: | + cd FreeRTOS-LTS + git submodule update --init --checkout --recursive + - name: Create ZIP + run: | + zip -r FreeRTOSv${{ github.event.inputs.version_number }}.zip FreeRTOS-LTS -x "*.git*" + ls ./ + - name: Validate created ZIP + run: | + mkdir zip-check + mv FreeRTOSv${{ github.event.inputs.version_number }}.zip zip-check + cd zip-check + unzip FreeRTOSv${{ github.event.inputs.version_number }}.zip -d FreeRTOSv${{ github.event.inputs.version_number }} + ls FreeRTOSv${{ github.event.inputs.version_number }} + diff -r -x "*.git*" FreeRTOSv${{ github.event.inputs.version_number }}/FreeRTOS-LTS/ ../FreeRTOS-LTS/ + - name: Create artifact of ZIP + uses: actions/upload-artifact@v2 + with: + name: FreeRTOSv${{ github.event.inputs.version_number }}.zip + path: zip-check/FreeRTOSv${{ github.event.inputs.version_number }}.zip + create-release: + needs: create-zip + name: Create Release and Upload Release Asset + runs-on: ubuntu-latest + steps: + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.event.inputs.version_number }} + release_name: ${{ github.event.inputs.version_number }} + body: ${{ github.event.inputs.version_number }} Release + draft: false + prerelease: false + - name: Download ZIP artifact + uses: actions/download-artifact@v2 + with: + name: FreeRTOSv${{ github.event.inputs.version_number }}.zip + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./FreeRTOSv${{ github.event.inputs.version_number }}.zip + asset_name: FreeRTOSv${{ github.event.inputs.version_number }}.zip + asset_content_type: application/zip diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..5cb6a00 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,42 @@ +[submodule "coreMQTT"] + path = FreeRTOS/coreMQTT + branch = main + url = https://github.com/FreeRTOS/coreMQTT.git +[submodule "coreHTTP"] + path = FreeRTOS/coreHTTP + branch = main + url = https://github.com/FreeRTOS/coreHTTP.git +[submodule "coreJSON"] + path = FreeRTOS/coreJSON + branch = main + url = https://github.com/FreeRTOS/coreJSON.git +[submodule "corePKCS11"] + path = FreeRTOS/corePKCS11 + branch = main + url = https://github.com/FreeRTOS/corePKCS11.git +[submodule "device-shadow-for-aws-iot-embedded-sdk"] + path = aws/device-shadow-for-aws-iot-embedded-sdk + branch = main + url = https://github.com/aws/device-shadow-for-aws-iot-embedded-sdk.git +[submodule "FreeRTOS-Plus-TCP"] + path = FreeRTOS/FreeRTOS-Plus-TCP + url = https://github.com/FreeRTOS/FreeRTOS-Plus-TCP +[submodule "backoffAlgorithm"] + path = FreeRTOS/backoffAlgorithm + branch = main + url = https://github.com/FreeRTOS/backoffAlgorithm.git +[submodule "FreeRTOS/FreeRTOS-Kernel"] + path = FreeRTOS/FreeRTOS-Kernel + url = https://github.com/FreeRTOS/FreeRTOS-Kernel.git +[submodule "aws/jobs-for-aws-iot-embedded-sdk"] + path = aws/jobs-for-aws-iot-embedded-sdk + branch = main + url = https://github.com/aws/Jobs-for-AWS-IoT-embedded-sdk.git +[submodule "aws/device-defender-for-aws-iot-embedded-sdk"] + path = aws/device-defender-for-aws-iot-embedded-sdk + branch = main + url = https://github.com/aws/Device-Defender-for-AWS-IoT-embedded-sdk.git +[submodule "aws/ota-for-aws-iot-embedded-sdk"] + path = aws/ota-for-aws-iot-embedded-sdk + branch = main + url = https://github.com/aws/ota-for-aws-iot-embedded-sdk.git diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2ca7830 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,37 @@ +# ChangeLog for FreeRTOS 202012-LTS + +## 202012.05-LTS (September 2022) +Update the following libraries in the Long Term Support (LTS) patch release: +* [FreeRTOS-Kernel V10.4.3 LTS Patch 3](https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/V10.4.3-LTS-Patch-3) + +## 202012.04-LTS (February 2022) +Update the following libraries in the Long Term Support (LTS) patch release: +* [FreeRTOS-Plus-TCP V2.3.2 LTS Patch 2](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/V2.3.2-LTS-Patch-2) + +## 202012.03-LTS (November 2021) +Update the following libraries in the Long Term Support (LTS) patch release: +* [FreeRTOS-Kernel V10.4.3 LTS Patch 2](https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/V10.4.3-LTS-Patch-2) + +## 202012.02-LTS (September 2021) +Update the following libraries in the Long Term Support (LTS) patch release: +* [FreeRTOS-Kernel V10.4.3 LTS Patch 1](https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/V10.4.3-LTS-Patch-1) +* [FreeRTOS-Plus-TCP v2.3.2 LTS Patch 1](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/V2.3.2-LTS-Patch-1) + +## 202012.01-LTS (March 2021) + +Add the following libraries to the Long Term Support (LTS) release: +* [AWS IoT Device Defender v1.1.0](https://github.com/aws/Device-Defender-for-AWS-IoT-embedded-sdk/tree/v1.1.0) +* [AWS IoT Jobs v1.1.0](https://github.com/aws/Jobs-for-AWS-IoT-embedded-sdk/tree/v1.1.0) +* [AWS IoT Over-the-air Update v3.0.0](https://github.com/aws/ota-for-aws-iot-embedded-sdk/tree/v3.0.0) + +## 202012.00-LTS (December 2020) + +Long Term Support (LTS) release of the following libraries: +* [FreeRTOS-Kernel V10.4.3](https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/V10.4.3) +* [FreeRTOS-Plus-TCP v2.3.2](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/V2.3.2) +* [coreMQTT v1.1.0](https://github.com/FreeRTOS/coreMQTT/tree/v1.1.0) +* [coreHTTP v2.0.0](https://github.com/FreeRTOS/coreHTTP/tree/v2.0.0) +* [corePKCS11 v3.0.0](https://github.com/FreeRTOS/corePKCS11/tree/v3.0.0) +* [coreJSON v3.0.0](https://github.com/FreeRTOS/coreJSON/tree/v3.0.0) +* [backoffAlgorithm v1.0.0](https://github.com/FreeRTOS/backoffAlgorithm/tree/v1.0.0) +* [AWS IoT Device Shadow v1.0.2](https://github.com/aws/Device-Shadow-for-AWS-IoT-embedded-sdk/tree/v1.0.2) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f494a37..e8eff46 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,18 +1,6 @@ # Contributing Guidelines -Thank you for your interest in contributing to our project. This is a closed repo so all contributors are directed to the development repo at http://github.com/FreeRTOS/FreeRTOS. New Features will NOT be accepted on this repo. Please direct feature requests to the development repo. Most issues will be addressed as part of the LTS. Please report issues on LTS releases in this repo. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest features. - -When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already -reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: - -* A reproducible test case or series of steps -* The version of our code being used -* Any modifications you've made relevant to the bug -* Anything unusual about your environment or deployment +This is a closed hub repo consisting of submodules. If you have issues to report or features to suggest, please contribute to the repo identified by the appropriate submodule. ## Code of Conduct diff --git a/FreeRTOS/FreeRTOS-Kernel b/FreeRTOS/FreeRTOS-Kernel new file mode 160000 index 0000000..0437c82 --- /dev/null +++ b/FreeRTOS/FreeRTOS-Kernel @@ -0,0 +1 @@ +Subproject commit 0437c8257aaeed4ecf0c50d2e1c7e8e48c4b799e diff --git a/FreeRTOS/FreeRTOS-Plus-TCP b/FreeRTOS/FreeRTOS-Plus-TCP new file mode 160000 index 0000000..80bbfdf --- /dev/null +++ b/FreeRTOS/FreeRTOS-Plus-TCP @@ -0,0 +1 @@ +Subproject commit 80bbfdf028b69a8e9c173830e3afdb1a2908a8fb diff --git a/FreeRTOS/backoffAlgorithm b/FreeRTOS/backoffAlgorithm new file mode 160000 index 0000000..a702914 --- /dev/null +++ b/FreeRTOS/backoffAlgorithm @@ -0,0 +1 @@ +Subproject commit a70291444c556bc3392bf9b7b60626b93b120319 diff --git a/FreeRTOS/coreHTTP b/FreeRTOS/coreHTTP new file mode 160000 index 0000000..b349f89 --- /dev/null +++ b/FreeRTOS/coreHTTP @@ -0,0 +1 @@ +Subproject commit b349f89e67f5feef51438dc09ed89959dedc18d5 diff --git a/FreeRTOS/coreJSON b/FreeRTOS/coreJSON new file mode 160000 index 0000000..26fe707 --- /dev/null +++ b/FreeRTOS/coreJSON @@ -0,0 +1 @@ +Subproject commit 26fe707548fc4e975c453aa4475ae056bb70247b diff --git a/FreeRTOS/coreMQTT b/FreeRTOS/coreMQTT new file mode 160000 index 0000000..ff9830a --- /dev/null +++ b/FreeRTOS/coreMQTT @@ -0,0 +1 @@ +Subproject commit ff9830a338b6a759c5574f991b02d6f99abadc42 diff --git a/FreeRTOS/corePKCS11 b/FreeRTOS/corePKCS11 new file mode 160000 index 0000000..cc4129e --- /dev/null +++ b/FreeRTOS/corePKCS11 @@ -0,0 +1 @@ +Subproject commit cc4129e5c44430e94dec5b82bacc4ce1491c61ac diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 1bb4f21..0000000 --- a/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..9cf1062 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,19 @@ +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 07b7841..1b80e42 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,29 @@ +## Overview +FreeRTOS offers feature stability with long term support (LTS) releases. FreeRTOS LTS libraries come with security updates and critical bug fixes to the FreeRTOS kernel and IoT libraries listed below for two years, and are maintained by AWS for the benefit of the FreeRTOS community. With FreeRTOS LTS, you get a complete set of libraries needed to build secure connected IoT and embedded products. Long term support helps reduce maintenance and testing costs associated with updating libraries on your devices already in production. + +AWS also offers FreeRTOS Extended Maintenance Plan (EMP) that provides you with security patches and critical bug fixes on your chosen FreeRTOS LTS version for up to an additional 10 years. With FreeRTOS EMP, your FreeRTOS-based long-lived devices can rely on a version that has feature stability and receives security updates for years. You receive timely notification of upcoming patches on FreeRTOS libraries, so you can plan the deployment of security patches on your IoT devices. To learn more about FreeRTOS EMP, see the [FreeRTOS Features page](https://aws.amazon.com/freertos/features/). + ## FreeRTOS/FreeRTOS Long Term Support -This repository is the home of the FreeRTOS/FreeRTOS Long Term Support (LTS) releases. -Each release is an independent branch on the main repo. The "default" branch will be kept pointing to the most recent LTS release. +Libraries in this GitHub branch (also listed below) are part of the [FreeRTOS 202012.05 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202012-LTS) patch release. Learn more at https://freertos.org/lts-libraries.html. -The most up-to-date version of FreeRTOS/FreeRTOS can be found in the development repo: http://github.com/FreeRTOS/FreeRTOS +| Library | Version | LTS Until | LTS Repo URL | +|------------------------- |---------------------|------------|--------------------------------------------------------------------------- | +| FreeRTOS Kernel | 10.4.3-LTS-Patch-3 | 03/31/2023 | https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/V10.4.3-LTS-Patch-3 | +| FreeRTOS-Plus-TCP | 2.3.2-LTS-Patch-2 | 03/31/2023 | https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/V2.3.2-LTS-Patch-2 | +| coreMQTT | 1.1.0 | 03/31/2023 | https://github.com/FreeRTOS/coreMQTT/tree/v1.1.0 | +| coreHTTP | 2.0.0 | 03/31/2023 | https://github.com/FreeRTOS/coreHTTP/tree/v2.0.0 | +| corePKCS11 | 3.0.0 | 03/31/2023 | https://github.com/FreeRTOS/corePKCS11/tree/v3.0.0 | +| coreJSON | 3.0.0 | 03/31/2023 | https://github.com/FreeRTOS/coreJSON/tree/v3.0.0 | +| backoffAlgorithm | 1.0.0 | 03/31/2023 | https://github.com/FreeRTOS/backoffAlgorithm/tree/v1.0.0 | +| AWS IoT Device Shadow | 1.0.2 | 03/31/2023 | https://github.com/aws/Device-Shadow-for-AWS-IoT-embedded-sdk/tree/v1.0.2 | +| AWS IoT Device Defender | 1.1.0 | 03/31/2023 | https://github.com/aws/Device-Defender-for-AWS-IoT-embedded-sdk/tree/v1.1.0 | +| AWS IoT Jobs | 1.1.0 | 03/31/2023 | https://github.com/aws/Jobs-for-AWS-IoT-embedded-sdk/tree/v1.1.0 | +| AWS IoT Over-the-air Update | 3.0.0 | 03/31/2023 | https://github.com/aws/ota-for-aws-iot-embedded-sdk/tree/v3.0.0 | + +## FreeRTOS LTS Versioning and Patches + +FreeRTOS LTS releases use a date-based versioning scheme (YYYYMM) followed by a patch sequential number (.XX). For example, FreeRTOS 202012.02 LTS means the second patch to the December-2020 FreeRTOS LTS release. You can review the [CHANGELOG](./CHANGELOG.md) and subscribe to [GitHub notifications](https://docs.github.com/en/free-pro-team@latest/github/managing-subscriptions-and-notifications-on-github/about-notifications) to receive information on patches or other updates to this repository. ## Security @@ -11,5 +31,5 @@ See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more inform ## License -This library is licensed under the MIT License. See the LICENSE file. +This library is licensed under the MIT License. See the [LICENSE](LICENSE.md) file. diff --git a/aws/device-defender-for-aws-iot-embedded-sdk b/aws/device-defender-for-aws-iot-embedded-sdk new file mode 160000 index 0000000..548b468 --- /dev/null +++ b/aws/device-defender-for-aws-iot-embedded-sdk @@ -0,0 +1 @@ +Subproject commit 548b4688b26d16d0e6134d7d93dcbae103994e40 diff --git a/aws/device-shadow-for-aws-iot-embedded-sdk b/aws/device-shadow-for-aws-iot-embedded-sdk new file mode 160000 index 0000000..508ce43 --- /dev/null +++ b/aws/device-shadow-for-aws-iot-embedded-sdk @@ -0,0 +1 @@ +Subproject commit 508ce43a2257be5d38bfd2a778607fa921cb2dac diff --git a/aws/jobs-for-aws-iot-embedded-sdk b/aws/jobs-for-aws-iot-embedded-sdk new file mode 160000 index 0000000..1978844 --- /dev/null +++ b/aws/jobs-for-aws-iot-embedded-sdk @@ -0,0 +1 @@ +Subproject commit 19788445bca7f8f85167c83ac12379d3d1022295 diff --git a/aws/ota-for-aws-iot-embedded-sdk b/aws/ota-for-aws-iot-embedded-sdk new file mode 160000 index 0000000..666241d --- /dev/null +++ b/aws/ota-for-aws-iot-embedded-sdk @@ -0,0 +1 @@ +Subproject commit 666241d0f643b07d5146a3715b649d80f8135e0b diff --git a/manifest.yml b/manifest.yml new file mode 100644 index 0000000..9ea9a32 --- /dev/null +++ b/manifest.yml @@ -0,0 +1,62 @@ +name : "FreeRTOS-LTS" +version: "202012.05-LTS" +description: |- + "Hub Repo for FreeRTOS Long Term Support kernel and libraries" +dependencies: + - name: "FreeRTOS-Kernel" + version: "V10.4.3-LTS-Patch-3" + repository: + type: "git" + url: "https://github.com/FreeRTOS/FreeRTOS-Kernel.git" + - name: "FreeRTOS-Plus-TCP" + version: "V2.3.2-LTS-Patch-2" + repository: + type: "git" + url: "https://github.com/FreeRTOS/FreeRTOS-Plus-TCP.git" + - name: "coreJSON" + version: "V3.0.0" + repository: + type: "git" + url: "https://github.com/FreeRTOS/coreJSON.git" + - name: "coreHTTP" + version: "v2.0.0" + repository: + type: "git" + url: "https://github.com/FreeRTOS/coreHTTP.git" + - name: "coreMQTT" + version: "v1.1.0" + repository: + type: "git" + url: "https://github.com/FreeRTOS/coreMQTT.git" + - name: "corePKCS11" + version: "v3.0.0" + repository: + type: "git" + url: "https://github.com/FreeRTOS/corePKCS11.git" + - name: "device-shadow" + version: "v1.0.2" + repository: + type: "git" + url: "https://github.com/aws/Device-Shadow-for-AWS-IoT-embedded-sdk.git" + - name: "backoffAlgorithm" + version: "v1.0.0" + repository: + type: "git" + url: "https://github.com/FreeRTOS/backoffAlgorithm" + - name: "device-defender" + version: "v1.1.0" + repository: + type: "git" + url: "https://github.com/aws/Device-Defender-for-AWS-IoT-embedded-sdk.git" + - name: "jobs" + version: "v1.1.0" + repository: + type: "git" + url: "https://github.com/aws/Jobs-for-AWS-IoT-embedded-sdk.git" + - name: "ota" + version: "v3.0.0" + repository: + type: "git" + url: "https://github.com/aws/ota-for-AWS-IoT-embedded-sdk.git" + +license: "MIT"