ModuleBuilder icon indicating copy to clipboard operation
ModuleBuilder copied to clipboard

FileList property is not populated

Open kilasuit opened this issue 2 years ago • 4 comments

Loking at the code it seems that there is no attempt to populate the FileList property in the psd1

It would be useful for this property to be populated when using ModuleBuilder

kilasuit avatar Jan 21 '22 20:01 kilasuit

Does anything use that property?

Jaykul avatar Jan 22 '22 02:01 Jaykul

Also, I think we may want to that later in the process? If we add things like platyps generated maml to the module, we'd have to update-modulemanifest anyway...

gaelcolas avatar Jan 22 '22 12:01 gaelcolas

It is useful for metadata quering reasons as well as in security validation, though I expect both aren't all that wide spread in their use. However I've have had issues in making sure it can be populated via a number of methods and that afterwards that the module can be published using PowerShellGet v2.2.5 to a local fileshare based repo. I have had no issue in doing this before with modules that have nested folders and files so I know it can be done.

kilasuit avatar Jan 23 '22 18:01 kilasuit

In an earlier project, I used that value to restrict which files would be packaged into the module package so that you could, for instance, have a config file in the folder next to the module, and trust it wouldn't be included in the package. However, when Microsoft released PowerShellGet, they said that since most people were not setting the value, they were going to package the entire contents of the module folder, regardless of this setting, creating a catch-22 situation: nobody sets it, so they ignore it, so nobody sets it...

Since most people will need to use PowerShellGet to publish their modules, everyone now expects that behavior, and so (as far as I know) nothing in the OS, PowerShell, PowerShellGallery/PowerShellGet, or any antivirus actually references it either, as far as I know, perpetuating the fact that it can't be trusted for any particular use.

All of that said -- I have no problem with setting it although (to avoid the issue @gaelcolas raised), you would have to build any binaries or help files into your module source before running Build-Module (and be sure to set CopyPaths) in order for ModuleBuilder to know all the files that need to be listed.

Jaykul avatar Jan 23 '22 22:01 Jaykul