Bring changes from v7.5.0-preview.5 Release Branch to Master (#24369)

* Merged PR 32689: Fix typo in release-MakeBlobPublic.yml

Fix typo in release-MakeBlobPublic.yml

* Merged PR 32696: Fixed Test Scenario for Compress-PSResource

The test was failing because a relative path was provided to parameter -DestinationPath.
Should update Compress-PSResource to accept relative paths for -DestinationPath.

----
#### AI description  (iteration 1)
#### PR Classification
Bug fix for a failing test scenario.

#### PR Summary
This pull request fixes the test scenario for the `Compress-PSResource` function.
- `Microsoft.PowerShell.PSResourceGet.Tests.ps1`: Updated the path resolution for `$PublishedNupkgs` using `Resolve-Path` and added a missing line break in the test for compressing a module.

* Merged PR 32709: Changelog for v7.5.0-preview.5

Added 7.5.0-preview.5 change log

----
Changelog update for the new preview release.
This pull request updates the changelog for the v7.5.0-preview.5 release, documenting breaking changes, engine updates, new features, and other improvements.
- `ConvertTo-Json`: Treat large Enum values as numbers.
- `Import-Module`: Fix processor architecture validation.
- `Resolve-Path` and `Convert-Path`: Add `-Force` parameter to support wildcard hidden files.
- `PSResourceGet` test: Fix cleanup.
- Various build and packaging improvements, including updates to dependencies and test scenarios.

* added ks2 to release pipeline

* Merged PR 32752: Copy global tools to static site

Rather than an intermediate folder that must be manually copied into the static site.

----
#### AI description  (iteration 1)
#### PR Classification
Code modification to enhance functionality.

#### PR Summary
This pull request updates the release pipeline to copy global tools to a static site.
- Changes in `/.pipelines/templates/release-MakeBlobPublic.yml` to set `prefix` and `destinationPrefix` for blob copying.
- Adjusted destination container name to use `$web` and updated blob naming conventions.

* Merged PR 32759: Switch to single quotes for container name in global tool copy

#### AI description  (iteration 1)
#### PR Classification
Code cleanup

#### PR Summary
This pull request updates the container name string to use single quotes for consistency.
- Changes in `/.pipelines/templates/release-MakeBlobPublic.yml` to switch `$destinationContainerName` from double quotes to single quotes.

* Added condition for make blob public

* moved conditional from global tools to copy

* conditional as a paramter instead of var

* removed dependency

* blob folder name to release Tag

---------

Co-authored-by: Aditya Patwardhan <adityap@microsoft.com>
Co-authored-by: Justin Chung <t-juchung@microsoft.com>
Co-authored-by: Justin Chung <chungjustin@microsoft.com>
Co-authored-by: Patrick Meinecke <pmeinecke@microsoft.com>
Co-authored-by: Travis Plunk <travis.plunk@microsoft.com>
This commit is contained in:
Justin Chung 2024-10-03 16:32:33 -05:00 committed by GitHub
parent 4a129cd955
commit 2d092b1ea6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 223 additions and 21 deletions

View File

@ -21,6 +21,10 @@ parameters: # parameters are shown up in ADO UI in a build queue time
displayName: Skip PMC Publish
type: boolean
default: false
- name: SkipPSInfraInstallers
displayName: Skip Copying Archives and Installers to PSInfrastructure Public Location
type: boolean
default: false
variables:
- name: CDP_DEFINITION_BUILD_COUNT
@ -75,6 +79,12 @@ resources:
extends:
template: v2/OneBranch.Official.CrossPlat.yml@templates
parameters:
# still using KS2 because we are not yet using a Box Product Deployment
featureFlags:
LinuxHostVersion:
Network: KS2
WindowsHostVersion:
Network: KS2
cloudvault:
enabled: false
globalSdl:
@ -257,6 +267,8 @@ extends:
dependsOn: UpdateChangeLog
jobs:
- template: /.pipelines/templates/release-MakeBlobPublic.yml@self
parameters:
SkipPSInfraInstallers: ${{ parameters.SkipPSInfraInstallers }}
- stage: PublishGitHubRelease
displayName: Publish GitHub Release

View File

@ -1,3 +1,9 @@
parameters:
- name: SkipPSInfraInstallers
displayName: Skip Copying Archives and Installers to PSInfrastructure Public Location
type: boolean
default: false
jobs:
- template: /.pipelines/templates/approvalJob.yml@self
parameters:
@ -9,6 +15,7 @@ jobs:
- job: PSInfraReleaseBlobPublic
displayName: Copy release to PSInfra storage
dependsOn: CopyReleaseBlobApproval
condition: and(succeeded(), ne('${{ parameters.SkipPSInfraInstallers }}', true))
pool:
type: windows
@ -36,9 +43,9 @@ jobs:
CreateJson: yes
UseJson: no
- pwsh: |
Get-ChildItem Env: | Out-String -width 9999 -Stream | write-Verbose -Verbose
displayName: 'Capture Environment Variables'
- pwsh: |
Get-ChildItem Env:
displayName: 'Capture Environment Variables'
- pwsh: |
$azureRmModule = Get-InstalledModule AzureRM -ErrorAction SilentlyContinue -Verbose
@ -99,7 +106,6 @@ jobs:
parameters:
displayName: Approve Copy Global tool packages to PSInfra storage
jobName: CopyBlobApproval
dependsOnJob: PSInfraReleaseBlobPublic
instructions: |
Approval for Copy global tool packages to PSInfra storage
@ -110,14 +116,14 @@ jobs:
type: windows
variables:
- group: 'PSInfraStorage'
- group: 'Azure Blob variable group'
- name: ob_outputDirectory
value: '$(Build.ArtifactStagingDirectory)/ONEBRANCH_ARTIFACT'
- name: ob_sdl_tsa_configFile
value: $(Build.SourcesDirectory)\PowerShell\.config\tsaoptions.json
- name: ob_sdl_credscan_suppressionsFile
value: $(Build.SourcesDirectory)\PowerShell\.config\suppress.json
- group: 'PSInfraStorage'
- group: 'Azure Blob variable group'
- name: ob_outputDirectory
value: '$(Build.ArtifactStagingDirectory)/ONEBRANCH_ARTIFACT'
- name: ob_sdl_tsa_configFile
value: $(Build.SourcesDirectory)\PowerShell\.config\tsaoptions.json
- name: ob_sdl_credscan_suppressionsFile
value: $(Build.SourcesDirectory)\PowerShell\.config\suppress.json
steps:
- checkout: self
@ -156,9 +162,11 @@ jobs:
inline: |
$sourceStorageAccountName = '$(StorageAccount)'
$sourceContainerName = '$(AzureVersion)-nuget'
$prefix = 'globaltool'
$destinationStorageAccountName = '$(PSInfraStorageAccount)'
$destinationContainerName = "tool"
$destinationContainerName = '$web'
$destinationPrefix = 'tool/$(Version)'
$sourceContext = New-AzStorageContext -StorageAccountName $sourceStorageAccountName
Write-Verbose -Verbose "Source context: $($sourceContext.BlobEndPoint)"
@ -166,19 +174,18 @@ jobs:
$destinationContext = New-AzStorageContext -StorageAccountName $destinationStorageAccountName
Write-Verbose -Verbose "Destination context: $($destinationContext.BlobEndPoint)"
$prefix = 'globaltool'
$blobs = Get-AzStorageBlob -Context $sourceContext -Container $sourceContainerName -Prefix $prefix
Write-Verbose -Verbose "Blobs found in $sourceContainerName"
$blobs.Name | Write-Verbose -Verbose
Write-Verbose -Verbose "Copying blobs from $sourceContainerName to $destinationContainerName"
Write-Verbose -Verbose "Copying blobs from $sourceContainerName to $destinationContainerName/$destinationPrefix"
foreach ($blob in $blobs) {
$sourceBlobName = $blob.Name
Write-Verbose -Verbose "sourceBlobName = $sourceBlobName"
$destinationBlobName = $sourceBlobName -replace "$prefix", '$(Version)'
$destinationBlobName = $sourceBlobName -replace "$prefix", $destinationPrefix
Write-Verbose -Verbose "destinationBlobName = $destinationBlobName"
Copy-AzStorageBlob -SourceContext $sourceContext -DestinationContext $destinationContext -SrcContainer $sourceContainerName -SrcBlob $sourceBlobName -DestContainer $destinationContainerName -DestBlob $destinationBlobName -Force -Verbose -Confirm:$false

View File

@ -77,7 +77,7 @@ jobs:
$params = @{
ReleaseTag = "$(ReleaseTag)"
AadClientId = "$(PmcCliClientID)"
BlobFolderName = "$(AzureVersion)"
BlobFolderName = "$(ReleaseTag)"
LTS = $metadata.LTSRelease.Latest
ForProduction = $true
SkipPublish = $${{ parameters.skipPublish }}

View File

@ -1,5 +1,188 @@
# Preview Changelog
## [7.5.0-preview.5] - 2024-10-01
### Breaking Changes
- Treat large `Enum` values as numbers in `ConvertTo-Json` (#20999) (#24304)
### Engine Updates and Fixes
- Fix how processor architecture is validated in `Import-Module` (#24265) (#24317)
### Experimental Features
### General Cmdlet Updates and Fixes
- Add `-Force` parameter to `Resolve-Path` and `Convert-Path` cmdlets to support wildcard hidden files (#20981) (#24344)
- Add telemetry to track the use of features (#24247) (#24331)
- Treat large `Enum` values as numbers in `ConvertTo-Json` (#20999) (#24304)
- Make features `PSCommandNotFoundSuggestion`, `PSCommandWithArgs`, and `PSModuleAutoLoadSkipOfflineFiles` stable (#24246) (#24310)
- Handle global tool when prepending `$PSHome` to `PATH` (#24228) (#24307)
### Tests
- Fix cleanup in `PSResourceGet` test (#24339) (#24345)
### Build and Packaging Improvements
<details>
<summary>
<p>Bump .NET SDK to 9.0.100-rc.1.24452.12</p>
</summary>
<ul>
<li>Fixed Test Scenario for <code>Compress-PSResource</code> (Internal 32696)</li>
<li>Add back local NuGet source for test packages (Internal 32693)</li>
<li>Fix typo in <code>release-MakeBlobPublic.yml</code> (Internal 32689)</li>
<li>Copy to static site instead of making blob public (#24269) (#24343)</li>
<li>Update <code>Microsoft.PowerShell.PSResourceGet</code> to <code>1.1.0-preview2</code> (#24300) (#24337)</li>
<li>Remove the MD5 branch in the strong name signing token calculation (#24288) (#24321)</li>
<li>Update experimental-feature json files (#24271) (#24319)</li>
<li>Add updated <code>libicu</code> dependency for Debian packages (#24301) (#24324)</li>
<li>Add mapping to <code>AzureLinux</code> repo (#24290) (#24322)</li>
<li>Update and add new NuGet package sources for different environments. (#24264) (#24316)</li>
<li>Bump .NET 9 to <code>9.0.100-rc.1.24452.12</code> (#24273) (#24320)</li>
<li>Make some release tests run in a hosted pools (#24270) (#24318)</li>
<li>Do not build the exe for Global tool shim project (#24263) (#24315)</li>
<li>Delete <code>assets/AppImageThirdPartyNotices.txt</code> (#24256) (#24313)</li>
<li>Create new pipeline for compliance (#24252) (#24312)</li>
<li>Add specific path for issues in tsaconfig (#24244) (#24309)</li>
<li>Use Managed Identity for APIScan authentication (#24243) (#24308)</li>
<li>Add Windows signing for <code>pwsh.exe</code> (#24219) (#24306)</li>
<li>Check <code>Create and Submit</code> in vPack build by default (#24181) (#24305)</li>
</ul>
</details>
### Documentation and Help Content
- Delete demos directory (#24258) (#24314)
[7.5.0-preview.5]: https://github.com/PowerShell/PowerShell/compare/v7.5.0-preview.4...v7.5.0-preview.5
## [7.5.0-preview.4] - 2024-08-28
### Engine Updates and Fixes
- RecommendedAction: Explicitly start and stop ANSI Error Color (#24065) (Thanks @JustinGrote!)
- Improve .NET overload definition of generic methods (#21326) (Thanks @jborean93!)
- Optimize the `+=` operation for a collection when it's an object array (#23901) (Thanks @jborean93!)
- Allow redirecting to a variable as experimental feature `PSRedirectToVariable` (#20381)
### General Cmdlet Updates and Fixes
- Change type of `LineNumber` to `ulong` in `Select-String` (#24075) (Thanks @Snowman-25!)
- Fix `Invoke-RestMethod` to allow `-PassThru` and `-Outfile` work together (#24086) (Thanks @jshigetomi!)
- Fix Hyper-V Remoting when the module is imported via implicit remoting (#24032) (Thanks @jborean93!)
- Add `ConvertTo-CliXml` and `ConvertFrom-CliXml` cmdlets (#21063) (Thanks @ArmaanMcleod!)
- Add `OutFile` property in `WebResponseObject` (#24047) (Thanks @jshigetomi!)
- Show filename in `Invoke-WebRequest -OutFile -Verbose` (#24041) (Thanks @jshigetomi!)
- `Set-Acl`: Do not fail on untranslatable SID (#21096) (Thanks @jborean93!)
- Fix the extent of the parser error when a number constant is invalid (#24024)
- Fix `Move-Item` to throw error when moving into itself (#24004)
- Fix up .NET method invocation with `Optional` argument (#21387) (Thanks @jborean93!)
- Fix progress calculation on `Remove-Item` (#23869) (Thanks @jborean93!)
- Fix WebCmdlets when `-Body` is specified but `ContentType` is not (#23952) (Thanks @CarloToso!)
- Enable `-NoRestart` to work with `Register-PSSessionConfiguration` (#23891)
- Add `IgnoreComments` and `AllowTrailingCommas` options to `Test-Json` cmdlet (#23817) (Thanks @ArmaanMcleod!)
- Get-Help may report parameters with `ValueFromRemainingArguments` attribute as pipeline-able (#23871)
### Code Cleanup
<details>
<summary>
<p>We thank the following contributors!</p>
<p>@xtqqczze, @eltociear</p>
</summary>
<ul>
<li>Minor cleanup on local variable names within a method (#24105)</li>
<li>Remove explicit <code>IDE1005</code> suppressions (#21217) (Thanks @xtqqczze!)</li>
<li>Fix a typo in <code>WebRequestSession.cs</code> (#23963) (Thanks @eltociear!)</li>
</ul>
</details>
### Tools
- devcontainers: mount workspace in /PowerShell (#23857) (Thanks @rzippo!)
### Tests
- Add debugging to the MTU size test (#21463)
### Build and Packaging Improvements
<details>
<summary>
<p>We thank the following contributors!</p>
<p>@bosesubham2011</p>
</summary>
<ul>
<li>Update third party notices (Internal 32128)</li>
<li>Update cgmanifest (#24163)</li>
<li>Fixes to Azure Public feed usage (#24149)</li>
<li>Add support for back porting PRs from GitHub or the Private Azure Repos (#20670)</li>
<li>Move to <code>9.0.0-preview.6.24327.7</code> (#24133)</li>
<li>update path (#24134)</li>
<li>Update to the latest NOTICES file (#24131)</li>
<li>Fix semver issue with updating cgmanifest (#24132)</li>
<li>Add ability to capture MSBuild Binary logs when restore fails (#24128)</li>
<li>add ability to skip windows stage (#24116)</li>
<li>chore: Refactor Nuget package source creation to use New-NugetPackageSource function (#24104)</li>
<li>Make Microsoft feeds the default (#24098)</li>
<li>Cleanup unused csproj (#23951)</li>
<li>Add script to update SDK version during release (#24034)</li>
<li>Enumerate over all signed zip packages (#24063)</li>
<li>Update metadata.json for PowerShell July releases (#24082)</li>
<li>Add macos signing for package files (#24015)</li>
<li>Update <code>install-powershell.sh</code> to support azure-linux (#23955) (Thanks @bosesubham2011!)</li>
<li>Skip build steps that do not have exe packages (#23945)</li>
<li>Update metadata.json for PowerShell June releases (#23973)</li>
<li>Create <code>powershell.config.json</code> for <code>PowerShell.Windows.x64</code> global tool (#23941)</li>
<li>Fix error in the vPack release, debug script that blocked release (#23904)</li>
<li>Add vPack release (#23898)</li>
<li>Fix exe signing with third party signing for WiX engine (#23878)</li>
<li>Update wix installation in CI (#23870)</li>
<li>Add checkout to fix TSA config paths (#23865)</li>
<li>Merge the <code>v7.5.0-preview.3</code> release branch to GitHub master branch</li>
<li>Update <code>metadata.json</code> for the <code>v7.5.0-preview.3</code> release (#23862)</li>
<li>Bump <code>PSResourceGet</code> to <code>1.1.0-preview1</code> (#24129)</li>
<li>Bump <code>github/codeql-action</code> from 3.25.8 to 3.26.0 (#23953) (#23999) (#24053) (#24069) (#24095) (#24118)</li>
<li>Bump <code>actions/upload-artifact</code> from 4.3.3 to 4.3.6 (#24019) (#24113) (#24119)</li>
<li>Bump <code>agrc/create-reminder-action</code> from 1.1.13 to 1.1.15 (#24029) (#24043)</li>
<li>Bump <code>agrc/reminder-action</code> from 1.0.12 to 1.0.14 (#24028) (#24042)</li>
<li>Bump <code>super-linter/super-linter</code> from 5.7.2 to 6.8.0 (#23809) (#23856) (#23894) (#24030) (#24103)</li>
<li>Bump <code>ossf/scorecard-action</code> from 2.3.1 to 2.4.0 (#23802) (#24096)</li>
<li>Bump <code>actions/dependency-review-action</code> from 4.3.2 to 4.3.4 (#23897) (#24046)</li>
<li>Bump <code>actions/checkout</code> from 4.1.5 to 4.1.7 (#23813) (#23947)</li>
<li>Bump <code>github/codeql-action</code> from 3.25.4 to 3.25.8 (#23801) (#23893)</li>
</ul>
</details>
### Documentation and Help Content
- Update docs sample nuget.config (#24109)
- Update Code of Conduct and Security Policy (#23811)
- Update working-group-definitions.md for the Security WG (#23884)
- Fix up broken links in Markdown files (#23863)
- Update Engine Working Group Members (#23803) (Thanks @kilasuit!)
- Remove outdated and contradictory information from `README` (#23812)
[7.5.0-preview.4]: https://github.com/PowerShell/PowerShell/compare/v7.5.0-preview.3...v7.5.0-preview.4
## [7.5.0-preview.3] - 2024-05-16
### Breaking Changes
@ -201,7 +384,7 @@
### Breaking Changes
- Fix `-OlderThan` and `-NewerThan` parameters for `Test-Path` when using `PathType` and date range (#20942) (Thanks @ArmaanMcleod!)
- Previously `-OlderThan` would be ignored if specified together
- Previously `-OlderThan` would be ignored if specified together
- Change `New-FileCatalog -CatalogVersion` default to 2 (#20428) (Thanks @ThomasNieto!)
### General Cmdlet Updates and Fixes

View File

@ -197,15 +197,15 @@ Describe "PSResourceGet - Module tests" -tags "Feature" {
}
It "Should compress a module into a .nupkg" {
Compress-PSResource -Path $TestModule -DestinationPath $PublishedNupkgs
Compress-PSResource -Path $TestModule -DestinationPath (Resolve-Path -Path $PublishedNupkgs)
$modulePublished = Get-ChildItem $TestModuleNupkgPath
$modulePublished | Should -Not -BeNullOrEmpty
$modulePublished.Name | Should -Be $TestModuleNupkgName
}
It "Should publish compressed .nupkg" {
Compress-PSResource -Path $TestModule -DestinationPath $PublishedNupkgs
Compress-PSResource -Path $TestModule -DestinationPath (Resolve-Path -Path $PublishedNupkgs)
Publish-PSResource -NupkgPath $TestModuleNupkgPath -Repository $LocalRepoName