Fix handling of numerical configuration properties across PS5 and PS7#262
Merged
HowardWolosky merged 1 commit intomicrosoft:masterfrom Jul 10, 2020
Merged
Conversation
ConvertFrom-Json defaults numbers to different types depending on the PowerShell version. PS5 defaults numbers to [Int32] while PS7 defaults numbers to [int64], but both versions default to [Int32] in [PSCustomObjects]. Due to this, if you had a number config value saved, on PS7 it would be ignored and the default value would be used because the expected and actual types wouldn't match. I've updated `Resolve-PropertyValue` to have equivalence logic for number types to avoid this issue.
Contributor
Author
|
/azp run PowerShellForGitHub-CI |
|
Azure Pipelines successfully started running 1 pipeline(s). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
ConvertFrom-Jsondefaults numbers to different types depending on the PowerShell version.PS5 defaults numbers to
[Int32]while PS7 defaults numbers to[Int64], but both versions default to[Int32]in a[PSCustomObject].Due to this, if you had a number config value saved, on PS7 it would be ignored and the default value would be used because the expected and actual types wouldn't match.
I've updated
Resolve-PropertyValueto have equivalence logic for number types to avoid this issue.Issues Fixed
n/a
References
n/a
Checklist
Comment-based help added/updated, including examples.New/changed code continues to support the pipeline.Changes to the manifest file follow the manifest guidance.Unit tests were added/updated and are all passing. See testing guidelines. This includes making sure that all pipeline input variations have been covered.Relevant usage examples have been added/updated in USAGE.md.If desired, ensure your name is added to our Contributors list