question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Show what experimental features are turned on at the start of interactive sessions

See original GitHub issue

Summary of the new feature/enhancement

For an interactive PowerShell user it is important to know if and what experimental features are currently enabled - if any.

  • In a stable / LTS version, the expectation may be that NONE are enabled, so if any are, it’s helpful to be notified.

    • Experimental features may inadvertently be enabled, namely if, in a previously installed or side-by-side preview version features were ever selectively enabled or disabled with -Scope CurrentUser - which is the default scope. The resulting "$(Split-Path $PROFILE.CurrentUserAllHosts)/powershell.config.json" file takes effect for all installed versions, and overrides "PSHOME/powershell.config.json"
  • In preview versions - which by default come with all experimental features enabled - it is additionally important to know which ones are not enabled in a given session, since, after using selective disabling, newly introduced features may end up DISABLED in preview versions installed later (as explained above).

    • Additionally, showing in effect all experimental features helps with discovering new ones.

Proposed technical implementation details (optional)

Update: See the alternative, less verbose proposal below.

On entering an interactive session, show something like the following:

For PREVIEW versions:

Show both the enabled and disabled experimental features, grouped by state:

@"
PowerShell 7.2.0-preview.3
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.

ENABLED experimental features:
  $((Get-ExperimentalFeature | Where-Object -not Enabled).Name)
DISABLED experimental features:
  $((Get-ExperimentalFeature | Where-Object Enabled).Name)
"@

It would additionally be helpful if features added since the previous stable release could be highlighted.

For STABLE / LTS versions:

Show only enabled experimental features (if any - see @rkeithhill’s more sophisticated version).

@"
PowerShell 7.2.0-preview.3
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.

Enabled experimental features (type 'help about_experimental_features' for help):
  $((Get-ExperimentalFeature | Where-Object -not Enabled).Name)
"@

As @DHowett notes, all this extra text should be considered part of the “logo” and should therefore be suppressed if -NoLogo is passed to the CLI.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:20 (9 by maintainers)

github_iconTop GitHub Comments

3reactions
DHowettcommented, Feb 22, 2021

If we commit to this, I’d really hope that it’s suppressed by -NoLogo.

1reaction
daxian-dbwcommented, Feb 13, 2023

Although I see that users rather prefer not to have a logo. So we are left to consider only the option of a one-time display of information on the first startup. That’s what VS Code does after an upgrade, for example.

@iSazonov Can you please open a new issue describing this idea? Comparing with changing the startup logo, I think it’s a better way to improve the user awareness of the changes in the shell. Please mark it to be reviewed by the “interactive-console” WG.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Experimental features - Apple Community
Experimental features iPhone 11 Could someone please tell me the features that should be turned on in experimental features?
Read more >
Using Experimental Features in PowerShell
An experimental feature is one where the design isn't finalized. The feature is available for users to test and provide feedback. Once an ......
Read more >
Experimental Features
Experimental Features . Experimental Features are features that have not been ironed out fully yet, but which you can enable to try out...
Read more >
Should I turn off experimental features in Safari?
To turn off experimental features in Safari, simply open the app and select “Preferences” from the Safari drop-down menu. Then, click on the...
Read more >
WebKit Features in Safari 16.4
It allows web app developers to display an app badge count just like ... iOS and iPadOS 16.4 via Safari → Advanced →...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found