- Make sure to error out on PSM1 file missing
- Improve error handling
- Update BuildModule.yml by @SamErde in #27
- Improve error handling
- Improve DLL handling
- Add new options for binary cmdlet scanning
- Fixes detecting cmdlets in binary modules for PS 5.1
- Other small improvements
- @SamErde made their first contribution in #27
Full Changelog: https://github.com/EvotecIT/PSPublishModule/compare/v2.0.14...v2.0.15
- Adding cmdlet detection by @PrzemyslawKlys in #25
- Add custom and builtin place holders replacement functionality by @PrzemyslawKlys in #26
Full Changelog: https://github.com/EvotecIT/PSPublishModule/compare/v2.0.13...v2.0.14
- When using
New-ConfigurtionManifest
and usingCmdletsToExport
it would not export them in PSM1 file. This is now fixed - Moved function to separate file to improve visibility
- Always publish to Github with PreReleaseTag if it's set
- Added support for HelpOut module to be used for help generation (platyPS will stay default for now)
- Added support for
NETIgnoreLibraryOnLoad
inNew-ConfigurationBuild
to allow for ignoring libraries on load (for example C/C++ dlls) - Added support for
NETBinaryModule
inNew-ConfigurationBuild
to allow for building binary modules (C#) and doing Import-Module in PSM1 for them - Improves detection of used functions/aliases in module (now it's more accurate)
- When using
New-ConfigurationArtefact
with Script artefact type and removal of comments it would break the whole script. This is now fixed - Fixes case where during binary module building the DLL would not be used at all
- Improvement to
TargetFramework
andTargetFrameworks
support when using C# projects.TargetFrameworkVersion
is not supported. - Added support for
NETHandleAssemblyWithSameName
inNew-ConfigurationBuild
to allow for handling of assemblies with same name (for example Newtonsoft.Json) - Improved loading of libraries to use foreach instead of loading one by one
- Removed dependency on
PlatyPS
/HelpOut
. Now it's optional and can be used if needed. HelpOut does have some issues that I hope will be solved sooner or later - Improved creating empty PSM1 file when Public/Private folders have no files or are not present
- Added
NETProjectPath
toNew-ConfigurationBuild
to allow for specifying path to project file (csproj) when building binary modules - Improve
New-ConfigurationManifest
allowing to defineFunctionsToExport
andCmdletsToExport
andAliasesToExport
to allow for more control over exported functions/cmdlets/aliases (by default Aliaeses/Functions are exported but you can overwrite them)
- Fix for broken script generation if
New-ConfigurationCommand
is used
- Fix for paths that I've broken in 2.0.9
- Added usage of OpenAuthenticode from @jborean93 to allow for signing of modules on Linux/MacOS
- The module is not automatically installed, you need to install it yourself
- May need to be updated, as haven't really tested it
- Improve error handling
- Added
NETExcludeMainLibrary
to not include Initialize library if no logic is required - Added
NETExcludeLibraryFilter
to allow for excluding libraries from being copied on build - Added
PreScriptMergePath
andPostScriptMergePath
to allow for files implementation instead of direct code inNew-ConfigurationArtefact
- This supplements using
PreScriptMerge
andPostScriptMerge
(which are still supported, but overwritten when usingPreScriptMergePath
andPostScriptMergePath
)
- This supplements using
- Added to
New-ConfigurationArtefact
replacement of variables in paths (for example<TagModuleVersionWithPreRelease>
) - Added to
New-ConfigurationArtefact
-DoNotClear
parameter to allow for not clearing of artefact folder, by default it will delete it's content with excluded .zip files (if any)
- Fixes problem with defaults such as IncludeAll, IncludePS1 and similar always being set preventing user from overwriting values on demand
- Fixes remove comments functionality
- Added remove empty lines functionality
- Small fixes on PSD1 generation (sorting fixed)
Full Changelog: https://github.com/EvotecIT/PSPublishModule/compare/v2.0.4...v2.0.5
- Adding support for Manual version bumping. by @cocazoulou in #21
- @cocazoulou made their first contribution in #21
Full Changelog: https://github.com/EvotecIT/PSPublishModule/compare/v2.0.3...v2.0.4
- Fix for non-terminating error when can't delete folders
- Fail build script if copying of module fails
- Improve
New-ConfigurationArtefact
to allow for more flexibility for "scripts"- Added
PreScriptMerge
andPostScriptMerge
- Remove
ScriptMerge
(renamed toPostScriptMerge
) - Added
ScriptName
to allow for custom name of script (renames the file from usual module name)
- Added
- Fixes to Import-Module functionality
- Fixes wrong path for packed zip
- Added handling of wrong certificate thumbrint
- Prevent failure on required modules
- Stop on missing requirede module
- Fixes
ModuleVersionWithPreRelease
-andTagModuleVersionWithPreRelease
tags
- Fix for old configuration supporting releases and releases unpacked
- Fix for ModuleName in old configuration
- Allow to publish module Artefacts to GitHub using single
New-ConfigurationPublish
by marking multiple artefacts with same ID - Small visual improvements
- Added
RequiredVersion
toNew-ConfigurationModule
to allow specifying exact version instead the minimum version - Minor bugfix for potential issue with CommandModuleDependencies
- Added ability to create multiple artefacts (not just 2) by using
New-ConfigurationArtefact
- Added ability to pick from 4 types of artefacts (Unpacked, Packed, Script, PackedScript)
- Unpacked - unpacked module
- Packed - packed module (as zip)
- Script - script that is module in form of PS1 without PSD1 - only applicable to very simple modules
- PackedScript - packed module (as zip) that is script that is module in form of PS1 without PSD1 - only applicable to very simple modules
- Added ability to publish multiple artefacts (not just 2) by using
New-ConfigurationPublish
- Removed
PreReleaseTag
fromNew-ConfigurationPublish
- Added
PreReleaseTag
toNew-ConfigurationManifest
to allow specifying pre-release tag PreReleaseTag
is autoamtically used for GitHub publishing when Manifest is set to prerelease
- Improve
New-ConfigurationBuild
by adding CertificatePFXPath, CertificatePFXBase64, CertificatePFXPassword to support GitHub Actions/AzureDevOps - Fixes copy of files during build process
- Fix exit code when build fails
- Improve logic for replacing expandable variables and allow disabling this feature
- Impovements overall
- Improve logic for detection of used functions
- Update default configuration for new modules
- Fixes detection of unknown functions in module
- Fixes minor issue with reading required modules
- Improve termination when things go wrong
- Fix replacement of GUID in module manifest when creating new module
- Fix for duplicate detection of used functions
- Improve termination when things go wrong
- Small fixes here and there
- Added ability to test after merge before publishing
- Improve initially provided files when creating new module for easy use
- Autogenerate the example Build-Module.ps1 file for new projects
- Update GUID/ModuleName based on data provided by user
- Other small improvements
- Big rewrite of PSPublishModule allowing more configuration options
- New configuration options
- New safety checks in place
- Adds local versioning via BuildModule\LocalVersion property (bumps version on every build)
- No longer delete older tagged unpacked releases (only current) when tagging is enabled
- Allows to specify Releases property in BuildModule\Releases. Both Enabled/Path need to be specified. If not specified it will use default values.
- Changed loading of libraries so it's always done in following way:
- If Standard, Core and Default are present -> load Default when PS 5, load Standard when PS 6+
- If Standard, Default are present -> load Default when PS 5, load Standard when PS 6+
- If Standard and Core are present -> load Standard only
- If Core and Default are present -> load Default when PS 5, load Core when PS 6+
- If Standard is present -> load Standard only for all PowerShell
I've removed the logic where Standard would always get loaded even if Default/Core was also provided which could lead to unexpected behavior.
- Added ability to build libraries on demand (when using -BuildLibraries). Requires more testing.
- Cleaned code a bit, moved things around
- Added ability to ResolveBinaryConflicts (when using -ResolveBinaryConflicts). Requires more testing. Visible in project ImagePlayground
- Removed need for
DirectoryProjects
in$Configuration.Information
- if not present it will get the value itself
- Fixed path behavior for ReleasedUnpacked (hopefully)
- Small fixes for publishing modules with Standard Libraries only
- Improved building of Artefacts