Skip to content

[BREAKING CHANGE][OfficeOnlineServerSetup] Replace xWindowsFeatureSet with individual WindowsFeature resources#244

Merged
raandree merged 6 commits into
dsccommunity:mainfrom
raandree:fix/OfficeOnlineServerSetupSource
Mar 10, 2026
Merged

[BREAKING CHANGE][OfficeOnlineServerSetup] Replace xWindowsFeatureSet with individual WindowsFeature resources#244
raandree merged 6 commits into
dsccommunity:mainfrom
raandree:fix/OfficeOnlineServerSetupSource

Conversation

@raandree
Copy link
Copy Markdown
Collaborator

@raandree raandree commented Mar 10, 2026

Pull Request (PR) description

The OfficeOnlineServerSetup composite resource used xWindowsFeatureSet to install the required Windows features. This composite resource does not support the Source parameter, so features that require SxS content (e.g. .NET Framework sub-features) could fail on systems without internet access or when the Windows installation media path is needed.

This PR replaces xWindowsFeatureSet with individual WindowsFeature resources, each specifying the Source path explicitly. This ensures all features can be installed from a local source (SxS / mounted ISO).

As part of this change, the WindowsFeatureSourcePath parameter was renamed to SourcePath for consistency and made mandatory, since the resource cannot function correctly without it.

Changed

  • OfficeOnlineServerSetup:
    • BREAKING: Renamed parameter WindowsFeatureSourcePath to SourcePath and made it mandatory.
    • Replaced xWindowsFeatureSet composite resource with individual WindowsFeature resources, each specifying the Source path for SxS feature installation and an explicit DependsOn on NetFx35.
  • Documentation:
    • Updated OfficeOnlineServerSetup.adoc — renamed parameter, marked it Mandatory, added SourcePath to the YAML example.

Task list

  • The PR represents a single logical change. i.e. Cosmetic updates should go in different PRs.
  • Added an entry under the Unreleased section of in the CHANGELOG.md as per format.
  • Local clean build passes without issue or fail tests (build.ps1 -ResolveDependency).
  • Resource documentation added/updated in README.md.
  • Resource parameter descriptions added/updated in README.md, schema.mof
    and comment-based help.
  • Comment-based help added/updated.
  • Localization strings added/updated in all localization files as appropriate.
  • Examples appropriately added/updated.
  • Unit tests added/updated. See DSC Resource Testing Guidelines.
  • Integration tests added/updated (where possible). See DSC Resource Testing Guidelines.
  • New/changed code adheres to DSC Resource Style Guidelines and Best Practices.

This change is Reviewable

…SourcePath and make it mandatory; replace xWindowsFeatureSet with individual WindowsFeature resources
…urcePath to SourcePath and mark it as mandatory
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 10, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 97cda0ae-32c0-4769-8db3-51f1978acf9e

📥 Commits

Reviewing files that changed from the base of the PR and between 8a3d450 and 6584ad3.

📒 Files selected for processing (4)
  • Resolve-Dependency.psd1
  • tests/Unit/DSCResources/Assets/Config/OfficeOnlineServerSetup.yml
  • tests/Unit/DSCResources/CompileDscConfigurations.ps1
  • tests/Unit/DSCResources/DscResources.Tests.ps1

Walkthrough

The OfficeOnlineServerSetup DSC resource renames parameter WindowsFeatureSourcePath → SourcePath (now mandatory) and replaces the xWindowsFeatureSet composite with individual WindowsFeature resources that each require a Source and depend on NetFx35; docs, changelog, and tests updated accordingly.

Changes

Cohort / File(s) Summary
Changelog
CHANGELOG.md
Records breaking change: WindowsFeatureSourcePathSourcePath (mandatory); xWindowsFeatureSet replaced by per-feature WindowsFeature resources with explicit Source and DependsOn NetFx35.
Resource docs
doc/OfficeOnlineServerSetup.adoc
Update docs and examples to use SourcePath (mandatory string) and show sample SourcePath: D:\sources\sxs; remove old placeholder wording.
Resource implementation
source/DSCResources/OfficeOnlineServerSetup/OfficeOnlineServerSetup.schema.psm1
Renames/makes SourcePath mandatory; replaces single xWindowsFeatureSet with loop-generated individual WindowsFeature resources using Source = $SourcePath and DependsOn = [WindowsFeature]NetFx35; updates dependency wiring for WMIPerformanceAdapter and normalizes InstallBinaries Ensure value. (High-impact control-flow change)
Module manifest
Resolve-Dependency.psd1
Bumps PSResourceGetVersion from 1.0.11.1.1.
Test configs
tests/Unit/DSCResources/Assets/Config/OfficeOnlineServerSetup.yml
Rename key WindowsFeatureSourcePathSourcePath and remove LanguagePacks.en-us entry.
Test harness / compile logic
tests/Unit/DSCResources/CompileDscConfigurations.ps1
Adds temp hide-and-rename workaround for PSDesiredStateConfiguration under RequiredModulesPath, ensures restore on errors and at end, and pre-loads desired module version explicitly.
Test runner
tests/Unit/DSCResources/DscResources.Tests.ps1
Adds -ExecutionPolicy Bypass to PowerShell batch invocation in tests.

Sequence Diagram(s)

sequenceDiagram
  participant Config as Configuration
  participant OOS as OfficeOnlineServerSetup
  participant NetFx as WindowsFeature:NetFx35
  participant WinFeat as WindowsFeature:OOS_<feature>...
  participant WMI as WMIPerformanceAdapter

  Config->>OOS: apply configuration (includes SourcePath)
  OOS->>NetFx: declare NetFx35 (Source = SourcePath)
  OOS->>WinFeat: loop declare each WindowsFeature (Source = SourcePath)\nDependsOn -> NetFx
  WinFeat-->>OOS: resources created (cumulative DependsOn list)
  OOS->>WMI: declare WMIPerformanceAdapter (DependsOn -> all WinFeat)
  WMI-->>OOS: finalizes resource wiring
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main breaking change: replacing xWindowsFeatureSet with individual WindowsFeature resources in OfficeOnlineServerSetup.
Description check ✅ Passed The description is comprehensive and directly related to the changeset, explaining the motivation, the breaking changes, and the specific modifications made.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@raandree raandree changed the title OfficeOnlineServerSetup: rename WindowsFeatureSourcePath to SourcePath and make it mandatory; replace xWindowsFeatureSet with individual WindowsFeature resources [BREAKING CHANGE][OfficeOnlineServerSetup] Replace xWindowsFeatureSet with individual WindowsFeature resources Mar 10, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@source/DSCResources/OfficeOnlineServerSetup/OfficeOnlineServerSetup.schema.psm1`:
- Around line 38-40: The unit test config still supplies the old parameter name
WindowsFeatureSourcePath while the DSC Resource parameter has been renamed to
the mandatory SourcePath; update the test config asset
OfficeOnlineServerSetup.yml to pass SourcePath (not WindowsFeatureSourcePath)
and add/adjust unit tests to assert the new SourcePath binding so DSC
compilation uses the required parameter (verify in the resource function/class
that SourcePath is validated and referenced).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0e108c48-8797-42f5-978b-c06641848b1a

📥 Commits

Reviewing files that changed from the base of the PR and between 6a7e3fd and 8a3d450.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • doc/OfficeOnlineServerSetup.adoc
  • source/DSCResources/OfficeOnlineServerSetup/OfficeOnlineServerSetup.schema.psm1

@raandree raandree merged commit 2ddcf9b into dsccommunity:main Mar 10, 2026
6 checks passed
@raandree raandree deleted the fix/OfficeOnlineServerSetupSource branch March 10, 2026 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant