Skip to content

Decide on which experimental features will remain in experimental in 7.1 #13406

@joeyaiello

Description

@joeyaiello

As we did with 7.0 in #11302, we have to make a decision going into RC on whether experimental features are "graduated" to stable vs. staying as experimental.

Per some conversations with the @PowerShell/powershell-committee, this is our current position on each (edited 8/25/20: the below are now the current plan-of-record for 7.1):

Supported / Non-Experimental

  • PSNullConditionalOperators: We agree that braces for variable names are an existing PowerShell construct, and they work fine here. This hasn't caused issues, so we just leave it on and merge the RFC with which it's associated.
  • PSUnixFileStat: We haven't seen any reports of negative behavior, and it seems to be working well for those of us who use it.

Experimental (for now)

  • PSCommandNotFoundSuggestion: Suggestions are still broken in non-pwsh hosts
  • PSCultureInvariantReplaceOperator: Weirdly, our telemetry shows that this went down in 7.1, but we're not sure why, and there haven't been any issues filed on it since it was merged. @iSazonov it looks like you were the one to implement this, has this been useful for you and/or have you experienced or heard of any unintended behaviors?
  • PSImplicitRemotingBatching: I recalled that this was somewhat incomplete, but we couldn't remember why. @PaulHigin can you weigh in here?
  • PSDesiredStateConfiguration.InvokeDscResource: This is still not well fleshed-out, and additional DSC behavior like DSC resource platform changes to use JSON instead of MOF #13359 will be behind experimental in 7.1 as well, so there's little benefit to moving this out of experimental.
  • PSNotApplyErrorActionToStderr: A fix for Inconsistent handling of native command stderr  #3996 and Redirection of stderr output from external programs sets $? invariably to $false, no longer reflecting whether $LASTEXITCODE equals 0 #10512, namely that we're consistent in not treating output in stderr as errors that trigger ErrorAction, and including a fix to set $? correctly in cases where ErrorAction is no longer triggered.
  • PSNativePSPathResolution: Some edge cases don't work as expected, so we decided to leave this as experimental until they're fixed.
  • Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace: Some problems have been raised since we originally decided to move this to supported, so it will remain experimental in 7.1.

On their way (and will remain experimental)

  • PSSubsystemPluginModel: This is the plugin model for minimal PS and PSReadline suggestion fixes. This feature will guard Get-Subsystem, and will also serve as a notation that the APIs are experimental and subject to change. (Still need to investigate how to notate that these are experimental)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-Maintainers-Buildspecific to affecting the buildIssue-Enhancementthe issue is more of a feature request than a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions