Skip to content

Update-PSModuleManifest -FunctionsToExport breaks PSAvoidTrailingWhitespace scriptanalyzer rule #1813

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
3 tasks done
JensGJ opened this issue Apr 1, 2025 · 0 comments
Open
3 tasks done

Comments

@JensGJ
Copy link

JensGJ commented Apr 1, 2025

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest released version
  • Search the existing issues.

Steps to reproduce

I use a build script to generate powershell modules. The tasks of the build script include updating the module manifest to list the FunctionsToExport - and a call to Invoke-ScriptAnalyzer to ensure that the code follows best practice.
The problem is that Update-PSModuleManifest -FunctionsToExport splits the array across multiple lines in the psd1 file in a way that violates the PSAvoidTrailingWhitespace rule from Invoke-Scriptanalyzer.

I discovered the behaviour in Update-ModuleManifest from PowerShellGet but I have verified that the newer Update-PSModuleManifest has the exact same behaviour

Steps to reproduce:
New-ModuleManifest -Path foo.psd1
Update-ModuleManifest -Path foo.psd1 -FunctionsToExport "Get-Something", "Convert-SomethingElse", "Add-MyFunction", "Remove-TheLineBreak"
Invoke-ScriptAnalyzer .\foo.psd1

Expected behavior

(no output)

Actual behavior

RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
PSAvoidTrailingWhitespace           Information  foo.psd1   72    Line has trailing whitespace

Error details

Environment data

>Get-Module Microsoft.PowerShell.PSResourceGet; $PSVersionTable | Format-Table

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Binary     1.1.1                 Microsoft.PowerShell.PSResourceGet  {Compress-PSResource, Find-PSResource, Get-InstalledPSResource, Get-PSResourceReposit…


Name                           Value
----                           -----
PSVersion                      7.5.0
PSEdition                      Core
GitCommitId                    7.5.0
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Visuals

Test scenario:
Image

Actual module file in VS Code - with the trailing whitespace highlighted:
Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants