Powershell: Simplify discovering and enabling experimental features

Created on 31 Oct 2018  路  6Comments  路  Source: PowerShell/PowerShell

Experimental feature flags is new to PSCore6.1. We are starting to have some features implemented behind the experimental flag. Currently, you have to pass -ListAvailable to Get-ExperimentalFeature to all the features and not just the enabled ones. For users new to experimental features, this seems non-obvious and it appears that there are no experimental features which limits how much feedback we can get. I would suggest removing the need for -ListAvailable as the user can easily filter enabled vs disabled ones.

After the user sees the available features, it's not obvious how to update their PowerShell settingsfile to enable the feature. They need to add something like:

            {
                "ExperimentalFeatures": [
                  "PSUseAbbreviationExpansion",
          "PSImplicitRemotingBatching"
                ]
            }

To their config file. Seems like we need to add support for user config files instead of just system wide. A cmdlet to enable features (which message indicating the features are enabled after restart of PowerShell) as well as disabling features.

Environment data

Name                           Value
----                           -----
PSVersion                      6.2.0-preview.1
PSEdition                      Core
GitCommitId                    6.2.0-preview.1-43-g66a4ab10a9c33d0a1e7daef9a8cb6ba881e8de02
OS                             Darwin 18.0.0 Darwin Kernel Version 18.0.0: Wed Aug 22 20:13:40 PDT 2018; root:xnu-4903.201.2~1/RELEASE_X86_64
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Area-Cmdlets-Core Issue-Discussion Resolution-Fixed

Most helpful comment

@vexx32 enabling experimental features at system scope seems like a bad practice :)

All 6 comments

-ListAvailable does seem like an odd choice to have for a command in this context to have, indeed. Agreed that discoverability of experimental features is important if we plan to have them be tested at all.

Do we have a Set-/Enable-/Disable-ExperimentalFeature command? If not, I think we should. 馃槃

Currently, we only have the Get, I'm proposing we add Enable and Disable and tweak Get. Also need to add support for default powershell.config.json at user scope since it's currently only supported at system scope.

Yep, that'll be very important for experimental feature adoption, I think... having to set things at system scope all the time would probably be a bit of a turn-off.

@vexx32 enabling experimental features at system scope seems like a bad practice :)

@vexx32 see the RFC I just published for this https://github.com/PowerShell/PowerShell-RFC/pull/148

@SteveL-MSFT Can this issue be closed now via #8318?

Was this page helpful?
0 / 5 - 0 ratings