From 125e679795157f6ce316b1503a7b0e05ba38bd40 Mon Sep 17 00:00:00 2001 From: Daniel Scott-Raynsford Date: Sun, 10 Apr 2022 17:35:59 +1200 Subject: [PATCH 1/4] Updated pipeline files to use latest ubuntu images --- .github/CONTRIBUTING.md | 4 +- .../ISSUE_TEMPLATE/Problem_with_resource.yml | 86 +++++++++++++++++++ .github/ISSUE_TEMPLATE/Resource_proposal.yml | 39 +++++++++ .github/ISSUE_TEMPLATE/config.yml | 6 ++ .github/PULL_REQUEST_TEMPLATE.md | 31 ++++--- CHANGELOG.md | 7 ++ SECURITY.md | 30 +++++++ azure-pipelines.yml | 6 +- build.yaml | 16 +++- codecov.yml | 1 + 10 files changed, 211 insertions(+), 15 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/Problem_with_resource.yml create mode 100644 .github/ISSUE_TEMPLATE/Resource_proposal.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 SECURITY.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 79a46819..f6895ab3 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1 +1,3 @@ -If you'd like to contribute to this project, please review the [Contribution Guidelines](https://github.com/PowerShell/DscResources/blob/master/CONTRIBUTING.md). +# Contributing + +Please check out common DSC Community [contributing guidelines](https://dsccommunity.org/guidelines/contributing). diff --git a/.github/ISSUE_TEMPLATE/Problem_with_resource.yml b/.github/ISSUE_TEMPLATE/Problem_with_resource.yml new file mode 100644 index 00000000..752e902f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Problem_with_resource.yml @@ -0,0 +1,86 @@ +name: Problem with a resource +description: If you have a problem, bug, or enhancement with a resource in this resource module. +labels: [] +assignees: [] +body: + - type: markdown + attributes: + value: | + Please prefix the issue title (above) with the resource name, e.g. 'ResourceName: Short description of my issue'! + + Your feedback and support is greatly appreciated, thanks for contributing! + - type: textarea + id: description + attributes: + label: Problem description + description: Details of the scenario you tried and the problem that is occurring. + validations: + required: true + - type: textarea + id: logs + attributes: + label: Verbose logs + description: | + Verbose logs showing the problem. **NOTE! Sensitive information should be obfuscated.** _Will be automatically formatted as plain text._ + placeholder: | + Paste verbose logs here + render: text + validations: + required: true + - type: textarea + id: configuration + attributes: + label: DSC configuration + description: | + The DSC configuration that is used to reproduce the issue (as detailed as possible). **NOTE! Sensitive information should be obfuscated.** _Will be automatically formatted as PowerShell code._ + placeholder: | + Paste DSC configuration here + render: powershell + validations: + required: true + - type: textarea + id: suggestedSolution + attributes: + label: Suggested solution + description: Do you have any suggestions how to solve the issue? + validations: + required: true + - type: textarea + id: targetNodeOS + attributes: + label: Operating system the target node is running + description: | + Please provide as much as possible about the target node, for example edition, version, build, and language. _Will be automatically formatted as plain text._ + + On OS with WMF 5.1 the following command can help get this information: `Get-ComputerInfo -Property @('OsName','OsOperatingSystemSKU','OSArchitecture','WindowsVersion','WindowsBuildLabEx','OsLanguage','OsMuiLanguages')` + placeholder: | + Add operating system information here + render: text + validations: + required: true + - type: textarea + id: targetNodePS + attributes: + label: PowerShell version and build the target node is running + description: | + Please provide the version and build of PowerShell the target node is running. _Will be automatically formatted as plain text._ + + To help with this information, please run this command: `$PSVersionTable` + placeholder: | + Add PowerShell information here + render: text + validations: + required: true + - type: textarea + id: moduleVersion + attributes: + label: ComputerManagementDsc version + description: | + Please provide the version of the ComputerManagementDsc module that was used. _Will be automatically formatted as plain text._ + + To help with this information, please run this command: `Get-Module -Name 'ComputerManagementDsc' -ListAvailable | ft Name,Version,Path` + placeholder: | + Add module information here + render: text + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/Resource_proposal.yml b/.github/ISSUE_TEMPLATE/Resource_proposal.yml new file mode 100644 index 00000000..2ddd0986 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Resource_proposal.yml @@ -0,0 +1,39 @@ +name: New resource proposal +description: If you have a new resource proposal that you think should be added to this resource module. +title: "NewResourceName: New resource proposal" +labels: [] +assignees: [] +body: + - type: markdown + attributes: + value: | + Please replace `NewResourceName` in the issue title (above) with your proposed resource name. + + Thank you for contributing and making this resource module better! + - type: textarea + id: description + attributes: + label: Resource proposal + description: Provide information how this resource will/should work and how it will help users. + validations: + required: true + - type: textarea + id: proposedProperties + attributes: + label: Proposed properties + description: | + List all the proposed properties that the resource should have (key, required, write, and/or read). For each property provide a detailed description, the data type, if a default value should be used, and if the property is limited to a set of values. + value: | + Property | Type qualifier | Data type | Description | Default value | Allowed values + --- | --- | --- | --- | --- | --- + PropertyName | Key | String | Detailed description | None | None + validations: + required: true + - type: textarea + id: considerations + attributes: + label: Special considerations or limitations + description: | + Provide any considerations or limitations you can think of that a contributor should take in account when coding the proposed resource, and or what limitations a user will encounter or should consider when using the proposed resource. + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..9917040e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,6 @@ +blank_issues_enabled: false +contact_links: + - name: "Virtual PowerShell User Group #DSC channel" + url: https://dsccommunity.org/community/contact/ + about: "To talk to the community and maintainers of DSC Community, please visit the #DSC channel." + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8f9fed13..e9f674de 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -11,21 +11,29 @@ You may remove this comment block, and the other comment blocks, but please keep the headers and the task list. --> + #### Pull Request (PR) description + #### This Pull Request (PR) fixes the following issues + #### Task list + -- [ ] Added an entry under the Unreleased section of the change log in the CHANGELOG.md. - Entry should say what was changed, and how that affects users (if applicable). -- [ ] Resource documentation added/updated in README.md in resource folder. -- [ ] Resource parameter descriptions added/updated in schema.mof + +- [ ] Added an entry to the change log under the Unreleased section of the + file CHANGELOG.md. Entry should say what was changed and how that + affects users (if applicable), and reference the issue being resolved + (if applicable). +- [ ] Resource documentation added/updated in README.md. +- [ ] Resource parameter descriptions added/updated in README.md, schema.mof and comment-based help. - [ ] Comment-based help added/updated. - [ ] Localization strings added/updated in all localization files as appropriate. - [ ] Examples appropriately added/updated. -- [ ] Unit tests added/updated. See [DSC Resource Testing Guidelines](https://github.com/PowerShell/DscResources/blob/master/TestsGuidelines.md). -- [ ] Integration tests added/updated (where possible). See [DSC Resource Testing Guidelines](https://github.com/PowerShell/DscResources/blob/master/TestsGuidelines.md). -- [ ] New/changed code adheres to [DSC Resource Style Guidelines](https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md) and [Best Practices](https://github.com/PowerShell/DscResources/blob/master/BestPractices.md). +- [ ] Unit tests added/updated. See [DSC Community Testing Guidelines](https://dsccommunity.org/guidelines/testing-guidelines). +- [ ] Integration tests added/updated (where possible). See [DSC Community Testing Guidelines](https://dsccommunity.org/guidelines/testing-guidelines). +- [ ] New/changed code adheres to [DSC Community Style Guidelines](https://dsccommunity.org/styleguidelines). diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e45889a..34154677 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Corrected code coverage badge in `README.md`. - Updated build pipeline tasks and remove unused environment variables. - Removed duplicate code coverage badge. +- Added Publish_GitHub_Wiki_Content task to publish stage of build + pipeline - Fixes [Issue #383](https://github.com/dsccommunity/ComputerManagementDsc/issues/383). +- Updated .github issue templates to standard - Fixes [Issue #383](https://github.com/dsccommunity/ComputerManagementDsc/issues/383). +- Added Create_ChangeLog_GitHub_PR task to publish stage of build pipeline. +- Added SECURITY.md. +- Updated pipeline Deploy_Module anb Code_Coverage jobs to use ubuntu-latest + images - Fixes [Issue #383](https://github.com/dsccommunity/ComputerManagementDsc/issues/382). ### Fixed diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..7bd7bc20 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,30 @@ +## Security + +The DSC Community takes the security of our modules seriously, which includes all source code repositories managed through our GitHub organization. + +If you believe you have found a security vulnerability in any DSC Community owned repository, please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Instead, please report them to one or several members of the DSC Community organization. +The easiest way to do so is to send us a direct message via twitter or slack. + +You should receive a response within 48 hours. If for some reason you do not, please follow up to other member of the community. + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + + * Type of issue + * Full paths of source file(s) related to the manifestation of the issue + * The location of the affected source code (tag/branch/commit or direct URL) + * Any special configuration required to reproduce the issue + * Step-by-step instructions to reproduce the issue + * Proof-of-concept or exploit code (if possible) + * Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +## Preferred Languages + +We prefer all communications to be in English. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 36c25024..9d9dd85d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -24,7 +24,7 @@ stages: - job: Package_Module displayName: 'Package Module' pool: - vmImage: 'ubuntu 16.04' + vmImage: 'ubuntu-latest' steps: - task: GitVersion@5 name: gitversion @@ -123,7 +123,7 @@ stages: displayName: 'Publish Code Coverage' dependsOn: Test_Unit_2016 pool: - vmImage: 'ubuntu 16.04' + vmImage: 'ubuntu-latest' timeoutInMinutes: 0 steps: - task: DownloadPipelineArtifact@2 @@ -273,7 +273,7 @@ stages: - job: Deploy_Module displayName: 'Deploy Module' pool: - vmImage: 'ubuntu 16.04' + vmImage: 'ubuntu-latest' steps: - task: DownloadPipelineArtifact@2 displayName: 'Download Pipeline Artifact' diff --git a/build.yaml b/build.yaml index 400b63b0..fc032085 100644 --- a/build.yaml +++ b/build.yaml @@ -48,9 +48,10 @@ BuildWorkflow: - Pester_If_Code_Coverage_Under_Threshold publish: + - publish_module_to_gallery - Publish_Release_To_GitHub - - Publish_Module_To_gallery - Publish_GitHub_Wiki_Content + - Create_ChangeLog_GitHub_PR #################################################### # PESTER Configuration # @@ -108,3 +109,16 @@ GitHubConfig: GitHubConfigUserName: dscbot GitHubConfigUserEmail: dsccommunity@outlook.com UpdateChangelogOnPrerelease: false + +#################################################### +# DscResource.DocGenerator Configuration # +#################################################### +DscResource.DocGenerator: + Generate_Conceptual_Help: + MarkdownCodeRegularExpression: + - '\`(.+?)\`' # Match inline code-block + - '\\(\\)' # Match escaped backslash + - '\[[^\[]+\]\((.+?)\)' # Match markdown URL + - '_(.+?)_' # Match Italic (underscore) + - '\*\*(.+?)\*\*' # Match bold + - '\*(.+?)\*' # Match Italic (asterisk) diff --git a/codecov.yml b/codecov.yml index 0034d7da..eea8290c 100644 --- a/codecov.yml +++ b/codecov.yml @@ -24,5 +24,6 @@ coverage: target: auto threshold: 5 +# This is not needed if the module only contain class-based resources. fixes: - '^\d+\.\d+\.\d+::source' # move path "X.Y.Z" => "source" From 7293bcfa81462909cf65d4a18c513100c46fdbfe Mon Sep 17 00:00:00 2001 From: Daniel Scott-Raynsford Date: Sun, 10 Apr 2022 17:51:25 +1200 Subject: [PATCH 2/4] Replaced gitversion task --- CHANGELOG.md | 1 + azure-pipelines.yml | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34154677..9d7ea98a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - PendingReboot - Fixed issue with loading localized data on non en-US operating systems - Fixes [Issue #350](https://github.com/dsccommunity/ComputerManagementDsc/issues/350). +- Replaced the GitVersion task in the `azure-pipelines.yml` with script. ## [8.4.0] - 2020-08-03 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9d9dd85d..58ed97af 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,22 +26,25 @@ stages: pool: vmImage: 'ubuntu-latest' steps: - - task: GitVersion@5 - name: gitversion - displayName: 'Evaluate Next Version' - inputs: - runtime: 'core' - configFilePath: 'GitVersion.yml' + - pwsh: | + dotnet tool install --global GitVersion.Tool + $gitVersionObject = dotnet-gitversion | ConvertFrom-Json + $gitVersionObject.PSObject.Properties.ForEach{ + Write-Host -Object "Setting Task Variable '$($_.Name)' with value '$($_.Value)'." + Write-Host -Object "##vso[task.setvariable variable=$($_.Name);]$($_.Value)" + } + Write-Host -Object "##vso[build.updatebuildnumber]$($gitVersionObject.FullSemVer)" + displayName: Calculate ModuleVersion (GitVersion) - task: PowerShell@2 name: package displayName: 'Build & Package Module' inputs: filePath: './build.ps1' - arguments: '-Tasks pack -ResolveDependency' + arguments: '-ResolveDependency -tasks pack' pwsh: true env: - ModuleVersion: $(gitVersion.Informationalversion) + ModuleVersion: $(NuGetVersionV2) - task: PublishPipelineArtifact@1 displayName: 'Publish Pipeline Artifact' From 81d00f7f23e5efb1caf0abac8156424094c4b005 Mon Sep 17 00:00:00 2001 From: Daniel Scott-Raynsford Date: Sun, 10 Apr 2022 18:09:22 +1200 Subject: [PATCH 3/4] Update pipeline image versions --- CHANGELOG.md | 5 ++++- azure-pipelines.yml | 34 +++++++++++++++++----------------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d7ea98a..8295ad34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added SECURITY.md. - Updated pipeline Deploy_Module anb Code_Coverage jobs to use ubuntu-latest images - Fixes [Issue #383](https://github.com/dsccommunity/ComputerManagementDsc/issues/382). +- Updated pipeline unit tests and integration tests to use Windows Server 2019 and + Windows Server 2022 images - Fixes [Issue #383](https://github.com/dsccommunity/ComputerManagementDsc/issues/382). ### Fixed @@ -55,7 +57,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - PendingReboot - Fixed issue with loading localized data on non en-US operating systems - Fixes [Issue #350](https://github.com/dsccommunity/ComputerManagementDsc/issues/350). -- Replaced the GitVersion task in the `azure-pipelines.yml` with script. +- Fixed pipeline by replacing the GitVersion task in the `azure-pipelines.yml` + with a script. ## [8.4.0] - 2020-08-03 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 58ed97af..83ce0a15 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -86,10 +86,10 @@ stages: testRunTitle: 'HQRM' condition: succeededOrFailed() - - job: Test_Unit_2016 - displayName: 'Unit (Windows Server 2016)' + - job: Test_Unit_2019 + displayName: 'Unit (Windows Server 2019)' pool: - vmImage: 'vs2017-win2016' + vmImage: 'windows-2019' timeoutInMinutes: 0 steps: - task: DownloadPipelineArtifact@2 @@ -112,7 +112,7 @@ stages: inputs: testResultsFormat: 'NUnit' testResultsFiles: '$(buildFolderName)/$(testResultFolderName)/NUnit*.xml' - testRunTitle: 'Unit (Windows Server 2016)' + testRunTitle: 'Unit (Windows Server 2019)' condition: succeededOrFailed() - task: PublishPipelineArtifact@1 @@ -124,7 +124,7 @@ stages: - job: Code_Coverage displayName: 'Publish Code Coverage' - dependsOn: Test_Unit_2016 + dependsOn: Test_Unit_2019 pool: vmImage: 'ubuntu-latest' timeoutInMinutes: 0 @@ -154,10 +154,10 @@ stages: bash <(curl -s https://codecov.io/bash) -f "./$(buildFolderName)/$(testResultFolderName)/JaCoCo_coverage.xml" displayName: 'Publish Code Coverage to Codecov.io' - - job: Test_Integration_2016 - displayName: 'Integration (Windows Server 2016)' + - job: Test_Integration_2019 + displayName: 'Integration (Windows Server 2019)' pool: - vmImage: 'vs2017-win2016' + vmImage: 'windows-2019' timeoutInMinutes: 0 steps: - task: DownloadPipelineArtifact@2 @@ -192,13 +192,13 @@ stages: inputs: testResultsFormat: 'NUnit' testResultsFiles: '$(buildFolderName)/$(testResultFolderName)/NUnit*.xml' - testRunTitle: 'Integration (Windows Server 2016)' + testRunTitle: 'Integration (Windows Server 2019)' condition: succeededOrFailed() - - job: Test_Unit_2019 - displayName: 'Unit (Windows Server 2019)' + - job: Test_Unit_2022 + displayName: 'Unit (Windows Server 2022)' pool: - vmImage: 'windows-2019' + vmImage: 'windows-2022' timeoutInMinutes: 0 steps: - task: DownloadPipelineArtifact@2 @@ -221,13 +221,13 @@ stages: inputs: testResultsFormat: 'NUnit' testResultsFiles: '$(buildFolderName)/$(testResultFolderName)/NUnit*.xml' - testRunTitle: 'Unit (Windows Server 2019)' + testRunTitle: 'Unit (Windows Server 2022)' condition: succeededOrFailed() - - job: Test_Integration_2019 - displayName: 'Integration (Windows Server 2019)' + - job: Test_Integration_2022 + displayName: 'Integration (Windows Server 2022)' pool: - vmImage: 'windows-2019' + vmImage: 'windows-2022' timeoutInMinutes: 0 steps: - task: DownloadPipelineArtifact@2 @@ -258,7 +258,7 @@ stages: inputs: testResultsFormat: 'NUnit' testResultsFiles: '$(buildFolderName)/$(testResultFolderName)/NUnit*.xml' - testRunTitle: 'Integration (Windows Server 2019)' + testRunTitle: 'Integration (Windows Server 2022)' condition: succeededOrFailed() - stage: Deploy From f679412af08ac9184692715c3ca105299a47bd7d Mon Sep 17 00:00:00 2001 From: Daniel Scott-Raynsford Date: Sun, 10 Apr 2022 20:05:45 +1200 Subject: [PATCH 4/4] Removed unused .GitHub template files --- .../ISSUE_TEMPLATE/Problem_with_resource.md | 57 ------------------- .github/ISSUE_TEMPLATE/Resource_proposal.md | 21 ------- 2 files changed, 78 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/Problem_with_resource.md delete mode 100644 .github/ISSUE_TEMPLATE/Resource_proposal.md diff --git a/.github/ISSUE_TEMPLATE/Problem_with_resource.md b/.github/ISSUE_TEMPLATE/Problem_with_resource.md deleted file mode 100644 index 2431f65c..00000000 --- a/.github/ISSUE_TEMPLATE/Problem_with_resource.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -name: Problem with a resource -about: If you have a problem, bug, or enhancement with a resource in this resource module. ---- - -#### Details of the scenario you tried and the problem that is occurring - -#### Verbose logs showing the problem - -#### Suggested solution to the issue - -#### The DSC configuration that is used to reproduce the issue (as detailed as possible) -```powershell -# insert configuration here -``` - -#### The operating system the target node is running - - -#### Version and build of PowerShell the target node is running - - -#### Version of the DSC module that was used ('dev' if using current dev branch) diff --git a/.github/ISSUE_TEMPLATE/Resource_proposal.md b/.github/ISSUE_TEMPLATE/Resource_proposal.md deleted file mode 100644 index 9f2a069a..00000000 --- a/.github/ISSUE_TEMPLATE/Resource_proposal.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: New resource proposal -about: If you have a new resource proposal that you think should be added to this resource module. ---- - -### Description - -### Proposed properties - -### Special considerations or limitations