aws / aws/aws-tools-for-powershell
AWS Tools Installer V2 Development Tracker
- Dominant language
- C#
- Stars
- 298
- Forks
- 102
- Avg merge
- 7d 17m
- Merged PRs (30d)
- 2
Description
# AWS Tools Installer V2 Development Tracker
This issue is for tracking the development of AWS Tools Installer V2 announced in [this preview blog post](https://aws.amazon.com/blogs/developer/aws-tools-installer-v2-preview/) and [this GA blog post](https://aws.amazon.com/blogs/developer/aws-tools-installer-v2-is-now-generally-available/). V2 is a major version change that improves performance and adds new capabilities while introducing some breaking changes.
## Breaking Changes
- AWS Tools Installer V2 uses the endpoint `https://sdk-for-net.amazonwebservices.com/ps/` to download zip files. You might need to update your firewall rules to allow access to this endpoint.
- The parameters `-Proxy` and `-ProxyCredential` have been removed. Please configure proxy settings for your environment if necessary.
- The `-Force` parameter has been removed for `Uninstall-AWSToolsModule`. Using `Install-AWSToolsModule -Force` will confirm that any existing module will be overwritten even if it has the same name and version compared to the module that was downloaded. To skip interactive confirmation prompts when using cmdlets, use the following syntax: `-Confirm:$false`.
- The parameters `-SkipUpdate`, `-SkipPublisherCheck`, and `-AllowClobber` are now ignored and have no effect. While these parameters are still accepted for backward compatibility, they no longer perform any function. Scripts relying on `-SkipUpdate` to prevent updates of other installed modules will now have all installed modules updated.
**Note:** The original behavior of cmdlets from V1 is preserved in the additional cmdlets: `Install-AWSToolsModuleV1`, `Uninstall-AWSToolsModuleV1`, and `Update-AWSToolsModuleV1`. An alias can be defined for each cmdlet so that all legacy scripts running on a system map back to the original functionality after upgrading to V2, for example:
```
Set-Alias -Name Install-AWSToolsModule -Value Install-AWSToolsModuleV1
```
## Installing AWS Tools Installer
```
Install-Module -Name AWS.Tools.Installer -MinimumVersion 2.0.0
```
You can also download [a zip file containing AWS Tools Installer V2]( https://sdk-for-net.amazonwebservices.com/ps/installer/v2/latest/AWS.Tools.Installer.zip).
Note:
> After downloading the ZIP file and before extracting the contents, you might need to unblock it. This is typically done by opening the properties of the file, viewing the General tab, and selecting the Unblock checkbox if one exists.
>
> If the ZIP file needs to be unblocked but you don't do so, you might receive errors similar to the following: "Import-Module : Could not load file or assembly".
## Recommended Usage
We recommend installing all AWS Tools for PowerShell modules together as a complete set so that commands are available for immediate use and to avoid module import conflicts that arise when all modules have not been updated to the same version.
```
Install-AWSToolsModule -Version 5.*
```
AWS Tools Installer V2 also introduces the self-update commands `Install-AWSToolsInstaller` and `Uninstall-AWSToolsInstaller` so that the installer module itself is easier to update.
## Protecting Production Workloads
To avoid breaking changes, please make sure that your production workloads are configured to NOT install major version updates:
```
Install-Module -Name AWS.Tools.Installer -MaximumVersion '1.9.999'
```
## 2.0.2
- GA version offers the same features introduced in the preview build and further performance optimization including parallel extraction of modules.
## 2.0.0-preview001
- **CloudFront Distribution**: Standard PowerShell installation commands like `Install-Module` and `Install-PSResource` download modules that are packaged individually. To maximize performance when installing hundreds of modules, AWS Tools Installer V2 installs modules that are packaged together from Amazon CloudFront.
- **Offline Installation Support**: A new parameter called `-SourceZipPath` enables installation from locally-staged files in offline or air-gapped environments.
- **Prerelease Installation**: A new parameter called `-Prerelease` enables installation of preview builds of AWS Tools for PowerShell and AWS Tools Installer.
- **Installer Update Notifications**: When importing AWS Tools Installer, it writes a message to the host to notify users if a new version is available.
- **Standard Removal Support**: AWS Tools Installer now adds metadata to enable module removal through standard PowerShell commands (`Uninstall-Module` and `Uninstall-PSResource`).
- **Legacy Module Cleanup**: AWS Tools Installer V2 supports uninstalling the legacy AWSPowerShell and AWSPowerShell.NetCore modules from your PSModulePaths. Unlike these legacy modules, which load everything at once, AWS Tools for PowerShell modules import quickly and automatically as needed.
- Example: `Uninstall-AWSToolsModule -CleanUpLegacyScope 'CurrentUser'`
- Example: `Install-AWSToolsModule -CleanUpLegacyScope 'CurrentUser'`
- Fixed issue where latest modules would no longer be installed on systems where discontinued modules were installed. V2 now successfully updates all modules that are not discontinued.
- Fixed issue where during the daily release window, installations sometimes failed because modules were still being published. V2 avoids this by only installing versions of modules that have completed the publishing process.
## Review Help Documentation
Once installed, run the following PowerShell command to list AWS Tools Installer commands.
```
Get-Command -Module AWS.Tools.Installer
```
Use the `Get-Help` command to view the documentation for a particular AWS Tools Installer command. For example:
```
Get-Help Install-AWSToolsModule -Full
```
## Provide Feedback
We're looking forward to hearing what you think about the new version of AWS Tools Installer. Please share any feedback you have in this issue.
## Related Issues
- **Faster way to install all AWS modules** - [#172](https://github.com/aws/aws-tools-for-powershell/issues/172): Installer V2 downloads a zip containing all modules instead of downloading a package for each module. Modules uninstallation time is also improved by recursively removing files. We acknowledge that this requires using AWS Tools Installer, so if you are still looking for a solution that doesn't require a dedicated installer module, please comment on this this issue or the Preview tracker.
- **AWS.Tools.Installer does not warn about new version available** - [#321](https://github.com/aws/aws-tools-for-powershell/issues/321): The installer now displays update notifications when importing the module.
- **Update-AWSToolsModule does not upgrade to latest version when discontinued modules are installed** - [#340](https://github.com/aws/aws-tools-for-powershell/issues/340): V2 correctly identifies and updates all non-discontinued modules regardless of discontinued module presence.
- **New releases cause Install-AWSToolsModule to fail** - [#380](https://github.com/aws/aws-tools-for-powershell/issues/380): Installing from CloudFront eliminates failures during daily release windows when modules are still being published to PSGallery.
Contributor guide
Research direction
No source file or test is named; start by reading the linked preview and GA blog posts and review the documented AWS Tools Installer commands with Get-Command and Get-Help. This tracker covers the whole V2 development and feedback process, so it does not define a bounded change or a specific completion condition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, powershell
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100