[release/v7.6] Mirror .NET/runtime ICU version range in PowerShell#26563
Merged
daxian-dbw merged 1 commit intoPowerShell:release/v7.6from Dec 2, 2025
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR backports a critical packaging improvement that replaces hardcoded ICU version lists with a dynamic range calculation following .NET runtime's ICU version policy. The change generates ICU dependency ranges from version 60 to 106 (build version 76 + 30 headroom), providing approximately 15 years of forward compatibility and reducing maintenance burden.
Key Changes
- Replaced hardcoded list of 14 ICU versions with dynamic range calculation using
$MaxICUVersion..$MinICUVersion - Added comprehensive inline documentation explaining the version range policy and rationale
- Applied .NET runtime's proven approach (minimum version 60, build version 76, +30 headroom for future releases)
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
daxian-dbw
approved these changes
Dec 2, 2025
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.
Backport of #26304 to release/v7.6
Triggered by @adityapatwardhan on behalf of @kasperk81
Original CL Label: CL-BuildPackaging
/cc @PowerShell/powershell-maintainers
Impact
REQUIRED: Choose either Tooling Impact or Customer Impact (or both). At least one checkbox must be selected.
Tooling Impact
This backports a critical fix for PowerShell Linux packaging that mirrors .NET runtime's ICU version range policy. This change replaces hardcoded ICU version lists with a dynamic range calculation (ICU 60-106) that provides 15 years of forward compatibility. This ensures Debian packages flow smoothly across ICU version updates and prevents packaging failures.
Customer Impact
Regression
REQUIRED: Check exactly one box.
This is not a regression.
Testing
The change affects packaging dependency calculation. Testing verified the generated ICU version range matches expected values and maintains compatibility with supported ICU versions. The logic follows the proven .NET runtime approach.
Risk
REQUIRED: Check exactly one box.
This is a packaging/build system change that affects dependency resolution for Linux distributions. While it improves compatibility and reduces maintenance burden, any packaging changes carry inherent risk. However, the approach is proven in .NET runtime and provides better long-term stability than hardcoded version lists.