Skip to content

Commit 4d92a68

Browse files
Apply suggestions from review
1 parent 87165aa commit 4d92a68

File tree

1 file changed

+65
-34
lines changed

1 file changed

+65
-34
lines changed

CONTRIBUTING.md

Lines changed: 65 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)