All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- #92 Add Authenticode
code-signing support for PowerShell modules with three new public functions:
Get-PSBuildCertificate- Resolves code-signing X509Certificate2 objects from certificate store, PFX files, Base64-encoded environment variables, or pre-resolved certificate objectsInvoke-PSBuildModuleSigning- Signs PowerShell module files (*.psd1, *.psm1, *.ps1) with Authenticode signatures supporting configurable timestamp servers and hash algorithmsNew-PSBuildFileCatalog- Creates Windows catalog (.cat) files for tamper detection
- New build tasks for module signing pipeline:
SignModule,BuildCatalog,SignCatalog,Sign(meta-task) - Extended
$PSBPreference.Signconfiguration section with certificate source selection, timestamp server configuration, hash algorithm options, and catalog generation settings
- Remove extra backticks during localization text migration.
- Add new dependencies variables to allow end user to modify which tasks are run.
- Add localization support.
- The
$PSBPreferencevariable now supports the following PlatyPSNew-MarkdownHelpandUpdate-MarkdownHelpboolean options:$PSBPreference.Docs.AlphabeticParamsOrder$PSBPreference.Docs.ExcludeDontShow$PSBPreference.Docs.UseFullTypeName
- The
$PSBPreferencevariable now supports the following Pester test configuration options:$PSBPreference.Test.SkipRemainingOnFailurecan be set to None, Run, Container and Block. The default value is None.$PSBPreference.Test.OutputVerbositycan be set to None, Normal, Detailed, and Diagnostic. The default value is Detailed.
- Fix a bug in
Build-PSBuildMarkdownwhere a hashtable item was added twice.
- #71 Compiled modules are now explicitly created as UTF-8 files.
- #67 You can now
overwrite existing markdown files using
$PSBPreference.Docs.Overwriteand setting it to$true. - #72 Loosen
dependencies by allowing them to be overwritten with
$PSBPreference.TaskDependencies.
- Bump Pester to latest 5.6.1
- #52 Pester object wasn't being passed back after running tests, causing the Pester task to never fail (via @webtroter)
- #55 Add
-Moduleparameter toBuild-PSBuildUpdatableHelp(via @IMJLA) - #60 Fix Windows
PowerShell compatibility in
Initialize-PSBuild(via @joshooaj) - #62 Fix code coverage output fle format not working (via @OpsM0nkey)
- Fixed bug in IB task
GenerateMarkdownwhen dot sourcing precondition
- #50 Invoke-Build tasks brought inline with psake equivalents (via @JustinGrote)
- New code coverage parameters for setting output path and format:
$PSBPreference.Test.CodeCoverage.OutputFile- Output file path for code coverage results$PSBPreference.Test.CodeCoverage.OutputFileFormat- Code coverage output format
-
When "compiling" a monolithic PSM1, add support for both inserting headers/footers for the entire PSM1, and for each script file. Control these via the following new build parameters (via @pauby)
$PSBPreference.Build.CompileHeader$PSBPreference.Build.CompileFooter$PSBPreference.Build.CompileScriptHeader$PSBPreference.Build.CompileScriptFooter
-
Add ability to import project module from output directory prior to executing Pester tests. Toggle this with
$PSBPreference.Test.ImportModule. Defaults to$false. (via @joeypiccola) -
Use
$PSBPreference.Build.CompileDirectoriesto control directories who's contents will be concatenated into the PSM1 when$PSBPreference.Build.CompileModuleis$true. Defaults to@('Enum', 'Classes', 'Private', 'Public'). -
Use
$PSBPreference.Build.CopyDirectoriesto control directories that will be copied "as is" into the built module. Default is an empty array.
-
$PSBPreference.Build.Excludenow should be a list of regex expressions when$PSBPreference.Build.CompileModuleis$false(default). -
Use Pester v5
-
Overriding
$PSBPreference.Build.OutDirnow correctly determines the final module output directory.$PSBPreference.Build.ModuleOutDiris now computed internally and SHOULD NOT BE SET DIRECTLY.$PSBPreference.Build.OutDirwill accept both relative and fully-qualified paths. -
Before, when
$PSBPreference.Build.CompileModulewas set to$true, any files listed in$PSBPreference.Build.Excludeweren't being excluded like they should have been. Now, when it is$true, files matching regex expressions in$PSBPreference.Build.Excludewill be properly excluded (via @pauby) -
$PSBPreference.Help.DefaultLocalenow defaults toen-USon Linux since it is not correctly determined withGet-UICulture.
- Allow using both
CredentialandApiKeywhen publishing a module (via @pauby)
- Don't overwrite Pester parameters when specifying
OutputPathorOutputFormat(via @ChrisLGardner)
- Don't create module page MD file.
- Refactor build properties into a single hashtable
$PSBPreference
-
#11 The Invoke-Build tasks are now auto-generated from the psake tasks via a converter script (via @JustinGrote)
-
#19 Allow the
BHBuildOutputenvironment variable defined byBuildHelpersto be set via the$PSBPreference.Build.ModuleOutDirproperty of the build tasks (via @pauby)
- Add
Publishtask to publish the module to the defined PowerShell Repository (PSGallery by default).
- #4 Fix syntax for
Analyzetask inIB.tasks.ps1(via @nightroman)
- Initial commit