Skip to content

Commit 0e5d506

Browse files
authored
Merge pull request #240 from MicrosoftDocs/main
1/17/2024 PM Publish
2 parents 12979a7 + 8e3427f commit 0e5d506

File tree

39 files changed

+1226
-112
lines changed

39 files changed

+1226
-112
lines changed

dsc/docs-conceptual/dsc-3.0/changelog.md

Lines changed: 204 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
title: "Desired State Configuration changelog"
33
description: >-
44
A log of the changes for releases of DSCv3.
5-
ms.date: 09/27/2023
5+
ms.date: 01/17/2024
66
---
77

88
# Changelog
99

10+
<!-- markdownlint-disable-file MD033 -->
11+
1012
All notable changes to DSCv3 are documented in this file. The format is based on
1113
[Keep a Changelog][m1], and DSCv3 adheres to [Semantic Versioning][m2].
1214

@@ -20,10 +22,176 @@ This section includes a summary of user-facing changes since the last release. F
2022
changes since the last release, see the [diff on GitHub][unreleased].
2123

2224
<!-- Unreleased comparison link -->
23-
[unreleased]: https://github.com/PowerShell/DSC/compare/v3.0.0-alpha.3...main
25+
[unreleased]: https://github.com/PowerShell/DSC/compare/v3.0.0-alpha.4...main
2426

2527
<!-- Add entries between releases under the appropriate section heading here -->
2628

29+
## [v3.0.0-alpha.4][release-v3.0.0-alpha.4] - 2023-11-14
30+
31+
This section includes a summary of changes for the `alpha.4` release. For the full list of changes
32+
in this release, see the [diff on GitHub][compare-v3.0.0-alpha.4].
33+
34+
<!-- Release links -->
35+
[release-v3.0.0-alpha.4]: https://github.com/PowerShell/DSC/releases/tag/v3.0.0-alpha.4 "Link to the DSC v3.0.0-alpha.4 release on GitHub"
36+
[compare-v3.0.0-alpha.4]: https://github.com/PowerShell/DSC/compare/v3.0.0-alpha.3...v3.0.0-alpha.4
37+
38+
### Changed
39+
40+
- Updated the canonical version of the schema URIs from `2023/08` to `2023/10`, as this release
41+
includes breaking changes for the schemas.
42+
43+
As part of this change, the `$schema` keyword for both [configuration documents][21] and
44+
[resource manifests][22] accepts any valid URI for the schemas, instead of only one. Now, you
45+
can set the value for the keyword to the unbundled schema, the bundled schema, or the enhanced
46+
authoring schema for any supported version.
47+
48+
- Replaced the `_ensure` well-known property with the boolean [_exist][23] property. This improves
49+
the semantics for users and simplifies implementation for resources, replacing the string enum
50+
values `Present` and `Absent` with `true` and `false` respectively.
51+
52+
<details><summary>Related work items</summary>
53+
54+
- Issues: [#202][#202]
55+
- PRs: [#206][#206]
56+
57+
</details>
58+
59+
- Updated the `Microsoft.Windows/Registry` resource to use the `_exist` property instead of
60+
`_ensure` and updated the output to be idiomatic for a DSC Resource.
61+
62+
<details><summary>Related work items</summary>
63+
64+
- Issues: [#162][#162]
65+
- PRs: [#206][#206]
66+
67+
</details>
68+
69+
- When a user presses the <kbd>Ctrl</kbd>+<kbd>C</kbd> key combination, DSC now recursively
70+
terminates all child processes before exiting. This helps prevent dangling processes that were
71+
previously unhandled by the interrupt event.
72+
73+
<details><summary>Related work items</summary>
74+
75+
- PRs: [#213][#213]
76+
77+
</details>
78+
79+
### Added
80+
81+
- Added the [--input][24] and [--input-file][25] global options to the root `dsc` command. Now, you
82+
can pass input to DSC from a variable or file instead of piping from stdin.
83+
84+
<details><summary>Related work items</summary>
85+
86+
- Issues: [#130][#130]
87+
- PRs: [#217][#217]
88+
89+
</details>
90+
91+
- Added the `arg` value as an option for defining how a command-based DSC Resource expects to
92+
receive input. This enables resource authors to define resources that handle DSC passing the
93+
instance JSON as an argument.
94+
95+
<details><summary>Related work items</summary>
96+
97+
- PRs: [#213][#213]
98+
99+
</details>
100+
101+
- Added the new [completer][26] command enables users to add shell completions for DSC to their
102+
shell. The command supports completions for Bash, Elvish, fish, PowerShell, and ZSH.
103+
104+
<details><summary>Related work items</summary>
105+
106+
- Issues: [#186][#186]
107+
- PRs: [#216][#216]
108+
109+
</details>
110+
111+
- DSC now emits log messages to the stderr stream. This can make it easier to understand what DSC
112+
is doing. This doesn't affect the data output. By default, DSC emits errors, warnings, and
113+
informational messages, but not debug or trace messaging. You can control the level of the
114+
logging with the new [--logging-level][27] option on the root `dsc` command.
115+
116+
<details><summary>Related work items</summary>
117+
118+
- Issues:
119+
- [#107][#107]
120+
- [#158][#158]
121+
- PRs:
122+
- [#211][#211]
123+
- [#248][#248]
124+
125+
</details>
126+
127+
- Added optimizations for the resource discovery process that runs before most `dsc` commands.
128+
These optimizations significantly reduce the command execution duration, especially for the
129+
`dsc resource *` commands, which rarely need to run a full discovery for resources.
130+
131+
<details><summary>Related work items</summary>
132+
133+
- Issues: [#173][#173]
134+
- PRs: [#240][#240]
135+
136+
</details>
137+
138+
- Added initial [configuration document functions][28] to DSC. You can now use the [base64()][29],
139+
[concat()][30], and [resourceId()][31] functions in the configuration document.
140+
141+
> [!NOTE]
142+
> The `resourceId` function has been reimplemented as a document function instead of a special
143+
> case, but it has the same functionality and parameters.
144+
145+
<details><summary>Related work items</summary>
146+
147+
- Issues: [#57][#57]
148+
- PRs:
149+
- [#241][#241]
150+
- [#252][#252]
151+
152+
</details>
153+
154+
### Fixed
155+
156+
- The `--format` option now works as users expect when the output is redirected or saved to a
157+
variable. Before this fix, DSC always returned JSON output, even when the user wanted to save
158+
the output as YAML. With this fix, the specified format is respected.
159+
160+
<details><summary>Related work items</summary>
161+
162+
- PRs: [#215][#215]
163+
164+
</details>
165+
166+
- The `DSC/PowerShellGroup` resource now correctly returns the _labels_ for enumerations instead of
167+
their integer value, making it easier to understand and compare results.
168+
169+
<details><summary>Related work items</summary>
170+
171+
- Issues: [#159][#159]
172+
- PRs: [#208][#208]
173+
174+
</details>
175+
176+
- DSC no longer terminates during discovery when a resource errors unless the erroring resource is
177+
being used for the command. DSC still terminates on a resource error during discovery under the
178+
following conditions:
179+
180+
- When the erroring resource type is the same as the value of the `--resource` option for a
181+
`dsc resource *` command.
182+
- When an instance in the configuration document uses the erroring resource type for a
183+
`dsc config *` command.
184+
185+
DSC emits the resource errors during discovery as warning messages for the `dsc resource list`
186+
command. In all other cases, DSC emits the errors as debug messages.
187+
188+
<details><summary>Related work items</summary>
189+
190+
- Issues: [#121][#121]
191+
- PRs: [#240][#240]
192+
193+
</details>
194+
27195
## [v3.0.0-alpha.3][release-v3.0.0-alpha.3] - 2023-09-26
28196

29197
This section includes a summary of changes for the `alpha.3` release. For the full list of changes
@@ -291,24 +459,58 @@ For the full list of changes in this release, see the [diff on GitHub][compare-v
291459
[19]: reference/schemas/resource/manifest/set.md#input
292460
[20]: reference/schemas/resource/manifest/test.md#input
293461

462+
<!-- alpha.4 links -->
463+
[21]: reference/schemas/config/document.md#schema
464+
[22]: reference/schemas/resource/manifest/root.md#schema
465+
[23]: reference/schemas/resource/properties/exist.md
466+
[24]: reference/cli/dsc.md#-i---input
467+
[25]: reference/cli/dsc.md#-p---input-file
468+
[26]: reference/cli/completer/command.md
469+
[27]: reference/cli/dsc.md#-l---logging-level
470+
[28]: reference/schemas/config/functions/overview.md
471+
[29]: reference/schemas/config/functions/base64.md
472+
[30]: reference/schemas/config/functions/concat.md
473+
[31]: reference/schemas/config/functions/resourceId.md
474+
294475
<!-- Issue and PR links -->
476+
[#107]: https://github.com/PowerShell/DSC/issues/107
477+
[#121]: https://github.com/PowerShell/DSC/issues/121
295478
[#127]: https://github.com/PowerShell/DSC/issues/127
479+
[#130]: https://github.com/PowerShell/DSC/issues/130
296480
[#133]: https://github.com/PowerShell/DSC/issues/133
297481
[#150]: https://github.com/PowerShell/DSC/issues/150
298482
[#156]: https://github.com/PowerShell/DSC/issues/156
483+
[#158]: https://github.com/PowerShell/DSC/issues/158
484+
[#159]: https://github.com/PowerShell/DSC/issues/159
485+
[#162]: https://github.com/PowerShell/DSC/issues/162
299486
[#163]: https://github.com/PowerShell/DSC/issues/163
300487
[#168]: https://github.com/PowerShell/DSC/issues/168
301488
[#171]: https://github.com/PowerShell/DSC/issues/171
302489
[#172]: https://github.com/PowerShell/DSC/issues/172
490+
[#173]: https://github.com/PowerShell/DSC/issues/173
303491
[#174]: https://github.com/PowerShell/DSC/issues/174
304492
[#175]: https://github.com/PowerShell/DSC/issues/175
305493
[#176]: https://github.com/PowerShell/DSC/issues/176
306494
[#177]: https://github.com/PowerShell/DSC/issues/177
307495
[#181]: https://github.com/PowerShell/DSC/issues/181
308496
[#182]: https://github.com/PowerShell/DSC/issues/182
497+
[#186]: https://github.com/PowerShell/DSC/issues/186
309498
[#197]: https://github.com/PowerShell/DSC/issues/197
310499
[#198]: https://github.com/PowerShell/DSC/issues/198
311500
[#199]: https://github.com/PowerShell/DSC/issues/199
501+
[#202]: https://github.com/PowerShell/DSC/issues/202
502+
[#206]: https://github.com/PowerShell/DSC/issues/206
503+
[#208]: https://github.com/PowerShell/DSC/issues/208
504+
[#211]: https://github.com/PowerShell/DSC/issues/211
505+
[#213]: https://github.com/PowerShell/DSC/issues/213
506+
[#215]: https://github.com/PowerShell/DSC/issues/215
507+
[#216]: https://github.com/PowerShell/DSC/issues/216
508+
[#217]: https://github.com/PowerShell/DSC/issues/217
509+
[#240]: https://github.com/PowerShell/DSC/issues/240
510+
[#241]: https://github.com/PowerShell/DSC/issues/241
511+
[#248]: https://github.com/PowerShell/DSC/issues/248
512+
[#252]: https://github.com/PowerShell/DSC/issues/252
312513
[#45]: https://github.com/PowerShell/DSC/issues/45
514+
[#57]: https://github.com/PowerShell/DSC/issues/57
313515
[#73]: https://github.com/PowerShell/DSC/issues/73
314516
[#98]: https://github.com/PowerShell/DSC/issues/98
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
description: Command line reference for the 'dsc completer' command
3+
ms.date: 01/17/2024
4+
ms.topic: reference
5+
title: dsc completer
6+
---
7+
8+
# dsc completer
9+
10+
## Synopsis
11+
12+
Generates a shell completion script.
13+
14+
## Syntax
15+
16+
```sh
17+
dsc completer [Options] <SHELL>
18+
```
19+
20+
## Description
21+
22+
The `completer` command returns a shell script that, when executed, registers completions for the
23+
given shell. DSC can generate completion scripts for the following shells:
24+
25+
- [Bourne Again SHell (BASH)][01]
26+
- [Elvish][02]
27+
- [Friendly Interactive SHell (fish)][03]
28+
- [PowerShell][04]
29+
- [Z SHell (ZSH)][05]
30+
31+
The output for this command is the script itself. To register completions for DSC, execute the
32+
script.
33+
34+
> [!WARNING]
35+
> Always review scripts before executing them, especially in an elevated execution context.
36+
37+
## Examples
38+
39+
### Example 1 - Register completions for Bash
40+
41+
```sh
42+
completer=~/dsc_completion.bash
43+
# Export the completion script
44+
dsc completer bash > $completer
45+
# Review the completion script
46+
cat $completer
47+
# Add the completion script to your profile
48+
echo "source $completer" >> ~/.bashrc
49+
# Execute the completion script to register completions for this session
50+
source $completer
51+
```
52+
53+
### Example 2 - Register completions for PowerShell
54+
55+
```powershell
56+
$Completer = '~/dsc_completion.ps1'
57+
# Export the completion script
58+
dsc completer powershell | Out-File $Completer
59+
# Review the completion script
60+
Get-Content $completer
61+
# Add the completion script to your profile
62+
Add-Content -Path $PROFILE ". $Completer"
63+
# Execute the completion script to register completions for this session
64+
. $Completer
65+
```
66+
67+
## Arguments
68+
69+
### SHELL
70+
71+
This argument is mandatory for the `completer` command. The value for this option determines which
72+
shell the application returns a completion script for:
73+
74+
- `bash` - [Bourne Again SHell (BASH)][01]
75+
- `elvish` - [Elvish][02]
76+
- `fish` - [Friendly Interactive SHell (fish)][03]
77+
- `powershell` - [PowerShell][04]
78+
- `zsh` - [Z SHell (ZSH)][05]
79+
80+
```yaml
81+
Type: String
82+
Mandatory: true
83+
ValidValues: [
84+
bash,
85+
elvish,
86+
fish,
87+
powershell,
88+
zsh,
89+
]
90+
```
91+
92+
## Options
93+
94+
### -h, --help
95+
96+
Displays the help for the current command or subcommand. When you specify this option, the
97+
application ignores all options and arguments after this one.
98+
99+
```yaml
100+
Type: Boolean
101+
Mandatory: false
102+
```
103+
104+
[01]: https://www.gnu.org/software/bash/
105+
[02]: https://elv.sh/
106+
[03]: https://fishshell.com/
107+
[04]: /powershell/scripting/overview
108+
[05]: https://zsh.sourceforge.io/

0 commit comments

Comments
 (0)