Sampler.psd1

@{
    # Script module or binary module file associated with this manifest.
    RootModule        = 'Sampler.psm1'

    # Version number of this module.
    ModuleVersion     = '0.111.0'

    # Supported PSEditions
    # CompatiblePSEditions = @('Desktop','Core') # Removed to support PS 5.0

    # ID used to uniquely identify this module
    GUID              = 'b59b8442-9cf9-4c4b-bc40-035336ace573'

    # Author of this module
    Author            = 'Gael Colas'

    # Company or vendor of this module
    CompanyName       = 'SynEdgy Limited'

    # Copyright statement for this module
    Copyright         = '(c) Gael Colas. All rights reserved.'

    # Description of the functionality provided by this module
    Description       = 'Sample Module with Pipeline scripts and its Plaster template to create a module following some of the community accepted practices.'

    # Minimum version of the Windows PowerShell engine required by this module
    PowerShellVersion = '5.0'

    # Modules that must be imported into the global environment prior to importing this module
    RequiredModules   = @(
        'Plaster'
    )

    # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
    NestedModules     = @()

    # Functions to export from this module
    FunctionsToExport = @('Add-Sample','Convert-SamplerHashtableToString','Get-BuildVersion','Get-BuiltModuleVersion','Get-ClassBasedResourceName','Get-CodeCoverageThreshold','Get-MofSchemaName','Get-OperatingSystemShortName','Get-PesterOutputFileFileName','Get-SamplerAbsolutePath','Get-SamplerBuiltModuleBase','Get-SamplerBuiltModuleManifest','Get-SamplerCodeCoverageOutputFile','Get-SamplerCodeCoverageOutputFileEncoding','Get-SamplerModuleInfo','Get-SamplerModuleRootPath','Get-SamplerProjectName','Get-SamplerSourcePath','Merge-JaCoCoReport','New-SampleModule','New-SamplerJaCoCoDocument','Out-SamplerXml','Split-ModuleVersion','Update-JaCoCoStatistic')

    # Cmdlets to export from this module
    CmdletsToExport   = ''

    # Variables to export from this module
    VariablesToExport = ''

    # Aliases to export from this module
    AliasesToExport   = '*'

    # List of all modules packaged with this module
    ModuleList        = @()

    # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
    PrivateData       = @{
        PSData = @{
            # Extension for Plaster Template discoverability with `Get-PlasterTemplate -IncludeInstalledModules`
            Extensions   = @(
                @{
                    Module         = 'Plaster'
                    minimumVersion = '1.1.3'
                    Details        = @{
                        TemplatePaths = @(
                            'Templates\Classes'
                            'Templates\ClassResource'
                            'Templates\Composite'
                            'Templates\Enum'
                            'Templates\MofResource'
                            'Templates\PrivateFunction'
                            'Templates\PublicCallPrivateFunctions'
                            'Templates\PublicFunction'
                            'Templates\Sampler'
                        )
                    }
                }
            )

            # Tags applied to this module. These help with module discovery in online galleries.
            Tags         = @('Template', 'pipeline', 'plaster', 'DesiredStateConfiguration', 'DSC', 'DSCResourceKit', 'DSCResource', 'Windows', 'MacOS', 'Linux')

            # A URL to the license for this module.
            LicenseUri   = 'https://github.com/gaelcolas/Sampler/blob/main/LICENSE'

            # A URL to the main website for this project.
            ProjectUri   = 'https://github.com/gaelcolas/Sampler'

            # A URL to an icon representing this module.
            IconUri      = 'https://raw.githubusercontent.com/gaelcolas/Sampler/main/Sampler/assets/sampler.png'

            # ReleaseNotes of this module
            ReleaseNotes = '## [0.111.0-preview0008] - 2021-05-13
 
### Added
 
- Added new public command `New-SamplerJaCoCoDocument`.
- Added new public command `Out-SamplerXml`.
- Added new private function `New-SamplerXmlJaCoCoCounter`.
- Added new build task `Import_Pester` ([issue #223](https://github.com/gaelcolas/Sampler/issues/223)).
- Added new build task `Invoke_Pester_Tests_v5` ([issue #223](https://github.com/gaelcolas/Sampler/issues/223)).
  - Task `Invoke_Pester_Tests_v5` will not run if Pester 4 is used in the pipeline.
- Added unit test for public command `Get-BuildVersion`.
 
### Changed
 
- Renamed default branch to `main` ([issue #235](https://github.com/gaelcolas/Sampler/issues/235)).
- Added a public alias `Set-SamplerTaskVariable` that points to the script
  `Set-SamplerTaskVariable.ps1` in the tasks folder. This alias is used to
  dot-source task variables for re-use over multiple build tasks.
- Moved code from build task `Convert_Pester_Coverage` into a public function
  `New-SamplerJaCoCoDocument`.
- It is now possible to specify module''s semantic version in the build.yml using
  the key `SemVer`, e.g. `SemVer: ''99.0.0-preview1''`. This can be used if the
  preferred method of using GitVersion is not available, and it is not possible
  to set the session environment variable `$env:ModuleVersion`, nor setting the
  variable `$ModuleVersion` in the PowerShell session (parent scope) before
  running the task `build` ([issue #279](https://github.com/gaelcolas/Sampler/issues/279)).
- Templates
  - build.yaml
    - Comment Pester tag exclusion for all templates so that the default is
      to use all QA test.
    - Added comment task `Convert_Pester_Coverage` for the _test_ task.
    - Removed leftovers from key DscTest that was kept when using template
      ''SimpleModule''.
    - Updated with entries to support several code coverage scenarios, some
      initially commented.
  - azure-pipelines_dsccommunity.yml
    - Updated with the latest code coverage scenarios, some initially
      commented.
  - azure-pipelines.yml
    - Updated with the latest code coverage merge scenario.
  - codecov_dsccommunity.yml
    - Removed and replaced with codecov.yml.template
  - codecov.yml.template
    - Codecov.yml is now added for several templates and features. Content
      is dependent on the template that is used.
  - Now the template ''dsccommunity'' gets a `README.md` file.
- Task `Invoke_Pester_Test` was renamed to `Invoke_Pester_Tests_v4`.
  - Pester 5 support was removed from the task and replaced with `Invoke_Pester_Tests_v5`
  - Task `Invoke_Pester_Tests_v4` will not run if Pester 5 is used in the pipeline.
- Meta build task `Pester_Tests_Stop_On_Fail` was change to run `Import_Pester`,
  `Invoke_Pester_Tests_v4` (previously `Invoke_Pester_Test`), and `Invoke_Pester_Tests_v5`.
  - Task `Invoke_Pester_Tests_v4` will not run if Pester 5 is used in the pipeline.
  - Task `Invoke_Pester_Tests_v5` will not run if Pester 4 is used in the pipeline.
- The task _Convert\_Pester\_Coverage_ was changed to support converting
  Pester 5 code coverage.
- The function `Get-CodeCoverageThreshold` was changed to support Pester 5
  advanced build configuration.
- The function `Get-SamplerCodeCoverageOutputFile` was changed to support Pester 5
  advanced build configuration.
 
### Fixed
 
- Renamed task file from `Merge-CodeCoverageFiles.pester.build.ps1` to `JaCoCo.coverage.build.ps1`.
- Move task _Convert_Pester_Coverage_ to task file `JaCoCo.coverage.build.ps1`.
- Resolve-Dependency.ps1: fix MinimumPSDependVersion comparison.
- Resolve-Dependency.ps1: add -Force to all Save-Module.
- `New-SamplerJaCoCoDocument`
  - Fixed counters when a method only had either one hit line or one missed line.
- Now unit tests properly test the function in the built module, not the
  ones that the pipeline dot-sources into session to be able to dogfooding
  itself.
- Fix so that _Convert\_Pester\_Coverage_ correctly replaces build version
  with source folder in JaCoCo file.
 
'


            Prerelease   = 'preview0008'
        } # End of PSData hashtable
    } # End of PrivateData hashtable
}