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-preview0003] - 2023-09-24
 
### 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.
- Support for [PSResourceGet (beta release)](https://github.com/PowerShell/PSResourceGet).
  If the modules PSResourceGet can be bootstrapped they will be used. If
  PSResourceGet cannot be bootstrapped then it will revert to using
  PowerShellGet v2.2.5. If the user requests or configures to use ModuleFast
  then that will override both PSResourceGet and PowerShellGet. The method
  PSResourceGet can be enabled in the configuration file Resolve-Dependency.psd1.
  It is also possible to use PSResourceGet by adding the parameter `UsePSResourceGet`
  to the `build.ps1`, e.g. `./build.ps1 -Tasks noop -ResolveDependency -UsePSResourceGet`.
- When using PSResourceGet to resolve dependencies it also possible to
  use PowerShellGet v2.9.0 (previous _CompatPowerShellGet_). To use the
  compatibility module it can be enabled in the configuration file Resolve-Dependency.psd1.
  It is also possible to use it by adding the parameter `UsePowerShellGetCompatibilityModule`
  to the `build.ps1`, e.g. `./build.ps1 -Tasks noop -ResolveDependency -UsePSResourceGet -UsePowerShellGetCompatibilityModule`.
  _The 2.9.0-preview has since then been unlisted, the compatibility_
  _module will now be released as PowerShellGet v3.0.0._
 
### 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.
- PowerShell Team will release the PSResourceGet compatibility module
  (previously known as CompatPowerShellGet) as PowerShellGet v2.9.0 (or
  higher). The resolve dependency script, when PowerShellGet is used, will
  use `MaximumVersion` set to `2.8.999` to make sure the expected
  PowerShellGet version is installed, today that it is v2.2.5.
  _The 2.9.0-preview has since then been unlisted, the compatibility_
  _module will now be released as PowerShellGet v3.0.0._
 
### 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   = 'preview0003'
        } # End of PSData hashtable
    } # End of PrivateData hashtable
}