JustinGrote / ModuleFast

A "fast and loose" way to install modules from Powershell Gallery quickly. Meant for CICD, not production
Other
74 stars 5 forks source link

Support for multiple Sources #84

Open wsmelton opened 2 months ago

wsmelton commented 2 months ago

When using private repositories along with PS Gallery the PSM1 file for this module shows a TODO item for supporting this configuration.

https://github.com/JustinGrote/ModuleFast/blob/13a69aac16d6a9613dadd504865c185c581a0d71/ModuleFast.psm1#L223

Just formally requesting that support 😜

JustinGrote commented 2 months ago

Right now multi-repo "support" is done by simply running the command multiple times with a different Source. The architecture makes this a little more difficult to implement and also do the dependency resolution.

wsmelton commented 2 months ago

That is not actually a valid solution if we have mixed references to modules in our RequiredModules.psd1 file. That would require we go through every repository we have in Git and update that file to include the repository property. Which I do not think your module supports use of that property.

So as-is if I pass in our internal URL (ProGet hosted in-house) it still fails because we have modules referencing PS Gallery and our internal feed. Call your module using one source it fails because the modules from the other source are not found.

JustinGrote commented 2 months ago

@wsmelton by design, you are not supposed to have all module dependencies stored in the same repository as the module. Publish-Module/Publish-PSResource enforces this, so I'm not sure how you ended up with modules in one repository with dependencies that are stored in another repository. I currently consider this an unsupported configuration, and implementing it would vastly slow down the performance of ModuleFast, but I can investigate potential paths to make it work.