Repository navigation
[0.9.0-rc1] Installed modules from GitHub Packages with upper case in name cannot be imported on Linux #1402
Copy link
Copy link
Open
Labels
Description
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
Install and import a module hosted on GitHub Packages that uses upper letters in the name:
Install-PSResource -Name 'lowercasemodule' # -Repository $packageSource.Name -Credential $cred -TrustRepository
Install-PSResource -Name 'PascalCaseModule' # -Repository $packageSource.Name -Credential $cred -TrustRepository
Import-Module 'lowercasemodule' -Force -Verbose
Import-Module 'PascalCaseModule' -Force -VerboseExpected behavior
lowercasemodule and PascalCaseModule module are installed and imported.Actual behavior
lowercasemodule module is installed and imported, while PascalCaseModule module is installed but fails to import.Error details
--- lowercasemodule install starts here:
VERBOSE: All paths to search: '/home/runner/.local/share/powershell/Modules'
VERBOSE: All paths to search: '/home/runner/.local/share/powershell/Scripts'
VERBOSE: Retrieving directories in the path '/home/runner/.local/share/powershell/Modules'
VERBOSE: Retrieving directories in the path '/home/runner/.local/share/powershell/Scripts'
VERBOSE: All paths to search: '/home/runner/.local/share/powershell/Modules/Microsoft.PowerShell.PSResourceGet'
VERBOSE: Attempting to search for packages in 'github/jtomkiew-mng'
WARNING: Installing dependencies is not currently supported for V3 server protocol repositories. The package will be installed without installing dependencies.
WARNING: Installing dependencies is not currently supported for V3 server protocol repositories. The package will be installed without installing dependencies.
VERBOSE: Installation source path is: '/tmp/454ce253-7bfd-49f0-a0fb-beb0939a336c/lowercasemodule/1.0.0'
VERBOSE: Installation destination path is: '/home/runner/.local/share/powershell/Modules/lowercasemodule/1.0.0'
VERBOSE: Attempting to move '/tmp/454ce253-7bfd-49f0-a0fb-beb0939a336c/lowercasemodule/1.0.0' to '/home/runner/.local/share/powershell/Modules/lowercasemodule/1.0.0'
VERBOSE: Successfully installed package 'lowercasemodule' to location '/home/runner/.local/share/powershell/Modules'
VERBOSE: Attempting to delete '/tmp/454ce253-7bfd-49f0-a0fb-beb0939a336c'
VERBOSE: Successfully deleted '/tmp/454ce253-7bfd-49f0-a0fb-beb0939a336c'
--- PascalCaseModule install starts here:
VERBOSE: All paths to search: '/home/runner/.local/share/powershell/Modules'
VERBOSE: All paths to search: '/home/runner/.local/share/powershell/Scripts'
VERBOSE: Retrieving directories in the path '/home/runner/.local/share/powershell/Modules'
VERBOSE: Retrieving directories in the path '/home/runner/.local/share/powershell/Scripts'
VERBOSE: All paths to search: '/home/runner/.local/share/powershell/Modules/lowercasemodule'
VERBOSE: All paths to search: '/home/runner/.local/share/powershell/Modules/Microsoft.PowerShell.PSResourceGet'
VERBOSE: Attempting to search for packages in 'github/jtomkiew-mng'
WARNING: Installing dependencies is not currently supported for V3 server protocol repositories. The package will be installed without installing dependencies.
VERBOSE: This resource is not a PowerShell package and will be installed to the modules path: /home/runner/.local/share/powershell/Modules.
WARNING: Installing dependencies is not currently supported for V3 server protocol repositories. The package will be installed without installing dependencies.
VERBOSE: Installation source path is: '/tmp/08f9852c-dbf5-46e7-bf5f-c1fe153822ba/pascalcasemodule/1.0.0'
VERBOSE: Installation destination path is: '/home/runner/.local/share/powershell/Modules/pascalcasemodule/1.0.0'
VERBOSE: Attempting to move '/tmp/08f9852c-dbf5-46e7-bf5f-c1fe153822ba/pascalcasemodule/1.0.0' to '/home/runner/.local/share/powershell/Modules/pascalcasemodule/1.0.0'
VERBOSE: Successfully installed package 'pascalcasemodule' to location '/home/runner/.local/share/powershell/Modules'
VERBOSE: Attempting to delete '/tmp/08f9852c-dbf5-46e7-bf5f-c1fe153822ba'
VERBOSE: Successfully deleted '/tmp/08f9852c-dbf5-46e7-bf5f-c1fe153822ba'
--- lowercasemodule import starts here:
VERBOSE: Loading module from path '/home/runner/.local/share/powershell/Modules/lowercasemodule/1.0.0/lowercasemodule.psd1'.
VERBOSE: Populating RepositorySourceLocation property for module lowercasemodule.
VERBOSE: Loading module from path '/home/runner/.local/share/powershell/Modules/lowercasemodule/1.0.0/lowercasemodule.psm1'.
VERBOSE: Exporting function 'Show-Bread'.
VERBOSE: Importing function 'Show-Bread'.
--- PascalCaseModule import starts here:
VERBOSE: Skipping the Version folder 1.0.0 under Module /home/runner/.local/share/powershell/Modules/pascalcasemodule as it does not have a valid module manifest file.
Import-Module: /home/runner/work/_temp/0491fe94-aa68-41da-a922-6f403c0b1a7e.ps1:30
Line |
30 | Import-Module 'PascalCaseModule' -Force -Verbose
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The specified module 'PascalCaseModule' was not loaded because no valid
| module file was found in any module directory.Environment data
See workflow:
https://github.com/jtomkiew-mng/pwsh-example-module/actions/runs/6161850021/workflow
See NuGet packages:
https://github.com/jtomkiew-mng/pwsh-example-module/tree/main/.nuget
See package sources:
https://github.com/jtomkiew-mng/pwsh-example-module/tree/main/lowercasemodule
https://github.com/jtomkiew-mng/pwsh-example-module/tree/main/PascalCaseModuleVisuals
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTODO
Activity
anamnavi commentedon Sep 12, 2023
Jakub Tomkiewicz (@jtomkiew-mng) thanks for sharing this! What distro of Linux are you using? What are the LANG and LC_ALL values?
jtomkiew-mng commentedon Sep 13, 2023
This is the output of
lsb_releaseand env varsLANG,LC_ALLfrom bash:I've been running this on GitHub
ubuntu-latestrunners so far.jtomkiew-mng commentedon Sep 13, 2023
In the logs when installing
PascalCaseModuleI've noticed this:And the installed module
PascalCaseModulecontents contain a.nuspecfile, whilelowercasemoduledoes not (those 2 modules should be identical other than the name and GUID).If it helps I'm attaching installed-modules.zip - zipped both modules as they were installed on that host (contents of
/home/runner/.local/share/powershell/Modules/minusPSResourceGetmodule).adityapatwardhan commentedon Sep 25, 2023
When the locale setting is C.UTF-8, it is meant to be case sensitive at the OS level. So, comparing a
Pandpwill show them as a different character even with case insensitive comparison. I recommend using a locale without aClikeen-US.UTF-8or using the exact case as for the module names.jtomkiew-mng commentedon Sep 26, 2023
I see no difference, what I did now:
en-US.UTF-8as Aditya Patwardhan (@adityapatwardhan) suggested,Using all lower case during install or import makes no difference in this case.
This is the latest workflow I've ran: https://github.com/jtomkiew-mng/pwsh-example-module/blob/6e88f68fbc37f5c1d6f603d62bec26ababde92be/.github/workflows/ci.yml
SydneyhSmith commentedon Sep 26, 2023
Re-opening to investigate, thanks for testing and letting us know that it repros Jakub Tomkiewicz (@jtomkiew-mng)
rickandersen-forte commentedon Oct 16, 2023
(Should this issue be set back to Open?)
jtomkiew-mng commentedon Oct 23, 2023
Boop, there's your feedback bot.
This issue stands as visible by the related issue #1446. Feel free to merge it if need be (in any direction).
Currently I'm using a crude workaround on version
1.0.0of PSResourceGet, that boils down to renaming the installed module directory to match the original case before importing.cf-rdegregory commentedon Jul 15, 2025
Hello,
This is still an active issue almost 2 years later and is very crude & annoying to work around.
Sydney Smith (@SydneyhSmith), can someone from the PowerShell team please take a look at this? :)
fix: PSResourceGet #1402 lowercase folder workaround for Smartagr
ephos commentedon Jun 9, 2026
Sydney Smith (@SydneyhSmith) Anam Navied (@anamnavi) still looking for anything on this as it appears to be abandoned. There is a pending PR in a duplicate issue #1446 that gets most of the way there in terms of a fix. Is this still on the PowerShell Team's radar?