Skip to content

Commit 3dff4ad

Browse files
committed
address feedback from PS-Committee
1 parent 2360f5f commit 3dff4ad

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

1-Draft/RFC0000-Experimental-Feature-User-Experience.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@ Enabling experimental features automatically requires creating or updating a `po
4141
which is read at startup which affects all users or from `$HOME\Documents\PowerShell\powershell.config.json` on Windows
4242
and from `$HOME/.config/powershell/powershell.config.json` on Linux and macOS per user.
4343

44-
This is existing behavior and will not be changed as part of this RFC.
44+
Experimental features are currently not being read from the user config and this RFC will enable reading
45+
of the user config in addition to the system config.
46+
In the case where the user config exists, it will take precedence over the system config for experimental features
47+
in that the system config is not read for experimental features.
48+
System config is not policy so this should be acceptable and expected.
4549

4650
### Enable and Disable cmdlets
4751

@@ -72,3 +76,25 @@ In addition to the warning message that a restart is required after changing exp
7276
the `Enabled` property could be changed to an enum instead of a boolean: True, False, Pending.
7377
However, since experimental features is expected to be used by more advanced users,
7478
this seems unnecessary.
79+
80+
Alternatively, we can add a `RestartRequired` property to indicate an enabled feature is pending.
81+
82+
### Features that were previously Experimental
83+
84+
In the case where an Experimental Feature no longer experimental (whether accepted or rejected),
85+
the config file may still have that feature listed.
86+
We can add a `State` property that has enum values: Available, NotAvailable.
87+
This `State` can also convey the `RestartRequired` state.
88+
If this becomes a problem in the future, we can have cmdlets to help clean-up non-valid settings in the
89+
configuration (which will be more than just experimental features).
90+
Since this is additive, this is currently outside the scope of this RFC.
91+
92+
### PowerShell instance specific configuration
93+
94+
The system (AllUsers) configuration is in `$PSHOME` and specific to that instance of PowerShell.
95+
The user config is global to all instances of PowerShell which can create problems.
96+
For experimental features, this is not a big issue as experimental features listed to
97+
be enabled in the config file that don't exist are silently ignored.
98+
However, other configuration that one may want to apply to a preview release and not a
99+
stable release cannot be applied except for AllUsers currently.
100+
This should be addressed in a separate configuration RFC.

0 commit comments

Comments
 (0)