Sampler.psd1

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

    # Version number of this module.
    ModuleVersion     = '0.117.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-Psm1SchemaName','Get-SamplerAbsolutePath','Get-SamplerBuiltModuleBase','Get-SamplerBuiltModuleManifest','Get-SamplerCodeCoverageOutputFile','Get-SamplerCodeCoverageOutputFileEncoding','Get-SamplerModuleInfo','Get-SamplerModuleRootPath','Get-SamplerProjectName','Get-SamplerSourcePath','Invoke-SamplerGit','Merge-JaCoCoReport','New-SampleModule','New-SamplerJaCoCoDocument','New-SamplerPipeline','Out-SamplerXml','Set-SamplerPSModulePath','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.117.0-preview0002] - 2023-09-21
 
### Added
 
- Integration tests to build and import a module created using the Plaster
  template _SimpleModule_.
- Support [ModuleFast](https://github.com/JustinGrote/ModuleFast) when
  restoring dependencies by adding the parameter `UseModuleFast` to the
  `build.ps1`, e.g. `./build.ps1 -Tasks noop -ResolveDependency -UseModuleFast`
  or by enabling it in the configuration file Resolve-Dependency.psd1.
  Using ModuleFast will resolve dependencies much faster, but requires
  PowerShell 7.2.
 
### Changed
 
- Task `publish_nupkg_to_gallery`
  - Add support for publishing a NuGet package to a gallery using the .NET SDK in addition to using nuget.exe. Fixes [#433](https://github.com/gaelcolas/Sampler/issues/433)
- Split up unit tests and integration tests in separate pipeline jobs since
  integration tests could change state on a developers machine, and in the
  current PowerShell session. Integration tests no longer run when running
  `./build.ps1 -Tasks test`. To run integration tests pass the parameter
  `PesterPath`, e.g. `./build.ps1 -Tasks test -PesterPath ''tests/Integration''`.
- Added sample private function and public function samples to Plaster template
  _SimpleModule_ so that it is possible to run task `test` without it failing.
- Sample Private function tests updated to Pester 5.
- Sample Public function tests updated to Pester 5.
- Sampler''s build.ps1 and the template build.ps1 was aligned.
 
### Fixed
 
- Fix unit tests that was wrongly written and failed on Pester 5.5.
- There was different behavior on PowerShell and Windows PowerShell when
  creating the module manifest. So when the `modify` section that was meant
  to reuse the already present but commented `Prerelease` key it also ran
  the `modify` statement that adds a `Prerelease` key that is needed for
  a module manifest that is created under Windows PowerShell. This resulted
  in two `Prerelease` keys when creating a module under PowerShell 7.x.
  Now it will add a commented `Perelease` key and then next `modify` statement
  will remove the comment, making it work on all version of PowerShell.
  Fixes [#436](https://github.com/gaelcolas/Sampler/issues/436).
- The QA test template was updated so that it is possible to run the tests
  without the need to add a git remote (remote `origin`).
 
'


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