Sampler.psd1

#
# Module manifest for module 'Sampler'
#
# Generated by: Gael Colas
#
# Generated on: 06/12/2026
#

@{

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

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

# Supported PSEditions
# CompatiblePSEditions = @()

# 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 PowerShell engine required by this module
PowerShellVersion = '5.0'

# Name of the PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# ClrVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''

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

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()

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

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = 'Add-Sample', 'Convert-SamplerHashtableToString', 
               'Get-BuiltModuleVersion', 'Get-ClassBasedResourceName', 
               'Get-CodeCoverageThreshold', 'Get-MofSchemaName', 
               'Get-OperatingSystemShortName', 'Get-PesterOutputFileFileName', 
               'Get-Psm1SchemaName', 'Get-SamplerAbsolutePath', 
               'Get-SamplerBuildVersion', 'Get-SamplerBuiltModuleBase', 
               'Get-SamplerBuiltModuleManifest', 
               'Get-SamplerCodeCoverageOutputFile', 
               'Get-SamplerCodeCoverageOutputFileEncoding', 
               'Get-SamplerModuleInfo', 'Get-SamplerModuleRootPath', 
               'Get-SamplerProjectBuildInfo', '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, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()

# Variables to export from this module
# VariablesToExport = @()

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = '*'

# DSC resources to export from this module
# DscResourcesToExport = @()

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

# List of all files packaged with this module
# FileList = @()

# 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 = @{

    #Extensions of this module
    Extensions =  @('System.Collections.Hashtable')

    PSData = @{

        # 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.119.2-preview0007] - 2026-06-12
 
### Added
 
- `package_psresource_nupkg` tasks that recursively packs dependencies, ignoring `ExternalDependencies` using `PSResourceGet` module.
- `New-SampleModule` `Features` parameter now accepts `github`, `vscode`, `codecov`, `azurepipelines`, and `gitversion` to mirror the Plaster template''s feature choices.
- `New-SampleModule` documents the `CustomModule` `ModuleType` and the new `MainGitBranch` parameter.
- `New-SampleModule` `ModuleType` `ValidateSet` now includes `CustomModule`.
- `New-SampleModule` exposes a `MainGitBranch` parameter (defaults to `main`) for templates that configure a default Git branch.
- GitHub Copilot guidance for the project under `.github/`:
  - `copilot-instructions.md` documenting build/test/quality commands, the mandatory `./build.ps1` entry point, high-level architecture, key conventions (changelog discipline, `-ErrorAction ''Ignore''` preference, cross-platform/cross-version PS5.1+PS7 support), guidance for running long builds without hanging the agent shell (always tee output to a log file), and how to extract test failures from the Pester NUnit XML and HQRM CliXml result files.
  - Per-area `instructions/*.instructions.md` files for public functions, private functions, Plaster templates, build tasks, and Pester tests.
  - `agents/sampler-maintainer.md` agent definition and the `skills/validate-changes` skill that picks the smallest useful test scope and surfaces XML-based failure diagnostics.
 
### Changed
 
- `New-SampleModule` no longer splits `ModuleType` and `Features` into separate parameter sets, so both can be supplied in the same invocation.
- Pester task setup now still supports repository-only test runs without a prebuilt module, but fails fast when a PowerShell module test workflow is invoked before the module output has been built.
- Documented the separation between source kind and artifact context in build-task guidance, clarified module-versus-non-module version fallback rules, and expanded the README with pipeline-shape documentation for module, alternate-artifact, and standalone repository flows.
- Added `Get-SamplerProjectBuildInfo` and updated Pester build tasks to use its `BuildType`/`HasBuiltOutput` project model directly instead of Pester-specific setup/import/identity wrapper functions.
- Pinned `ModuleBuilder` to `3.1.8` in `RequiredModules.psd1` because newer versions break Sampler task alias registration during tests.
- Temporarily skip the `SimpleModule` integration tests that depend on building the sample module on Windows PowerShell 5.1 while `ModuleBuilder` 3.2 is broken there.
 
### Fixed
 
- Update URL for PowerShell gallery pre-release badge ([#553](https://github.com/gaelcolas/Sampler/issues/553)).
- Update azure-pipelines task PublishCodeCoverageResults to v2 ([#551](https://github.com/gaelcolas/Sampler/issues/551)).
- Updated comment-based help for Resolve-Dependency.ps1
- Moved large parts of the ReadMe to the Wiki to handle Include simple tutorials in the Wiki ([issue #487](https://github.com/gaelcolas/Sampler/issues/487))
- Expanded the `CustomModule` section in the wiki `Getting-started` page to document the `-Features` parameter, list every supported feature value and show non-interactive examples.
- `Sampler` Plaster template
  - Fixed `Features` choice values so `azurepipelines`, `vscode`, `github`, and `codecov` are valid multichoice values (previously the Azure Pipelines option was unusable).
  - Fixed prompt conditions for `UseGit`, `UseGitVersion`, `UseCodeCovIo`, `UseGitHub`, `UseAzurePipelines`, `UseVSCode`, `License`, and `LicenseType` which contained contradictory `Features.Count` checks that prevented prompts from ever firing.
  - Fixed `GitHubOwner` condition that used `-contains` against an integer (`Features.Count`).
  - Replaced `${PLASTER_PARAM_Features} -in @(...)` checks with explicit `-contains` checks so multichoice `Features` arrays are evaluated correctly.
  - Fixed the `azure-pipelines.yml` file condition that referenced the non-existent `Azure-Pipelines` feature value.
  - Aligned `New-SampleModule` `Features` `ValidateSet` casing with the template''s choice values.
- Made `Add-Sample` and `New-SamplerPipeline` resolve Plaster''s culture-aware manifest-path helper at runtime so they work with both Plaster v2.x (`Get-PlasterManifestPathForCulture`) and Plaster v1.x (`GetPlasterManifestPathForCulture`).
- `Set-SamplerTaskVariable` now infers module sources from the source manifest, uses an explicit Chocolatey artifact context instead of build-output probing, and falls back to version `0.0.1` for non-module repositories when no manifest or GitVersion data is available.
 
'


        # Prerelease string of this module
        Prerelease = 'preview0007'

        # Flag to indicate whether the module requires explicit user acceptance for install/update/save
        # RequireLicenseAcceptance = $false

        # External dependent modules of this module
        # ExternalModuleDependencies = @()

    } # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}