Any comments or questions about this plan can be submitted under issue #160
- Port the appropriate in-box DSC Resources to the open-source xPSDesiredStateConfiguration resource module.
- Make the open-source xPSDesiredStateConfiuration resource module a High Quality Resource Module (HQRM) to present to the community for feedback.
The PSDesiredStateConfiguration High Quality Resource Module will consist of the following resources:
- Archive
- Environment
- Group
- GroupSet
- Package
- Process
- ProcessSet
- PSSessionConfiguration
- Registry
- Script
- Service
- ServiceSet
- User
- WindowsFeature
- WindowsFeatureSet
- WindowsOptionalFeature
- WindowsOptionalFeatureSet
- WindowsPackageCab
-
1. Port In-Box Only Resources
- Environment
- GroupSet
- ProcessSet
- Script
- ServiceSet
- User
- WindowsFeature
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- WindowsPackageCab
-
2. Merge In-Box & Open-Source Resources
- Archive
- Group
- Package
- Process
- Registry
- Service
- WindowsOptionalFeature
-
3. Resolve Nano Server vs. Full Server Resources
- The general consensus is to leave the if-statements for now.
-
4. Update Each Resource to Be High Quality
- Archive
- Environment
- Group
- GroupSet
- Package
- Process
- ProcessSet
- PSSessionConfiguration
- Registry
- Script
- Service
- ServiceSet
- User
- WindowsFeature
- WindowsFeatureSet
- WindowsOptionalFeature
- WindowsOptionalFeatureSet
- WindowsPackageCab
-
5. Resolve Name of New High Quality Resource Module
- The new high quality module name is PSDscResources.
-
6. Move Resources to New High Quality Module
- Archive
- Environment
- Group
- GroupSet
- Package
- Process
- ProcessSet
- PSSessionConfiguration
- Registry
- Script
- Service
- ServiceSet
- User
- WindowsFeature
- WindowsFeatureSet
- WindowsOptionalFeature
- WindowsOptionalFeatureSet
- WindowsPackageCab
We will port the appropriate in-box resources that will be in the HQRM to the open-source xPSDesiredStateConfiguration resource module. These resources are not currently in the open-source repository. Resources currently both in-box and open-source will be merged in step 2.
These resources and any of their tests, examples, or documentation will be moved to the xPSDSC open-source repository:
- Environment
- GroupSet
- ProcessSet
- Script
- ServiceSet
- User
- WindowsFeature
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- WindowsPackageCab (NEW)
When these resources are moved to GitHub, they will have 'x' appended before their names for now to indicate that they are still 'experimental' in this stage. This 'x' convention will change in the near future. The 'x' can be removed as part of step 5.
We will merge in-box resources that are also currently in the open-source module. The in-box resources and any of their tests, examples, or documentation will be merged into the existing open-source resources in the xPSDesiredStateConfiguration resource module.
Four of the current open-source resources are not provided in-box. The fate of these open-source-only resources has been addressed in this step as well.
* = open-source only
- Archive
- Group
- PSSessionConfiguration*
- Package
- Process
- Registry
- Service
- WindowsOptionalFeature
These resources will retain the 'x' appended before their names for now to indicate that they are still 'experimental' in this stage. This 'x' convention will change in the near future. The 'x' can be removed as part of step 5.
This should be part of the File resource. We do not want this released as an official, supported resource when we are planning to change it in the future.
This should be part of the File resource. We do not want this released as an official, supported resource when we are planning to change it in the future.
This resource is currently on hold. It is not in current plans for PSDscResources.
Some of the in-box resources (User especially) currently contain all-encompassing if-statements which tells the resource to act differently based on whether it is operating on a Nano server or a full server. These if-statements will make the resources difficult to maintain.
- No time needed for fix.
- Difficult to maintain.
- User has to download/store extra code. (minimal)
- Code will be easy to maintain.
- May be a cleaner, simpler implementation for full server.
- User does not have to download/store extra code. (minimal)
- May break the resources.
- Requires fixing time.
- Requires testing.
- User can download only the resource version they need.
- Will have to maintain separate version.
- Requires fixing time.
- Requires testing.
We will update the resouces, tests, exmaples, and documentation to ensure that the xPSDesiredStateConfiguration resource module meets the requirements to be a High Quality Resource Module (HQRM). These requirements can be found in the DSC Resource Kit High Quality Plan (not yet published publicly, sorry).
Here are the basic steps we will have to take based on this plan:
- Fix PSSA issues per the DSC Resource Kit PSSA Rule Severity List (not yet published publicly, sorry).
- Ensure unit tests are present for each resource with more than 70% code coverage.
- Ensure examples run correctly, work as expected, and are documented clearly.
- Ensure clear documentation is provided.
- Ensure the PSDesiredStateConfiguration module follows the standard DSC Resource Kit module format.
- Fix code styling to match the DSC Resource Kit Style Guidelines.
The new High Quality Resource Module (HQRM) for xPSDesiredStateConfiguration is named PSDscResources.
It cannot be named PSDesiredStateCongfiguration since that would conflict with the in-box module, but this HQRM will not contain all the resources in the in-box module (File, Log cannot be ported).
All resources will have the 'x' removed in the HQRM.
Each resource is transferred to the HQRM when it is ready with these steps:
- Rename the resource in all files (remove the 'x').
- Submit a PR with the new resource to the PSDscResources repository.