Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use product-versions.json instead of latest-aziot-*.json (#7270)
This change updates the iotedge CLI and the packages release pipeline to query/update product-versions.json instead of latest-aziot-edge.json and latest-aziot-identity-service.json. The previous json files were specific to a particular release channel + version (1.4 LTS), whereas product-versions.json represents the current state of supported products and components across all stable and LTS releases. This is allow the CLI and our releases to operate smoothly during the coming phase where both 1.5 LTS and 1.6 LTS are supported side by side. CLI details: - Added a dependency on the semver crate to the iotedge CLI - Updated the iotedge CLI to use and document a new vanity link for product-versions.json : https://aka.ms/azure-iotedge-latest-versions - Updated the iotedge CLI to parse product-versions.json and extract the latest version of aziot-edge and aziot-identity-service. It uses the MAJOR.MINOR version of the currently installed CLI to determine which product versions (e.g., 1.4.x vs. 1.5.x) to get. - Tested the CLI manually with/without the `--expected-aziot-edged-version` option against various versions of product-versions.json Release pipeline details: - Renamed update_latest_version_json() function in udpateLatestVersion.sh to update_product_versions_json() - Added product-versions.jq alongside updateLatestVersion.sh to hold all the custom filters we use to query and update versions in the package release pipeline - Currently, updateLatestVersion.sh determines the new product version by (1) grabbing the MAJOR.MINOR product version from the branch name, and (2) querying GitHub for the latest matching version. Since 1.5 will be serviced out of the main branch, I changed the logic to get the new product version from the release tag in the Azure/iotedge repo, and the current product version from the release tag in Azure/azure-iotedge. - Removed some functions in updateLatestVersion.sh that were no longer needed since we don't query GitHub for release versions - Added logic in updateLatestVersion.sh to use the filters in product-versions.jq to get and update information in product-versions.json. This logic also supports creating a new product in product-versions.json, which will allow for releasing 1.5 LTS side-by-side with 1.4 LTS. - Tested product-versions.jq directly and via updateLatestVersion.sh, all from my desktop. *.jq files support some sort of unit testing, which I'd like to look into at a future date. ## Azure IoT Edge PR checklist:
- Loading branch information