22title : " Desired State Configuration changelog"
33description : >-
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+
1012All 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
2022changes 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
29197This 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
0 commit comments