Skip to content

Commit fa2ea2a

Browse files
📝 [Docs]: Update module manifest properties section in README for clarity and accuracy
1 parent 6e2ea9e commit fa2ea2a

File tree

1 file changed

+39
-38
lines changed

1 file changed

+39
-38
lines changed

‎README.md

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -95,49 +95,50 @@ During the module manifest build process the following steps are performed:
9595
1. `ExternalModuleDependencies` is not automated. If specified in the source manifest, that value is used.
9696
1. `HelpInfoURI` is not automated. If specified in the source manifest, that value is used.
9797
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.
9998

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:
101102

102103
```powershell
103104
@{
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.
111112
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.
131132
PrivateData = @{
132133
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.
141142
ExperimentalFeatures = @(
142143
@{
143144
Name = "SomeExperimentalFeature"
@@ -147,8 +148,8 @@ Linking the description to the module manifest file might show more how this wor
147148
}
148149
OtherKeys = @{}
149150
}
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.
152153
}
153154
```
154155

0 commit comments

Comments
 (0)