@@ -71,30 +71,48 @@ To run the link-checker, follow these steps:
7171
7272### Contributor License Agreement (CLA)
7373
74- To speed up the acceptance of any contribution to any DSC repositories,
75- you should sign the Microsoft [ Contributor License Agreement (CLA)] ( https://cla.microsoft.com/ ) ahead of time.
76- If you've already contributed to DSC, PowerShell, or other Microsoft repositories in the past, congratulations!
77- You've already completed this step.
78- This is a one-time requirement for the DSC project.
79- Signing the CLA process is simple and can be done in less than a minute.
80- You don't have to do this up-front.
81- You can simply clone, fork, and submit your pull request as usual.
82- When your pull request is created, it is checked by the CLA bot.
83- If you have signed the CLA, the status check will be set to ` passing ` .
84- Otherwise, it will stay at ` pending ` .
85- Once you sign a CLA, all your existing and future pull requests will have the status check automatically set at ` passing ` .
74+ Contributions to the DSC repository requires signing the [ Contributor License Agreement (CLA)] [ 01 ] .
75+ You can manually sign the CLA at any time. When you submit a pull request to this repository, the
76+ continuous integration will check whether you have already signed the CLA. If you haven't, the
77+ automation will prompt you to do so as a comment on your PR.
8678
87- ### Building and testing
79+ We can't accept any contributions without the author signing the CLA. Signing the CLA is a one-time
80+ requirement and applies to contributions to Microsoft open source repositories.
8881
89- #### Prerequisites
82+ For more information, see [ Contributor License Agreements ] [ 01 ] .
9083
91- The DSC project is built using Rust and PowerShell. You need the following installed:
84+ [ 01 ] : https://cla.microsoft.com/
85+
86+ ### Building and testing
9287
93- * ** PowerShell** : Version 7.2 or later
94- * ** Rust** : Latest stable version (the build script can install/update Rust automatically)
88+ #### Prerequisites
9589
96- The build script (` build.new.ps1 ` ) automatically installs or verifies other dependencies including
97- Clippy, Node.js, and tree-sitter.
90+ Building the DSC project requires PowerShell 7.2 or later to execute the build script. For more
91+ information about installing PowerShell, see [ Install PowerShell on Windows, Linux, and macOS] [ 02 ] .
92+
93+ DSC requires other tools for building the project. The build script (` build.new.ps1 ` ) installs the
94+ tools in the following table if they aren't already installed on your system:
95+
96+ | Tool | Version | Platforms | Projects |
97+ | :--------------------------------------------------------| :-------------:| :---------------------:| :-----------------------------------------------------|
98+ | [ Rust toolchain] [ 03 ] | Latest stable | Linux, macOS, Windows | All Rust crates |
99+ | [ Visual Studio Build Tools for C++] [ 04 ] | Latest stable | Windows | All Rust crates |
100+ | [ ` cargo audit ` ] [ 05 ] | Latest stable | Linux, macOS, Windows | All Rust crates |
101+ | [ Clippy] [ 06 ] | Latest stable | Linux, macOS, Windows | All Rust crates |
102+ | [ Tree-sitter CLI] [ 07 ] | Latest stable | Linux, macOS, Windows | All grammars |
103+ | [ NodeJS] [ 08 ] | ` v24 ` | Linux, macOS, Windows | All grammars |
104+ | [ ** Pester** PowerShell module] [ 09 ] | Latest stable | Linux, macOS, Windows | All acceptance tests |
105+ | [ ** PSDesiredStateConfiguration** PowerShell module] [ 10 ] | ` v2.0.7 ` | Windows | ` Microsoft.Windows/WindowsPowerShell ` adapter tests |
106+
107+ [ 02 ] : https://learn.microsoft.com/powershell/scripting/install/installing-powershell
108+ [ 03 ] : https://rustup.rs/
109+ [ 04 ] : https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist
110+ [ 05 ] : https://crates.io/crates/cargo-audit
111+ [ 06 ] : https://doc.rust-lang.org/clippy/index.html
112+ [ 07 ] : https://github.com/tree-sitter/tree-sitter/blob/master/crates/cli/README.md
113+ [ 08 ] : https://nodejs.org/
114+ [ 09 ] : https://pester.dev/
115+ [ 10 ] : https://www.powershellgallery.com/packages/PSDesiredStateConfiguration/2.0.7
98116
99117#### Quick start
100118
@@ -130,11 +148,18 @@ DSCv3 includes Rust unit tests and PowerShell Pester tests:
130148./build.new.ps1 -SkipBuild -Test -ExcludeRustTests -PesterTestGroup dsc
131149```
132150
133- Available Pester test groups: ` dsc ` , ` adapters ` , ` extensions ` , ` resources ` , ` grammars `
151+ Available Pester test groups include:
152+
153+ - ` dsc ` - Acceptance tests for the ` dsc ` executable.
154+ - ` adapters ` - Acceptance tests for projects in the ` adapters ` folder.
155+ - ` extensions ` - Acceptance tests for projects in the ` extensions ` folder.
156+ - ` resources ` - Acceptance tests for projects in the ` resources ` folder.
157+ - ` grammars ` - Acceptance tests for projects in the ` grammars ` folder.
134158
135159#### Cross-platform builds
136160
137- Build for specific architectures:
161+ By default, the build script compiles code for the current platform and architecture. You can build
162+ for other platforms and architectures with the ` -Architecture ` parameter:
138163
139164``` powershell
140165# Windows ARM
@@ -154,33 +179,39 @@ For detailed build instructions, troubleshooting, and CI/CD workflows, see the
154179
155180### Pull Request Guidelines
156181
157- * Always create a pull request to the ` main ` branch of this repository.
158- * Avoid making big pull requests. Before you invest a large amount of time, file an issue and start a discussion with the community.
159- * Add a meaningful title to the PR describing what change you want to check in.
160- * When you create a pull request, include a summary about your changes in the PR description.
161- If the changes are related to an existing GitHub issue, please reference the issue in the PR description (e.g. ` Fix #123 ` ).
162- * Please use the present tense and imperative mood when describing your changes:
163- * Instead of "Adding support for new feature", write "Add support for new feature".
164- * Instead of "Fixed bug in parser", write "Fix bug in parser".
165- * If your change adds a new source file, ensure the appropriate copyright and license headers are on top:
166- * For ` .rs ` files use the copyright header with empty line after it:
182+ - Always create a pull request to the ` main ` branch of this repository.
183+ - Avoid making big pull requests. Before you invest a large amount of time, file an issue and start
184+ a discussion with the community.
185+ - Add a meaningful title to the PR describing what change you want to check in.
186+ - When you create a pull request, include a summary about your changes in the PR description. If
187+ the changes are related to an existing GitHub issue, please reference the issue in the PR
188+ description (e.g. ` Fix #123 ` ).
189+ - Please use the present tense and imperative mood when describing your changes:
190+
191+ - Instead of ` Adding support for new feature ` , write ` Add support for new feature ` .
192+ - Instead of ` Fixed bug in parser ` , write ` Fix bug in parser ` .
193+
194+ - If your change adds a new source file, ensure the appropriate copyright and license headers are
195+ included at the top of the file:
196+
197+ - For ` .rs ` files, use the copyright header with an empty line after it:
167198
168199 ``` rust
169200 // Copyright (c) Microsoft Corporation.
170201 // Licensed under the MIT License.
171202
172203 ```
173204
174- * For `. ps1` and `. psm1` files use the copyright header with empty line after it:
205+ - For `. ps1` and `. psm1` files , use the copyright header with an empty line after it:
175206
176207 ```powershell
177208 # Copyright (c) Microsoft Corporation .
178209 # Licensed under the MIT License .
179210
180211 ```
181212
182- * Create and/ or update tests when making code changes.
183- * Run tests and ensure they are passing before opening a pull request.
213+ * Create and update relevant tests when making code changes.
214+ * Run tests and ensure they're passing before opening a pull request.
184215* All pull requests * * must** pass CI checks before they can be merged.
185216
186217## Code of Conduct Enforcement
0 commit comments