chocolatey / cChoco

Community resource to manage Chocolatey
Apache License 2.0
154 stars 99 forks source link

Module Manifest/Nuspec Version Mismatch #161

Open jyonke opened 2 years ago

jyonke commented 2 years ago

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

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
FLeven commented 1 year ago

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.

jackmtpt commented 2 weeks ago

This is still an issue when using Nexus Repository