-
Notifications
You must be signed in to change notification settings - Fork 227
Update guidelines, workflows, and configurations #2243
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…bility and functionality
WalkthroughRepository configuration and developer tooling updates: added/adjusted .gitattributes entries, updated GitHub workflow env assignment, revised VS Code task commands/presentation/problemMatcher, and edited DSC instruction files and CHANGELOG. No public API or runtime code changes. Changes
Sequence Diagram(s)N/A Estimated code review effort🎯 2 (Simple) | ⏱️ ~10–15 minutes Possibly related PRs
Pre-merge checks❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Please see the documentation for more information. Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).Please share your feedback with us on this Discord post. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
.github/workflows/copilot-setup-steps.yml (1)
30-31: Minor: default MODULE_NAME when unset (defensive).If Copilot or a manual dispatch overrides/omits MODULE_NAME, this will write an empty value. Default it to the known module name to keep downstream steps stable.
Apply this diff:
-echo "Setting MODULE_NAME=$MODULE_NAME to GitHub environment" -echo "MODULE_NAME=$MODULE_NAME" >> "$GITHUB_ENV" +echo "Setting MODULE_NAME=${MODULE_NAME:-SqlServerDsc} to GitHub environment" +echo "MODULE_NAME=${MODULE_NAME:-SqlServerDsc}" >> "$GITHUB_ENV"CHANGELOG.md (1)
33-39: Changelog hygiene: compress to ≤2 “Fixed” items per guidelines.Four bullets were added under “Fixed”. Please condense per repo rules (≤2 per change type). Example:
Apply this diff:
-- Updated `.gitattributes` to enforce LF line endings for PowerShell files to - ensure cross-platform compatibility. -- Updated GitHub Copilot setup workflow to fix environment variable assignment. -- Updated VS Code tasks configuration to use proper build and test commands - with improved task grouping and problem matchers. -- Updated instruction files to use correct build command (`noop` instead of - `build`) and fixed file pattern matching syntax. + - Tooling and workflows: fixed Copilot env handling; updated VS Code tasks (build/test, problem matchers); instruction files now use `-Tasks noop` with corrected glob patterns. + - Line endings: enforce LF for PowerShell/Markdown/JSON via .gitattributes to ensure cross‑platform compatibility..vscode/tasks.json (1)
43-47: Use a portable script path (avoid ${cwd}).
${cwd}isn’t a standard VS Code variable. The test tasks already use./build.ps1; do the same for build to avoid path expansion issues.Apply this diff:
-"command": "& '${cwd}/build.ps1' -AutoRestore -Tasks build -UseModuleFast", +"command": "./build.ps1 -AutoRestore -Tasks build -UseModuleFast",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
.gitattributes(1 hunks).github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md(1 hunks).github/instructions/dsc-community-style-guidelines-powershell.instructions.md(2 hunks).github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md(2 hunks).github/workflows/copilot-setup-steps.yml(1 hunks).vscode/tasks.json(2 hunks)CHANGELOG.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.md
📄 CodeRabbit inference engine (.github/instructions/dsc-community-style-guidelines-markdown.instructions.md)
**/*.md: Wrap lines at word boundaries when over 80 characters (except tables/code blocks)
Use 2 spaces for indentation in Markdown documents
Use '1.' for all items in ordered lists (1/1/1 numbering style)
Disable MD013 for tables/code blocks exceeding 80 characters via an inline comment
Require empty lines before and after code blocks and headings (except before line 1)
Escape backslashes in file paths only, not inside code blocks
All fenced code blocks must specify a language identifier
Format parameter names as bold
Format values/literals as inline code
Format resource/module/product names as italic
Format commands, file names, and paths as inline code
Files:
CHANGELOG.md
⚙️ CodeRabbit configuration file
**/*.md: # Markdown Style Guidelines
- Wrap lines at word boundaries when over 80 characters (except tables/code blocks)
- Use 2 spaces for indentation
- Use '1.' for all items in ordered lists (1/1/1 numbering style)
- Disable
MD013rule by adding a comment for tables/code blocks exceeding 80 characters- Empty lines required before/after code blocks and headings (except before line 1)
- Escape backslashes in file paths only (not in code blocks)
- Code blocks must specify language identifiers
Text Formatting
- Parameters: bold
- Values/literals:
inline code- Resource/module/product names: italic
- Commands/files/paths:
inline code
Files:
CHANGELOG.md
CHANGELOG.md
📄 CodeRabbit inference engine (.github/instructions/dsc-community-style-guidelines.instructions.md)
Always update the CHANGELOG.md Unreleased section
CHANGELOG.md: Always update the Unreleased section in CHANGELOG.md
Use Keep a Changelog format
Describe notable changes briefly, with no more than 2 items per change type
Reference issues using the format issue #<issue_number>
No empty lines between list items in the same section
Skip adding an entry if the same change already exists in the Unreleased section
No duplicate sections or items in the Unreleased section
Files:
CHANGELOG.md
⚙️ CodeRabbit configuration file
CHANGELOG.md: # Changelog Guidelines
- Always update the Unreleased section in CHANGELOG.md
- Use Keep a Changelog format
- Describe notable changes briefly, ≤2 items per change type
- Reference issues using format issue #<issue_number>
- No empty lines between list items in same section
- Skip adding entry if same change already exists in Unreleased section
- No duplicate sections or items in Unreleased section
Files:
CHANGELOG.md
**
⚙️ CodeRabbit configuration file
**: # DSC Community GuidelinesTerminology
- Command: Public command
- Function: Private function
- Resource: DSC class-based resource
Build & Test Workflow Requirements
- Run PowerShell script files from repository root
- Setup build and test environment (once per
pwshsession):./build.ps1 -Tasks noop- Build project before running tests:
./build.ps1 -Tasks build- Always run tests in new
pwshsession:Invoke-Pester -Path @({test paths}) -Output DetailedFile Organization
- Public commands:
source/Public/{CommandName}.ps1- Private functions:
source/Private/{FunctionName}.ps1- Unit tests:
tests/Unit/{Classes|Public|Private}/{Name}.Tests.ps1- Integration tests:
tests/Integration/Commands/{CommandName}.Integration.Tests.ps1Requirements
- Follow instructions over existing code patterns
- Follow PowerShell style and test guideline instructions strictly
- Always update CHANGELOG.md Unreleased section
- Localize all strings using string keys; remove any orphaned string keys
- Check DscResource.Common before creating private functions
- Separate reusable logic into private functions
- DSC resources should always be created as class-based resources
- Add unit tests for all commands/functions/resources
- Add integration tests for all public commands and resources
Files:
CHANGELOG.md
🧠 Learnings (50)
📚 Learning: 2025-09-12T13:24:11.345Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines.instructions.md:0-0
Timestamp: 2025-09-12T13:24:11.345Z
Learning: Applies to **/*.{ps1,psm1,psd1} : Follow PowerShell style and test guideline instructions strictly
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : No trailing whitespace on any line
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : .NOTES only when critical (constraints, side effects, security, compatibility, breaking); ≤2 short sentences
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : Use CR+LF line endings
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Two newlines after closing brace (one if followed by brace or continuation)
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Newline before opening brace (except variable assignments)
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : No commented-out code
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : No spaces on empty lines
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Use descriptive names (3+ characters, no abbreviations)
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Keywords are lower-case
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Parameter names use PascalCase
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Class names use PascalCase
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Avoid Write-Host; prefer Write-Verbose/Write-Information etc.
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Variable names use camelCase
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Function names use PascalCase with Approved Verb-Noun format
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : End files with exactly one trailing blank line
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : Allow a maximum of two consecutive newlines
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-08-29T17:22:37.775Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-markdown.instructions.md:0-0
Timestamp: 2025-08-29T17:22:37.775Z
Learning: Applies to **/*.md : Require empty lines before and after code blocks and headings (except before line 1)
Applied to files:
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md
📚 Learning: 2025-09-14T19:17:05.464Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-changelog.instructions.md:0-0
Timestamp: 2025-09-14T19:17:05.464Z
Learning: Applies to CHANGELOG.md : Describe notable changes briefly, with no more than 2 items per change type
Applied to files:
CHANGELOG.md
📚 Learning: 2025-08-29T17:22:07.610Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md:0-0
Timestamp: 2025-08-29T17:22:07.610Z
Learning: Applies to tests/[iI]ntegration/**/*.[iI]ntegration.[tT]ests.ps1 : Include the required setup block at the top of each integration test: the SuppressMessage param(), a BeforeDiscovery block that ensures DscResource.Test is available (or runs build.ps1 -Tasks 'noop' and imports it), and a BeforeAll block that sets $script:moduleName and imports the module under test with -Force -ErrorAction Stop
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-08-29T17:22:07.610Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md:0-0
Timestamp: 2025-08-29T17:22:07.610Z
Learning: Applies to tests/[iI]ntegration/**/*.[iI]ntegration.[tT]ests.ps1 : Avoid using ExpectedMessage with Should -Throw assertions in Pester
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md
📚 Learning: 2025-09-12T13:23:24.170Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md:0-0
Timestamp: 2025-09-12T13:23:24.170Z
Learning: Applies to tests/{Unit,unit}/**/*.[Tt]ests.ps1 : Include the exact setup block (SuppressMessage attribute, param (), BeforeDiscovery, BeforeAll, AfterAll) before the first Describe in each test file
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to build.ps1 : Setup build and test environment once per pwsh session using: ./build.ps1 -Tasks noop
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to build.ps1 : Build the project before running tests using: ./build.ps1 -Tasks build
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md.vscode/tasks.json
📚 Learning: 2025-09-12T13:24:11.345Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines.instructions.md:0-0
Timestamp: 2025-09-12T13:24:11.345Z
Learning: Build before running tests using .\build.ps1 -Tasks build
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Avoid unnecessary remove/recreate cycles
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md.vscode/tasks.json
📚 Learning: 2025-09-12T13:20:57.155Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-mof-resources.instructions.md:0-0
Timestamp: 2025-09-12T13:20:57.155Z
Learning: Applies to source/DSCResources/**/*.psm1 : Test-TargetResource must return a boolean ($true/$false)
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:20:57.155Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-mof-resources.instructions.md:0-0
Timestamp: 2025-09-12T13:20:57.155Z
Learning: Applies to source/DSCResources/**/*.psm1 : Do not use throw for terminating errors; instead use New-*Exception helper commands (e.g., New-InvalidDataException, New-ArgumentException, New-InvalidOperationException, New-ObjectNotFoundException, New-InvalidResultException, New-NotImplementedException)
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:20:57.155Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-mof-resources.instructions.md:0-0
Timestamp: 2025-09-12T13:20:57.155Z
Learning: Applies to source/DSCResources/**/*.psm1 : Set-TargetResource must not return anything (void)
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:20:57.155Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-mof-resources.instructions.md:0-0
Timestamp: 2025-09-12T13:20:57.155Z
Learning: Applies to source/DSCResources/**/*.psm1 : Use try/catch blocks to handle exceptions in MOF-based resources
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:24:11.345Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines.instructions.md:0-0
Timestamp: 2025-09-12T13:24:11.345Z
Learning: Run build and tests in PowerShell from the repository root
Applied to files:
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:24:11.345Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines.instructions.md:0-0
Timestamp: 2025-09-12T13:24:11.345Z
Learning: Applies to tests/Unit/{Classes,Public,Private}/*.Tests.ps1 : Place unit tests in tests/Unit/{Classes|Public|Private}/{Name}.Tests.ps1
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-08-29T17:22:07.610Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md:0-0
Timestamp: 2025-08-29T17:22:07.610Z
Learning: Applies to tests/[iI]ntegration/**/*.[iI]ntegration.[tT]ests.ps1 : Ensure integration tests cover all scenarios and code paths
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Cover all scenarios and code paths
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md.vscode/tasks.json
📚 Learning: 2025-09-12T13:23:24.170Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md:0-0
Timestamp: 2025-09-12T13:23:24.170Z
Learning: Applies to tests/{Unit,unit}/**/*.[Tt]ests.ps1 : Use the $TestDrive variable for creating and mocking files/paths in tests
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : One Describe block per file matching the tested entity name
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : All public commands, private functions, and classes must have unit tests
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Define variables for -ForEach in a separate BeforeDiscovery near usage
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Use Pester v5 syntax only
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Use PascalCase for Pester keywords: Describe, Context, It, Should, BeforeAll, BeforeEach, AfterAll, AfterEach
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to tests/Unit/Private/*.Tests.ps1 : Private function unit tests must reside in tests/Unit/Private/{Name}.Tests.ps1
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:24:11.345Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines.instructions.md:0-0
Timestamp: 2025-09-12T13:24:11.345Z
Learning: Applies to tests/Unit/{Classes,Public,Private}/*.Tests.ps1 : Add unit tests for all commands, functions, and resources
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to tests/Unit/Public/*.Tests.ps1 : Public command unit tests must reside in tests/Unit/Public/{Name}.Tests.ps1
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : All public commands and class-based resources must have integration tests
Applied to files:
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md.vscode/tasks.json
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : Use UTF-8 encoding without BOM for all files
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Use 4 spaces for indentation (no tabs)
Applied to files:
.gitattributes
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Run tests via Invoke-PesterJob without code coverage (wildcards allowed): Invoke-PesterJob -Path '{tests filepath}' -SkipCodeCoverage
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Use nested Context blocks for complex scenarios
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to azure-pipelines.yml : Add all integration test script files to a group within the test stage in ./azure-pipelines.yml
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Run QA tests using: Invoke-PesterJob -Path 'tests/QA' -SkipCodeCoverage
Applied to files:
.vscode/tasks.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: dsccommunity.SqlServerDsc (Build Package Module)
- GitHub Check: PSScriptAnalyzer
- GitHub Check: PSScriptAnalyzer
🔇 Additional comments (7)
.github/instructions/dsc-community-style-guidelines-integration-tests.instructions.md (1)
43-44: LGTM: guidance now matches noop-based flow.The error hint correctly points to “.\build.ps1 -ResolveDependency -Tasks noop”.
.github/instructions/dsc-community-style-guidelines-unit-tests.instructions.md (2)
3-3: LGTM: glob widened to [Uu]nit.Covers Unit/unit consistently.
39-40: LGTM: switch to ResolveDependency + noop.Matches the repository’s updated test setup guidance.
.github/instructions/dsc-community-style-guidelines-powershell.instructions.md (2)
3-4: LGTM: explicit extension list for applyTo.More readable and avoids brace-regex ambiguity.
225-226: LGTM: defer EOL policy to .gitattributes.Aligns docs with repo policy.
.vscode/tasks.json (2)
87-129: LGTM: noop + Invoke-PesterJob with dedicated panel and matcher.Matches updated guidance and improves DX.
131-137: LGTM: coverage variant mirrors test task sans SkipCodeCoverage.Assuming Invoke-PesterJob collects coverage when not skipped.
If coverage requires explicit flags/outputs in your environment, confirm this task emits the expected artifacts.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2243 +/- ##
====================================
Coverage 94% 94%
====================================
Files 149 149
Lines 9163 9163
====================================
Hits 8687 8687
Misses 476 476
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
.vscode/tasks.json (2)
31-35: macOS pwsh path is brittle on Apple Silicon./usr/local/bin/pwsh often doesn’t exist on arm64 Homebrew. Prefer env resolution.
- "executable": "/usr/local/bin/pwsh", - "args": ["-NoProfile","-Command"] + "executable": "/usr/bin/env", + "args": ["pwsh","-NoProfile","-Command"](Optional: mirror this for linux too, using /usr/bin/env pwsh.)
175-185: hqrmtest task is broken: uses undefined ${cwd}.PowerShell has $pwd, not
$cwd; VS Code variable is $ {workspaceFolder}. This won’t run.- "command": "&${cwd}/build.ps1", - "args": [ - "-AutoRestore", - "-UseModuleFast", - "-Tasks", - "hqrmtest", - "-CodeCoverageThreshold", - "0" - ], + "command": "./build.ps1 -AutoRestore -UseModuleFast -Tasks hqrmtest -CodeCoverageThreshold 0", + "args": [],
♻️ Duplicate comments (1)
.gitattributes (1)
10-12: Wildcard fix for ancillary PS files is correct.This resolves the earlier bug where extensions were missing leading wildcards.
🧹 Nitpick comments (5)
.gitattributes (2)
2-2: Default CRLF may surprise new text types. Consider invert‑default.Optional: default to LF and opt‑in CRLF only where required. This reduces future misses.
Apply if desired:
-* text eol=crlf +* text eol=lf +# Opt-in CRLF only where explicitly required +# (retain per-type LF overrides below as-is)
28-33: Harden binary patterns (optional).Consider adding other common binaries to prevent newline normalization:
*.exe binary *.jpg binary +*.jpeg binary +*.png binary +*.gif binary +*.ico binary *.xl* binary *.pfx binary +*.dll binary +*.nupkg binary +*.zip binary +*.7z binary.vscode/tasks.json (3)
89-129: Make tests resilient to missing folders and fail‑fast on noop failure.Right now, if any of the listed paths don’t exist, Pester may fail; also the chain won’t fail‑fast if noop fails.
- "command": "./build.ps1 -Tasks noop;Invoke-PesterJob -Path './tests/Unit/Classes','./tests/Unit/Private','./tests/Unit/Public','./tests/QA' -SkipCodeCoverage", + "command": "$ErrorActionPreference='Stop'; ./build.ps1 -Tasks noop; if(!$?){ exit 1 }; $paths=@('tests/Unit','tests/QA' ) | Where-Object { Test-Path $_ }; if($paths.Count){ Invoke-PesterJob -Path $paths -SkipCodeCoverage } else { Write-Host 'No test paths found'; }",
131-137: Coverage task doesn’t actually enable coverage.If Invoke-PesterJob doesn’t enable coverage by default, add the required switches.
Want me to wire this to your coverage conventions (format/path/threshold)?
Also applies to: 133-133
87-101: Nit: Prefer explicit non‑terminating error handling to keep problemMatcher clean.Using $ErrorActionPreference='Stop' at the start of commands ensures early exit and cleaner error surfacing.
Also applies to: 131-145
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
-
.gitattributes(1 hunks) -
.vscode/tasks.json(2 hunks)
🧰 Additional context used
🧠 Learnings (24)
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : Use CR+LF line endings
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : No trailing whitespace on any line
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : End files with exactly one trailing blank line
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Two newlines after closing brace (one if followed by brace or continuation)
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:24:11.345Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines.instructions.md:0-0
Timestamp: 2025-09-12T13:24:11.345Z
Learning: Applies to **/*.{ps1,psm1,psd1} : Follow PowerShell style and test guideline instructions strictly
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : No spaces on empty lines
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : Use UTF-8 encoding without BOM for all files
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Newline before opening brace (except variable assignments)
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1,psd1} : Allow a maximum of two consecutive newlines
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : One newline after opening brace
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : No commented-out code
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Keywords are lower-case
Applied to files:
.gitattributes
📚 Learning: 2025-09-12T13:22:48.932Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-powershell.instructions.md:0-0
Timestamp: 2025-09-12T13:22:48.932Z
Learning: Applies to **/*.{ps1,psm1} : Use 4 spaces for indentation (no tabs)
Applied to files:
.gitattributes
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to build.ps1 : Build the project before running tests using: ./build.ps1 -Tasks build
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:24:11.345Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines.instructions.md:0-0
Timestamp: 2025-09-12T13:24:11.345Z
Learning: Build before running tests using .\build.ps1 -Tasks build
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Cover all scenarios and code paths
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Run tests via Invoke-PesterJob without code coverage (wildcards allowed): Invoke-PesterJob -Path '{tests filepath}' -SkipCodeCoverage
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Use nested Context blocks for complex scenarios
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to azure-pipelines.yml : Add all integration test script files to a group within the test stage in ./azure-pipelines.yml
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Run QA tests using: Invoke-PesterJob -Path 'tests/QA' -SkipCodeCoverage
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : All public commands, private functions, and classes must have unit tests
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to build.ps1 : Setup build and test environment once per pwsh session using: ./build.ps1 -Tasks noop
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : All public commands and class-based resources must have integration tests
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Avoid unnecessary remove/recreate cycles
Applied to files:
.vscode/tasks.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: dsccommunity.SqlServerDsc (Build Package Module)
- GitHub Check: PSScriptAnalyzer
- GitHub Check: PSScriptAnalyzer
🔇 Additional comments (2)
.gitattributes (1)
4-7: Policy shift: PS files → LF. Please confirm guideline sync.This inverts prior guidance we learned (“use CR+LF for .ps1/.psm1/.psd1”). If the repo standard moved to LF, ensure the guideline docs and any linters/hooks reflect that to avoid churn.
.vscode/tasks.json (1)
43-47: Build task LGTM — flags present.build.ps1 declares -AutoRestore and -UseModuleFast switch parameters and a -Tasks parameter (default '.'), checks for $Tasks -contains 'build', and calls Invoke-Build -Task $Tasks. No changes required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
.vscode/tasks.json (3)
91-131: Prevent tests from running if the setup step fails.Chaining with “;” does not short‑circuit; tests may run after a failed noop. Short‑circuit or split into dependent tasks.
Apply one of these:
- "command": "./build.ps1 -Tasks noop;Invoke-PesterJob -Path './tests/Unit/Classes','./tests/Unit/Private','./tests/Unit/Public','./tests/QA' -SkipCodeCoverage", + "command": "./build.ps1 -Tasks noop; if (!$?) { exit 1 }; Invoke-PesterJob -Path './tests/Unit/Classes','./tests/Unit/Private','./tests/Unit/Public','./tests/QA' -SkipCodeCoverage",Or:
+ "dependsOn": ["noop-setup"],(and add a separate “noop-setup” task running
./build.ps1 -Tasks noop).
133-139: Add explicit coverage artifact path.Helps locate/report coverage reliably in CI and locally.
- "command": "./build.ps1 -Tasks noop;Invoke-PesterJob -Path './tests/Unit/Classes','./tests/Unit/Private','./tests/Unit/Public','./tests/QA'", + "command": "./build.ps1 -Tasks noop; if (!$?) { exit 1 }; Invoke-PesterJob -Path './tests/Unit/Classes','./tests/Unit/Private','./tests/Unit/Public','./tests/QA' -CodeCoverageOutputFile './testResults/coverage.xml'",
179-180: Confirm intent: coverage threshold set to 0.If you want gating, set a non‑zero threshold or externalize to a repo setting.
- "command": "./build.ps1 -AutoRestore -UseModuleFast -Tasks hqrmtest -CodeCoverageThreshold 0", + "command": "./build.ps1 -AutoRestore -UseModuleFast -Tasks hqrmtest -CodeCoverageThreshold 70",Alternatively, read from env:
-CodeCoverageThreshold ${env:HQRMCoverageThreshold:-0}.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.vscode/tasks.json(5 hunks)
🧰 Additional context used
🧠 Learnings (10)
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to build.ps1 : Build the project before running tests using: ./build.ps1 -Tasks build
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Cover all scenarios and code paths
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Run tests via Invoke-PesterJob without code coverage (wildcards allowed): Invoke-PesterJob -Path '{tests filepath}' -SkipCodeCoverage
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Use nested Context blocks for complex scenarios
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to azure-pipelines.yml : Add all integration test script files to a group within the test stage in ./azure-pipelines.yml
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Run QA tests using: Invoke-PesterJob -Path 'tests/QA' -SkipCodeCoverage
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : All public commands, private functions, and classes must have unit tests
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : All public commands and class-based resources must have integration tests
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-14T19:16:56.190Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/SqlServerDsc-guidelines.instructions.md:0-0
Timestamp: 2025-09-14T19:16:56.190Z
Learning: Applies to build.ps1 : Setup build and test environment once per pwsh session using: ./build.ps1 -Tasks noop
Applied to files:
.vscode/tasks.json
📚 Learning: 2025-09-12T13:21:31.054Z
Learnt from: CR
PR: dsccommunity/SqlServerDsc#0
File: .github/instructions/dsc-community-style-guidelines-pester.instructions.md:0-0
Timestamp: 2025-09-12T13:21:31.054Z
Learning: Applies to **/*.[Tt]ests.ps1 : Avoid unnecessary remove/recreate cycles
Applied to files:
.vscode/tasks.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: dsccommunity.SqlServerDsc (Build Package Module)
- GitHub Check: PSScriptAnalyzer
🔇 Additional comments (4)
.vscode/tasks.json (4)
20-26: Good: cross‑platform pwsh via /usr/bin/env.This improves portability on Linux. Confirm that pwsh is preinstalled/on PATH in your dev containers/agents.
32-37: Good: macOS now resolves pwsh via env.Consistent with Linux; reduces hard‑coded paths. Ensure contributors have PowerShell 7+ installed.
45-49: Build task defaults look fine.Group default is correct for VS Code. No action.
96-131: Validate the custom problemMatcher against Pester v5 output.Regex may not align with current Pester formatting; otherwise errors won’t surface in Problems view.
Do a quick check by forcing a failing test and confirm Problems entries populate with file/line.
Pull Request (PR) description
This Pull Request (PR) fixes the following issues
Task list
file CHANGELOG.md. Entry should say what was changed and how that
affects users (if applicable), and reference the issue being resolved
(if applicable).
This change is