Description
I appreciate what you have tried to do by using the AWS.Tools.Installer module as an easy way to install and update modules (likely in an attempt to correct some of what is wrong with the PowerShellGet way of managing installed modules), and I also appreciate that you have taken your uber-module and broken it up into smaller modules that will provide faster load times; however, you seem to be missing an easy, (as) fast (as possible) way to install all of the existing AWS.Tools.* modules.
In the background right now I am running the following command to install all AWS.Tools.* modules:
find-module AWS.Tools.* | where Name -notmatch 'Installer$' | install-module -Scope AllUsers
This is dreadfully slow, likely in part because each individual AWS.Tools.* module has dependencies on the same modules, which means looking up those dependencies for each module installed this way, one at a time, resulting in a terrible installation performance. I must pull down the entire module bundle so that I simply have what I need on my system when I need it for automation purposes. I am not willing to simply go back to an installer again and again for bite-sized installation of modules. If I go back to install something that is missing, I'll update the entire thing.
Note that, because of some of the challenges that are left unresolved with PowerShellGet, some of us "upgrade" modules and clean up older versions simply by removing what is installed on a system via recursive file system removal, and then re-installing the modules that we have removed. This is how I upgrade module bundles (Az, Microsoft.Graph, and now AWS.Tools), so that I don't have extra bits that I don't need kicking around.
I went looking in AWS.Tools.Installer for a way to install the entire module in a smart and fast way, but there doesn't seem to be such an option. I also went looking for a AWS.Tools module that would simply act as the link between all AWS.Tools.* modules, so that you could install AWS.Tools using Install-Module AWS.Tools
, and you would get the whole thing, in a manner smart enough to handle dependencies well, but there is no AWS.Tools module.
Describe the Feature
I want an easy and fast way to install all modules in the AWS.Tools bundle. Ideally I would like it to be via PowerShellGet, rather than an AWS.Tools.Installer module, so that I have a consistent method to deal with module management.
Is your Feature Request related to a problem?
Yes. It is difficult to install AWS.Tools.* modules in a manner consistent with other module bundles, in a performant (or at least as fast as possible) way.
Proposed Solution
Create an AWS.Tools module that is nothing but a manifest module, with each of the AWS.Tools.* modules listed in that manifest in the RequiredModules section.
Describe alternatives you've considered
I considered using AWS.Tools.Installer, but that wants me to list each and every module in the bundle. While I could write a script to build the list of module names and then paste that array into the command to install the modules, that work should not be necessary. Also, I prefer consistency, especially given that PowerShellGet is currently in pre-release for version 3, which should give us all a better foundation for managing modules -- hopefully one that is easier to contribute to as open source.
Additional Context
I believe I have provided enough detail already.
Environment
No specific requirements: just easy, fast installation of the AWS module bundle on a system where a lot of automation is run.
- 👋 I may be able to implement this feature request
-
⚠️ This feature might incur a breaking change
This is a 🚀 Feature Request