@@ -95,49 +95,50 @@ During the module manifest build process the following steps are performed:
95
95
1 . ` ExternalModuleDependencies ` is not automated. If specified in the source manifest, that value is used.
96
96
1 . ` HelpInfoURI ` is not automated. If specified in the source manifest, that value is used.
97
97
1 . Create a new manifest file in the output folder with the gathered information, which also generates a new ` GUID ` for the module.
98
- 1 . Format the manifest file using the ` Set-ModuleManifest ` function from the [ Utilities] ( https://github.com/PSModule/Utilities ) module.
99
98
100
- Linking the description to the module manifest file might show more how this works:
99
+ ### Sources for properties in the manifest file
100
+
101
+ Below is a list of properties in the module manifest file and their sources:
101
102
102
103
``` powershell
103
104
@{
104
- RootModule = 'Utilities.psm1' # Generated from the module name, <moduleName>.psm1
105
- ModuleVersion = '0.0.1' # Set during release using Publish- PSModule.
106
- CompatiblePSEditions = @() # Get from source files, requires -PSEdition <PSEdition-Name>, null if not provided .
107
- GUID = '<GUID>' # Generated when saving the manifest using New-ModuleManifest .
108
- Author = 'PSModule' # Derived from the GitHub Owner, unless specified in the source manifest.
109
- CompanyName = 'PSModule' # Derived from the GitHub Owner, unless specified in the source manifest.
110
- Copyright = '(c) 2024 PSModule. All rights reserved.'
105
+ RootModule = 'Utilities.psm1' # Generated as <ModuleName>.psm1 from the module name; can be overridden in the source manifest.
106
+ ModuleVersion = '0.0.1' # Temporary version set during the build; updated by Publish‑ PSModule during the release process .
107
+ CompatiblePSEditions = @() # Determined from #Requires -PSEdition statements in source files.; defaults to @('Core','Desktop') if none found .
108
+ GUID = '<GUID>' # New GUID generated by New‑ModuleManifest when the manifest is created .
109
+ Author = 'PSModule' # Derived from the GitHub owner unless specified in the source manifest.
110
+ CompanyName = 'PSModule' # Derived from the GitHub owner unless specified in the source manifest.
111
+ Copyright = '(c) 2024 PSModule. All rights reserved.' # Default template; overridden if specified in the source manifest.
111
112
Description = 'This is a module.' # Taken from the repository description or the source manifest.
112
- PowerShellVersion = '' # Derived from source files, requires -Version <N>[.<n>], null if not provided .
113
- PowerShellHostName = '' # Taken from the manifest file, null if not provided.
114
- PowerShellHostVersion = '' # Taken from the manifest file, null if not provided.
115
- DotNetFrameworkVersion = '' # Taken from the manifest file, null if not provided.
116
- ClrVersion = '' # Taken from the manifest file, null if not provided.
117
- ProcessorArchitecture = '' # Taken from the manifest file, null if not provided.
118
- RequiredModules = @() # Derived from source files, ensuring required modules are installed .
119
- RequiredAssemblies = @() # Collected from assemblies\ *.dll and modules\ *.dll.
120
- ScriptsToProcess = @() # Collected from scripts\ *.ps1 and classes\*.ps1 ordered by name .
121
- TypesToProcess = @() # Collected from *.Types.ps1xml files in the source folder.
122
- FormatsToProcess = @() # Collected from *.Format.ps1xml files in the source folder.
123
- NestedModules = @() # Collected from modules\* .psm1, modules\* .ps1, and modules\* .dll.
124
- FunctionsToExport = @() # Collected from public\ *.ps1 files.
125
- CmdletsToExport = @() # Taken from the manifest file, or empty if not provided .
126
- VariablesToExport = @() # Collected from variables\ public\ *.ps1.
127
- AliasesToExport = '*' # Derived from functions\ public\ *.ps1.
128
- DscResourcesToExport = @() # Collected from resources\ *.psm1.
129
- ModuleList = @() # A listing of all .\ *.psm1 files (informational only) .
130
- FileList = @() # A listing of all .\* files (informational only) .
113
+ PowerShellVersion = '' # Derived from #Requires -Version statements in source files; blank if none .
114
+ PowerShellHostName = '' # Preserved from the source manifest if provided; otherwise omitted .
115
+ PowerShellHostVersion = '' # Preserved from the source manifest if provided; otherwise omitted .
116
+ DotNetFrameworkVersion = '' # Preserved from the source manifest if provided; otherwise omitted .
117
+ ClrVersion = '' # Preserved from the source manifest if provided; otherwise omitted .
118
+ ProcessorArchitecture = '' # Preserved from the source manifest if provided; otherwise omitted .
119
+ RequiredModules = @() # Gathered from #Requires -Modules statements in source files .
120
+ RequiredAssemblies = @() # Collected from assemblies/ *.dll and modules/ *.dll (depth = 1) .
121
+ ScriptsToProcess = @() # Collected from scripts/ *.ps1, loaded alphabetically into the caller session .
122
+ TypesToProcess = @() # Collected from *.Types.ps1xml files anywhere in the source folder.
123
+ FormatsToProcess = @() # Collected from *.Format.ps1xml files anywhere in the source folder.
124
+ NestedModules = @() # Collected from modules/* ( .psm1, .ps1 or .dll one level down) .
125
+ FunctionsToExport = @() # Collected from functions/ public/ *.ps1 files.
126
+ CmdletsToExport = @() # Preserved from the source manifest if provided; empty otherwise .
127
+ VariablesToExport = @() # Collected from variables/ public/ *.ps1 files .
128
+ AliasesToExport = '*' # Generated from functions/ public/ *.ps1.
129
+ DscResourcesToExport = @() # Collected from resources/ *.psm1 files .
130
+ ModuleList = @() # Informational list of all additional *.psm1 files in the module .
131
+ FileList = @() # Informational list of all files in the module source folder .
131
132
PrivateData = @{
132
133
PSData = @{
133
- Tags = @() # Derived from repository topics and compatibility tags.
134
- LicenseUri = '' # Generated public link to .\ LICENSE.
135
- ProjectUri = '' # Generated public link to the GitHub Repository .
136
- IconUri = '' # Derived from .\ icon\icon.png.
137
- ReleaseNotes = '' # To be updated during release.
138
- Prerelease = '' # Normalized version of the branch name, updated during release.
139
- RequireLicenseAcceptance = $false
140
- ExternalModuleDependencies = @()
134
+ Tags = @() # Generated from repository topics plus compatibility tags.
135
+ LicenseUri = '' # Public link to LICENSE file (or value from source manifest) .
136
+ ProjectUri = '' # Public link to the GitHub repository (or value from source manifest) .
137
+ IconUri = '' # Public link to icon\icon.png (or value from source manifest) .
138
+ ReleaseNotes = '' # Not automated; supply via PR or release description .
139
+ Prerelease = '' # Managed by Publish‑PSModule; populated during release.
140
+ RequireLicenseAcceptance = $false # Defaults to $false unless specified in the source manifest.
141
+ ExternalModuleDependencies = @() # Not automated; preserved if present in the source manifest.
141
142
ExperimentalFeatures = @(
142
143
@{
143
144
Name = "SomeExperimentalFeature"
@@ -147,8 +148,8 @@ Linking the description to the module manifest file might show more how this wor
147
148
}
148
149
OtherKeys = @{}
149
150
}
150
- HelpInfoURI = '' # Taken from the source manifest if provided .
151
- DefaultCommandPrefix = '' # Taken from the source manifest if provided .
151
+ HelpInfoURI = '' # Not automated; preserved if provided in the source manifest.
152
+ DefaultCommandPrefix = '' # Not automated; preserved if provided in the source manifest.
152
153
}
153
154
```
154
155
0 commit comments