You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Stop nagging about "latest" when I'm on "latest LTS" #20210
As a developer stuck on LTS for compatibility with Microsoft's GitHub and Azure Pipeline agents, I don't want to be nagged about versions I'm not allowed to use.
I really do want to know when there's a new LTS release, but the current implementation means that every time I open a new terminal tab, I'm being nagged to change my mind about using the LTS release!
I've had to disable the POWERSHELL_UPDATECHECK for my sanity, but what I really want is to set it to "LTS"
When a user is on an LTS release, only nag if they are not on the latest LTS.
When a new LTS release comes out, notify about the LTS update, and casually remind us of the other upgrade options.
When a LTS release is end-of-life (and there's a new major (minor) LTS version) then you should make the nag specifically about that and make it very clear what the current LTS release is.
Reacted by pctekki, Michael Klement, Shawn Melton, Thomas Nieto, David Sass, soredake, William Marshall, János de Vries and Adriano Cahete
P.S. Using an Environment Variable to control update checks in an app that supports side-by-side and portable installs just does not work as intended. I'm currently running LTS and Preview versions side-by-side at work. I'm avoiding the current release because of compatibility issues with the LTS -- so I use Preview as my daily driver, and test everything in LTS.
Personally, I can make this work by setting the system environment POWERSHELL_UPDATECHECK = 0 and then setting it to LTS or Default as appropriate in my windows terminal profile (which requires editing the .json), but this doesn't seem like something anyone should need to do -- especially since PowerShell itself controls the defaults in those terminal configs.
Default is the same as not defining POWERSHELL_UPDATECHECK:
LTS releases notify of updates to lts and stable releases
Stable releases notify of updates to stable releases
Preview/RC releases notify of updates to stable and preview releases
LTS only notifies of updates to long-term-servicing (LTS) releases
nag specifically about EOL of LTS release
Were the Default code modified to correspond with the above adding a notification of EOL might complicate things.
Of course adding to Default such an LTS entry should be consistent with at minimum this among the OP's criteria.
When a new LTS release comes out, notify about the LTS update, and casually remind us of the other upgrade options.
Starting from bash here are current messages using an extracted powershell-7.2.13-linux-x64.tar.gz.
not on the latest LTS
not using an environment variable or setting to POWERSHELL_UPDATECHECK="Default"
A new PowerShell stable release is available: v7.3.7
Upgrade now, or check out the release page at:
https://aka.ms/PowerShell-Release?tag=v7.3.7
setting to POWERSHELL_UPDATECHECK="LTS"
A new PowerShell LTS release is available: v7.2.14
Upgrade now, or check out the release page at:
https://aka.ms/PowerShell-Release?tag=v7.2.14
Starting from bash here is a current message using an extracted powershell-7.4.0-preview.4-linux-x64.tar.gz.
not on the latest Preview
setting to POWERSHELL_UPDATECHECK="Default"
A new PowerShell preview release is available: v7.4.0-preview.5
Upgrade now, or check out the release page at:
https://aka.ms/PowerShell-Release?tag=v7.4.0-preview.5
Starting from bash here is a current message using an extracted powershell-7.1.0-rc.2-linux-x64.tar.gz.
not on the latest RC
setting to POWERSHELL_UPDATECHECK="Default"
A new PowerShell preview release is available: v7.4.0-preview.5
Upgrade now, or check out the release page at:
https://aka.ms/PowerShell-Release?tag=v7.4.0-preview.5
Preview/RC releases don't appear to notify of updates to GA releases.
$ pushd /tmp/PowerShell-Docs/reference/7.3/Microsoft.PowerShell.Core/About
/tmp/PowerShell-Docs/reference/7.3/Microsoft.PowerShell.Core/About ~
$ ed -s about_Update_Notifications.md <<<'31,44p'
PowerShell only return notifications for updated GA releases. Preview and
Release Candidate (RC) releases notify of updates to preview, RC, and GA
releases.
The update notification behavior can be changed using the
`POWERSHELL_UPDATECHECK` environment variable. The following values are
supported:
- `Off` turns off the update notification feature
- `Default` is the same as not defining `POWERSHELL_UPDATECHECK`:
- GA releases notify of updates to GA releases
- Preview/RC releases notify of updates to GA and preview releases
- `LTS` only notifies of updates to long-term-servicing (LTS) GA releases
$ popd
~
$
spaette the problem is that I can't easily set the Stable and the LTS versions to only check their own updates and their own updates only without doing weird stuff with short cuts or by editing the Windows Terminal config.
Simply put, this is wrong:
Default is the same as not defining POWERSHELL_UPDATECHECK:
LTS releases notify of updates to lts and stable releases
I don't need LTS to tell me there is a higher version number Stable release.
The problem is that LTS is checking both versions.
Absent looking at the code it would seem from the documentation that channels and endpoints are utilised.
$ pushd /tmp/PowerShell-Docs/reference/7.3/Microsoft.PowerShell.Core/About
/tmp/PowerShell-Docs/reference/7.3/Microsoft.PowerShell.Core/About ~
$ ed -s about_Update_Notifications.md <<<'29,33p'
By default, PowerShell subscribes to one of two different notification channels
depending on its version/branch. Supported, Generally Available (GA) versions of
PowerShell only return notifications for updated GA releases. Preview and
Release Candidate (RC) releases notify of updates to preview, RC, and GA
releases.
$ ed -s about_Update_Notifications.md <<<'45,50p'
The following endpoints are currently used for determining the latest version of
each channel:
- `LTS`: https://aka.ms/pwsh-buildinfo-lts
- `Stable`: https://aka.ms/pwsh-buildinfo-stable
- `Preview`: https://aka.ms/pwsh-buildinfo-preview
$ popd
~
$
Activity
Jaykul commentedon Sep 6, 2023
P.S. Using an Environment Variable to control update checks in an app that supports side-by-side and portable installs just does not work as intended. I'm currently running LTS and Preview versions side-by-side at work. I'm avoiding the current release because of compatibility issues with the LTS -- so I use Preview as my daily driver, and test everything in LTS.
Personally, I can make this work by setting the system environment
POWERSHELL_UPDATECHECK = 0and then setting it to LTS or Default as appropriate in my windows terminal profile (which requires editing the .json), but this doesn't seem like something anyone should need to do -- especially since PowerShell itself controls the defaults in those terminal configs.spaette commentedon Sep 25, 2023
Why doesn't
Defaulthave anLTSentry?https://github.com/MicrosoftDocs/PowerShell-Docs/blob/main/reference/7.3/Microsoft.PowerShell.Core/About/about_Update_Notifications.md (possible rewrite)
Offturns off the update notification featureDefaultis the same as not definingPOWERSHELL_UPDATECHECK:LTSonly notifies of updates to long-term-servicing (LTS) releasesWere the
Defaultcode modified to correspond with the above adding a notification of EOL might complicate things.Of course adding to
Defaultsuch anLTSentry should be consistent with at minimum this among the OP's criteria.Starting from
bashhere are current messages using an extracted powershell-7.2.13-linux-x64.tar.gz.not using an environment variable or setting to
POWERSHELL_UPDATECHECK="Default"setting to
POWERSHELL_UPDATECHECK="LTS"Starting from
bashhere is a current message using an extracted powershell-7.4.0-preview.4-linux-x64.tar.gz.not on the latest Preview
setting to
POWERSHELL_UPDATECHECK="Default"Starting from
bashhere is a current message using an extracted powershell-7.1.0-rc.2-linux-x64.tar.gz.not on the latest RC
setting to
POWERSHELL_UPDATECHECK="Default"https://github.com/PowerShell/PowerShell/releases
Incidentally are the labels Latest and Pre-release representing GitHub code or Organization code?
Preview/ RC releases both currently have a Pre-release label.
If Organization code Stable , Preview and an added RC and LTS would make more sense.
spaette commentedon Sep 27, 2023
Preview/RC releases don't appear to notify of updates to GA releases.
sassdawe commentedon Oct 14, 2023
spaette the problem is that I can't easily set the Stable and the LTS versions to only check their own updates and their own updates only without doing weird stuff with short cuts or by editing the Windows Terminal config.
Simply put, this is wrong:
I don't need LTS to tell me there is a higher version number Stable release.

The problem is that LTS is checking both versions.
spaette commentedon Oct 14, 2023
It it worthwhile to elaborate on the .md file's mentioned 2 channels and 3 endpoints?
sassdawe commentedon Oct 14, 2023
I'm not sure that I understand what you mean - English is not my native language.
spaette commentedon Oct 14, 2023
Absent looking at the code it would seem from the documentation that channels and endpoints are utilised.
spaette commentedon Oct 15, 2023
tools/packages.microsoft.com/mapping.json
the above file lists channels stable and preview
I would solicit the opinion of someone more familiar with the code.
src/Microsoft.PowerShell.ConsoleHost/host/msh/UpdatesNotification.cs
I would venture to guess the above file is relevant.
kilasuit commentedon Nov 3, 2026
Joel Bennett (@Jaykul) as this feature has now been removed from 7.6.8 onwards via this PR I think this can be closed as not planned.