Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/instructions/instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,9 @@ Pester tests are organized into groups:
# Run tests for DSC CLI
./build.ps1 -SkipBuild -Test -ExcludeRustTests -PesterTestGroup dsc

# Run tests for the dsclint CLI
./build.ps1 -SkipBuild -Test -ExcludeRustTests -PesterTestGroup dsclint

# Run tests for adapters
./build.ps1 -SkipBuild -Test -ExcludeRustTests -PesterTestGroup adapters

Expand Down Expand Up @@ -413,7 +416,7 @@ The build script automatically installs these. If issues persist:
| `-Project` | String[] | Build specific projects only |
| `-ExcludeRustTests` | Switch | Skip Rust tests (use with -Test) |
| `-ExcludePesterTests` | Switch | Skip Pester tests (use with -Test) |
| `-PesterTestGroup` | String[] | Run specific Pester test groups (dsc, adapters, extensions, grammars, resources) |
| `-PesterTestGroup` | String[] | Run specific Pester test groups (dsc, dsclint, adapters, extensions, grammars, resources) |
| `-SkipLinkCheck` | Switch | Skip Windows C++ link tools check |
| `-UseX64MakeAppx` | Switch | Use x64 version of MakeAppx.exe |
| `-UseCFS` | Switch | Use Component Framework Service |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
strategy:
fail-fast: false
matrix:
group: [dsc, adapters, extensions, resources]
group: [dsc, dsclint, adapters, extensions, resources]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down Expand Up @@ -157,7 +157,7 @@ jobs:
strategy:
fail-fast: false
matrix:
group: [dsc, adapters, extensions, resources]
group: [dsc, dsclint, adapters, extensions, resources]
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down Expand Up @@ -247,7 +247,7 @@ jobs:
strategy:
fail-fast: false
matrix:
group: [dsc, adapters, extensions, resources]
group: [dsc, dsclint, adapters, extensions, resources]
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down
42 changes: 42 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,29 @@ changes since the last release, see the [diff on GitHub][unreleased].

### Added

- Added the `dsclint` command, a standalone executable that ships with DSC and checks a
configuration document for problems without applying it. The command validates the document
against the configuration document schema and runs a set of rules that report duplicate resource
names, unresolved and circular dependencies, expressions that don't parse or call unknown
functions, undeclared or unused parameters and variables, invalid parameter constraints,
deprecated features, and, with resource discovery, resource types that aren't installed or
literal properties that don't match a resource's schema. You can change the level of a rule for
a run with the `--rule` option or for every run in the new `lint` section of the settings file,
and control which level makes the command fail with `--fail-on`. The `dsc schema` command
exposes the new `lint-result` and `lint-rules` schemas, and the MCP server exposes the linter as
the `lint_dsc_config` tool. Every diagnostic records the line and column of the problem, and
when the output isn't redirected the command renders each diagnostic as a report that shows the
problem in the document text with the rule's identifier and what the rule requires.

<details><summary>Related work items</summary>

- Issues:
- [#591][#591]
- [#842][#842]
- PRs: [#1768][#1768]

</details>

- Added what-if support to the MCP server tools. The `invoke_dsc_config` tool now accepts a
`what_if` option for the `set` operation, and the `invoke_dsc_resource` tool accepts `what_if`
for the `set` and `delete` operations. This mirrors the `--what-if` flag on the `dsc config set`,
Expand All @@ -86,6 +109,22 @@ changes since the last release, see the [diff on GitHub][unreleased].

### Changed

- Schema validation errors now show the problem in place. When the input to a resource or a
resource's properties in a configuration document don't match the resource's schema, DSC reports
every violation at once with its JSON pointer, renders a snippet of the input or the document
that highlights each offending property or value, and suggests the closest known property name
for a property it doesn't recognize. For a configuration document the snippet points at the
resource's declaration in your document rather than at its evaluated properties. The snippet
isn't rendered for the `json` trace format, which keeps one line per error, and is never
rendered for values the schema identifies as secure.

<details><summary>Related work items</summary>

- Issues: _None_
- PRs: [#1768][#1768]

</details>

- Extensions that implement the `secret` capability must now define the `args` property for the
`secret` command with exactly one secret name input argument (`nameArg`) and at most one vault
input argument (`vaultArg`). Previously, an extension could omit the secret name input argument,
Expand Down Expand Up @@ -1764,6 +1803,7 @@ Version `3.0.0` is the first generally available release of DSC.
[#515]: https://github.com/PowerShell/DSC/issues/515
[#543]: https://github.com/PowerShell/DSC/issues/543
[#566]: https://github.com/PowerShell/DSC/issues/566
[#591]: https://github.com/PowerShell/DSC/issues/591
[#57]: https://github.com/PowerShell/DSC/issues/57
[#598]: https://github.com/PowerShell/DSC/issues/598
[#628]: https://github.com/PowerShell/DSC/issues/628
Expand Down Expand Up @@ -1828,6 +1868,7 @@ Version `3.0.0` is the first generally available release of DSC.
[#832]: https://github.com/PowerShell/DSC/issues/832
[#834]: https://github.com/PowerShell/DSC/issues/834
[#841]: https://github.com/PowerShell/DSC/issues/841
[#842]: https://github.com/PowerShell/DSC/issues/842
[#843]: https://github.com/PowerShell/DSC/issues/843
[#844]: https://github.com/PowerShell/DSC/issues/844
[#845]: https://github.com/PowerShell/DSC/issues/845
Expand Down Expand Up @@ -2000,4 +2041,5 @@ Version `3.0.0` is the first generally available release of DSC.
[#1558]: https://github.com/PowerShell/DSC/issues/1558
[#1562]: https://github.com/PowerShell/DSC/issues/1562
[#1729]: https://github.com/PowerShell/DSC/issues/1729
[#1768]: https://github.com/PowerShell/DSC/issues/1768

Loading
Loading