Provider version pinning #45
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR implements provider version pinning support with
stackql_manifest.ymlfile for stackql-deploy, a feature necessary for determinism and better maintainability in deployment environments. Prior to this update, we couldn't set the version of providers(aws, gcp, azure and etc), so we used to pull only latest version of providers.Fixes #43
1) Provider Version Pinning:
Test
As part of the testing process, I created a manifest file with various provider configurations, including providers with pinned versions, providers without specified versions, and invalid version numbers.

Manifest Configuration:
aws: v24.07.00246 (already installed, nothing happens)awscc: v24.03.00220 (not installed before, installs latest)google: No version specified (already installed, nothing happens)googleadmin: No version specified (not installed before, installs latest)azure: v23.01.00104 (not latest version but already installed, do nothing but throw warning not an error)azure_extras: v23.03.00121 (not latest version, installs specified version, install specified version)Build Results:
The outcomes were observed during the stackql-deploy build process:

This ensures that the version pinning functionality works as expected, with appropriate logging and error handling in place.
Checklist
Please make sure that the following criteria are met:
README.mdin the example project directory, which describes the stack and includes instructions to deploy or test.website/docs/template-library/..which gets published to stackql-deploy.io (optional)Additional Notes
Provider Version Regression is not supported yet:
There is currently no in-app(
stackql) way to revert to a previous provider version once a newer version has been installed. Users need to manually delete the current version folder outside of StackQL to switch back to an older version.Add any additional information or context that might help the reviewers.