Substitute use of IsPathFullyQualified to restore Windows PowerShell compatibility#60
Merged
devblackops merged 2 commits intopsake:mainfrom Sep 16, 2022
Merged
Conversation
The Initialize-PSBuild function was not compatible with .NET Framework / PowerShell 5.1 due to the use of the System.IO.Path.IsPathFullyQualified method. I changed the function to check if the value of OutDir already started with BHProjectPath rather than testing if OutDir was a fully qualified path on it's own. This seems to have solved the issue and tests are passing.
Member
|
I was using a dummy VM for a demo (on how to use Stucco) and it looks like I ran into the same issue. |
Member
|
Thanks for the fix @joshooaj! |
LarryWisherMan
left a comment
There was a problem hiding this comment.
Appears to fix error thrown when using Powershell 5.1
Merged
HeyItsGilbert
added a commit
that referenced
this pull request
Oct 6, 2024
### Changed - Bump Pester to latest 5.6.1 ### Fixed - [**#52**](#52) Pester object wasn't being passed back after running tests, causing the Pester task to never fail (via [@webtroter](https://github.com/webtroter)) - [**#55**](#55) Add `-Module` parameter to `Build-PSBuildUpdatableHelp` (via [@IMJLA](https://github.com/IMJLA)) - [**#60**](#60) Fix Windows PowerShell compatibility in `Initialize-PSBuild` (via [@joshooaj](https://github.com/joshooaj)) - [**#62**](#62) Fix code coverage output fle format not working (via [@OpsM0nkey](https://github.com/OpsM0nkey))
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
The
Initialize-PSBuildfunction was not compatible with .NET Framework / PowerShell 5.1 due to the use of theSystem.IO.Path.IsPathFullyQualified()method, introduced with the fix for #27. I changed the function to check if the value of OutDir already started with BHProjectPath rather than testing if OutDir was a fully qualified path on its own.This seems to have solved the issue and tests are passing. Also, changing the value of
$PSBPreference.Build.OutDirseems to result in the same behavior before and after the change introduced in this PR, though I don't think any tests were introduced to specifically test the original fix so I'm not 100% certain this is the best solution.Related Issue
Issue #53
Motivation and Context
I still regularly work with PowerShell 5.1 due to legacy .NET Framework dependencies that I'm required to use. I began to use the Stucco module for setting up my modules, but I cannot call
.\build.ps1from Windows PowerShell because the PowerShellBuildInitialize-PSBuildcommand calls a method that is not available in .NET Framework. I am now using this modified version of PowerShellBuild.How Has This Been Tested?
I verified that I can build modules using the Stucco template on Windows using Windows PowerShell, and PowerShell 7, as well as Ubuntu on WSL2 using PowerShell 7. I tested these builds with and without a custom
$PSBPreference.Build.OutDirvalue set in my psakefile.Types of changes
Checklist: