cChoco icon indicating copy to clipboard operation
cChoco copied to clipboard

Module Manifest/Nuspec Version Mismatch

Open jyonke opened this issue 4 years ago • 2 comments

Describe the bug Installing cChoco outside of the PSGallery results in an invalid module being installed

To Reproduce Steps to reproduce the behavior:

  1. Download the raw nupkg from the PSGallery.
  2. Upload to internal hosted repository (ex: Sonatype Nexus - Nuget v2).
  3. Register internal PowerShell repository .
  4. Install cChoco Module from internal repository.
  5. Import Module or Get-DSCResource

Expected behavior The Module imports with the proper version and is recognized as a valid DSCResource

Software (please complete the following information):

  • OS: Microsoft Windows 10 20H2 19042.1237
  • PowerShell Version: 5.1.19041. 1237
  • PowerShellGet Module: 1.0.0.1

Additional context This seems to be a result of the NuGet standards omitting the 4th version identifier if it is 0. The result is the wrong path being created when installing the module and then when importing the path and module manifest versions are not matched. If the Module Manifest is modified to version 2.5.0 or the path is updated to 2.5.0.0 the module imports as expected. A potential fix would be to limit the module manifest version to major.minor.patch if the revision value is 0, or increment the revision value to major.minor.patch.1 as the minimum version at build time.

https://docs.microsoft.com/en-us/nuget/concepts/package-versioning#normalized-version-numbers

Screenshots

Results From Internal Repository Internal Install

Results from PSGallery PSGallery Install

Import with Updated Module Manifest Import - Updated psd1

Current Module Manifest 2 5 0 0 psd1

Current Nuspec 2 5 0 Nuspec

jyonke avatar Sep 18 '21 16:09 jyonke

Could someone merge some PR's and make it a 2.5.0.1 ? I also like to install the module to some offline servers from an internal nexus oss.

FLeven avatar Oct 27 '22 06:10 FLeven