@@ -14,7 +14,7 @@ Plan to implement: Yes
14
14
This RFC is about adding the Experimental Feature support in PowerShell through the PowerShell configuration.
15
15
16
16
The Experimental Feature support in PowerShell is to provide a mechanism for experimental features to coexist
17
- with exsiting stable features in PowerShell or PowerShell modules.
17
+ with existing stable features in PowerShell or PowerShell modules.
18
18
An experimental feature would not be enabled
19
19
unless a user opt in by properly configuring the ` powershell.config.json ` file.
20
20
Experimental features should not affect any stable features
@@ -38,15 +38,15 @@ without worrying about regressions, issues, or side effects caused by the new fe
38
38
For example, PowerShell team plans to rewrite the ` FileSystemProvider ` in future
39
39
to reduce the code complexity and improve the performance.
40
40
During the development,
41
- the ` FileSystemProvider vnext ` can coexist with the existing one
41
+ the ` FileSystemProviderV2 ` can coexist with the existing one
42
42
and be exposed to the user as an experimental feature,
43
43
so that PowerShell team can get early feedback and issue reports.
44
44
At the same time, users can continue to use the existing ` FileSystemProvider `
45
- without being affected by the known or unknown issues introduced by the ` FileSystemProvider vnext ` .
45
+ without being affected by the known or unknown issues introduced by the ` FileSystemProviderV2 ` .
46
46
47
47
## Specification
48
48
49
- ### Experimental Feateure Names
49
+ ### Experimental Feature Names
50
50
51
51
Experimental features for PowerShell components and built-in modules should be named as ` PSXXX ` ,
52
52
where ` XXX ` is the real feature name, which is a single word in camel case.
@@ -99,7 +99,7 @@ while the automatic variable makes it easy to query from PowerShell scripts.
99
99
#### Code Path Divided
100
100
101
101
The first implementation scenario of an experimental feature is to divide the code path based on whether a feature is enabled.
102
- This probably would be the most common pattern for implementing any experimental fatures .
102
+ This probably would be the most common pattern for implementing any experimental features .
103
103
PowerShell exposes the enabled experimental feature names through both an API and an automatic variable,
104
104
so it could be very easy for both C# code and PowerShell script to access this information.
105
105
@@ -114,7 +114,7 @@ There are two cases in this scenario:
114
114
115
115
- A new cmdlet is added by the experimental feature.
116
116
The new cmdlet should be exposed when the experimental feature is enabled.
117
- - A new cmdlet is added by the experimental feature to overide an existing cmdlet with the same name.
117
+ - A new cmdlet is added by the experimental feature to override an existing cmdlet with the same name.
118
118
When the experimental feature is enabled,
119
119
the existing cmdlet should be hidden and the new cmdlet should be exposed.
120
120
@@ -161,7 +161,7 @@ The following code snippets are examples of using this attribute for cmdlet/func
161
161
``` c#
162
162
[Experimental (" PSWebCmdletV2" , FeatureAction .Show )]
163
163
[Cmdlet (Verbs .Invoke , " WebRequest" )]
164
- public class InvokeWebRequsetCommandV2 : WebCmdletBaseV2 { ... }
164
+ public class InvokeWebRequestCommandV2 : WebCmdletBaseV2 { ... }
165
165
166
166
[Experimental (" PSWebCmdletV2" , FeatureAction .Hide )]
167
167
[Cmdlet (Verbs .Invoke , " WebRequest" )]
@@ -195,7 +195,7 @@ We want to expose this parameter only if the experimental feature is enabled.
195
195
196
196
An example for the second case:
197
197
> We want to remove a problematic parameter from ` Add-Type ` .
198
- In order to evaluate the impact of the breaking chagne ,
198
+ In order to evaluate the impact of the breaking change ,
199
199
we want to hide it only if the experimental feature is enabled.
200
200
201
201
The same ` [Experimental()] ` attribute can also be used in this scenario.
@@ -245,7 +245,7 @@ There are two cases in this scenario:
245
245
An example for the first case:
246
246
> We want to support a new transport layer for ` Invoke-Command ` ,
247
247
which will introduce a new parameter set.
248
- Parameters ` -ScirptBlock ` and ` -FilePath ` need to be added to the new parameter set
248
+ Parameters ` -ScriptBlock ` and ` -FilePath ` need to be added to the new parameter set
249
249
when the experimental feature is enabled.
250
250
251
251
An example for the second case:
@@ -339,6 +339,7 @@ internal enum EngineExperimentalFeatures
339
339
PSFileSystemProviderV2
340
340
}
341
341
```
342
+
342
343
``` xml
343
344
// EngineExperimentalFeature.resx
344
345
<data name =" PSFileSystemProviderV2-Description" xml : space =" preserve" >
0 commit comments