You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project owes some acknowlegement to other projects. Here are some other authors or projects which have made this project possible. If you believe you or a project should be included in this list please let us know.
5
+
This project owes some acknowledgements to other projects. Here are some other authors or projects which have made this project possible. If you believe you or a project should be included in this list please let us know.
6
6
7
7
[Invoke-Build](https://github.com/nightroman/Invoke-Build) - A kick ass build automation tool written in PowerShell. It is the primary engine behind this little project.
8
8
9
9
[Plaster](https://github.com/PowerShell/Plaster) - Used for the code scaffolding portion of this project.
10
10
11
11
[PSCodeHealth](https://github.com/MathieuBuisson/PSCodeHealth) - PowerShell code health reporting.
- Fixed issue with NLog by updating PlaterContent.ps1
8
+
- Fixed issue with Make.ps1 By adding --tags --always
9
+
- Fixed issue with Make.ps1. Write-Description -level 3 should be used instead of Write-Output
10
+
- Fixed issue with Get-SpecialPaths function by adding LoadBuildTools on InstallAndTestModule
11
+
- Fixed issue with -SourceModule parameter on Initialize-ModuleBuild
12
+
- Fixed issue with the -AddCBH when there are no Params.
13
+
- Fixed issue with URLS in README.md. It was missing links to VSCode and the PS Extension.
14
+
- Fixed issue with the link to ChangeLog. ChangeLog in index.md was plural.
15
+
- Fixed issue that where caused when you where not using PlatyPS 0.12.0.
16
+
- Fixed issue with syntax highlight that was caused by the CommentBasedHelp function.
17
+
- Update ModuleBuild to adhere to the PSGallery ScriptAnalyzer ruleset.
18
+
- ModuleBuild no uses a standalone PSScriptAnalyzerSettings.psd1
19
+
- Updated ModuleBuild/.vscode/settings.json to include default indent size, set indent to space and use the project specific PSScriptAnalyzerSettings.psd1 file.
20
+
- Build reports are now saved on the following path `build\reports\$ModuleVersion\`.
21
+
- Included functions that are used during the build process are moved to its own repository.
22
+
- Included functions that are used during the build process are renamed to avoid conflicts with other modules.
23
+
- ModuleBuild now uses PSDepend to manage Build dependencies.
24
+
- ModuleBuild now uses PSDepend to manage Plugins.
25
+
- Revamped included tests.
26
+
- Make.ps1 is no longer dotsourced but included in `MakePlasterManifest.ps1`
27
+
- Updated the build scripts to better support CI/CD.
28
+
- The included version of Plater is moved to the Plugin folder.
29
+
- Added a AppVeyor.yml template to the scaffold.
30
+
- Cleaned up repo. Deleted unused code. Renamed/Moved existing files.
31
+
- Updated documentation to reflect above changes.
32
+
5
33
## Version 0.2.3
34
+
6
35
- Added ability to pull in some basic information about an existing module manifest files when running initialize-modulebuild.
7
36
- Fixed ReadTheDocs generation issues by updating the template to include build\docs\ReadTheDocs in the initialization process.
8
37
- Eliminated any customization requirements within the modulename.build.ps1 script to help pave the way for easier modulebuild upgrades to projects.
9
38
- Removed some superfluous code in the base build environment script around the RequiredModules variable.
39
+
10
40
## Version 0.2.2
41
+
11
42
- Updated vscode tasks.json to fix depreciated syntax.
12
43
- Fixed `-Force` switch processing on Add-PublicFunction to still create the function if the
F438
provided name is detected as plural.
13
44
- Fixed [cleanup script modulebuild execution issue](https://github.com/zloeber/ModuleBuild/issues/5) by separating out the postbuildtask into its own Invoke-Build code block (I had done this a while ago and never rolled up the changes into the Plaster template).
14
45
- Fixed a glaring issue with the PlatyPS output where any Guids were 00000000-0000-0000-0000-000000000000 instead of the actual module manifest Guid [reported via issue #6](https://github.com/zloeber/ModuleBuild/issues/6). This happens because we build the module help from the psm1 load of the module in memory, not the psd1 file as that psd1 manifest gets recreated at build time with the appropriate exported functions and such. Basically a chicken/egg scenario. For now we just manually replace the output markdown files with the correct Guid before moving on to the help file packaging.
15
46
16
47
## Version 0.2.1
48
+
17
49
- Merged pull request #3 to resolve initialization issues for new modules in directories with spaces in their path.
18
50
- Added additional github integration (via .github folder creation with pull and issue template markdown files)
19
51
- Fixed improper spelling of 'license' in license creation templating.
20
52
21
53
## Version 0.1.10
54
+
22
55
- Fixed the -AddCBH build task.
23
56
- Fixed the missing documentation platyps output to show the actual found line that indicates missing CBH.
24
57
25
58
## Version 0.1.9
59
+
26
60
- Removed plaster option to choose to combine the module source at build time (and simply made that behavior the default that can be changed later via Set-MBTBuildEnvironment -OptionCombineFiles $false)
27
61
- Added option to run a code health report (via PSCodeHealth) against your public and private function directories prior to starting the build
28
62
- Added 'Module plugin' capability. This adds base functionality to the module project itself. The first included module plugin is the nlogmodule logging functionality.
29
63
30
64
## Version 0.1.6
65
+
31
66
- Added New-PublicFunction to module along with a template folder and basic function template to start with. Any src\templates\\\<template_name\>.tem file is able to be used for this new feature and any build environment variable surrounded by double percentage symbols will be automatically replaced (ie. %%ModuleName%%).
32
67
- Fixed ReadTheDocs yml creation issue with the licensing link.
33
68
34
69
## Version 0.1.5
70
+
35
71
- Fixed awful .gitignore settings included in the default scaffolding
36
72
- Fixed documentation links to be self-referencing
37
73
- Removed AdditionalModulePaths from initial plaster manifest (can just set this with Set-MBTBuildEnvironment after creation)
38
74
39
75
## Version 0.1.4
76
+
40
77
- Fixed invalid mkdocs.yml license link reference
41
78
- Fixed invalid reference to acknowledgements folder in plaster manifest (thanks Roberto Desideri!)
42
79
43
80
## Version 0.1.3
81
+
44
82
- Fixes to mkdocs.yml formatting
45
83
- Fixed temp build directory exclusion in .gitignore file
46
84
47
85
## Version 0.1.2
86
+
48
87
- Updated vs code task names
49
88
- Fixed an issue with a null build environment variable causing dynamic parameters in Set-MBTBuildEnvironment to fail
50
89
- Several small scaffolding clean ups.
51
90
52
91
## Version 0.1.1
92
+
53
93
- Removed prompts for the nuget api key when running initialize-modulebuild.
54
94
- Initialize-ModuleBuild now automatically runs the build environment powershell script for the first time to create the modulebuild json settings file.
- Fixed initial sensitive term settings generation to work on non-domain joined machines.
63
103
64
104
## Version 0.0.6
105
+
65
106
- Changed all template files from .ps1 or psm1 to .template and changed the plaster manifest accordingly
66
107
- Change all .<filename> files to remove the period so uploads to the gallery will work properly
67
108
- Combined the UpdateRelease and NewVersion tasks and made both promptable
68
109
- Fixed git version tag issue with the build script for the plaster manifest file.
69
110
- Removed options to prompt for different folder names (like public/private/other/temp) and updated all template files and plaster manifest file accordinly.
70
111
71
112
## Version 0.0.5
113
+
72
114
- fixes to plaster template creation
73
115
74
116
## Version 0.0.4
117
+
75
118
- fixes to psgallery upload
76
119
77
120
## Version 0.0.3
121
+
78
122
- Eliminated all '-Before' and '-After' in task definitions
79
123
- Added 'Write-Description' helper function and converted all write-build lines to use it instead (for a quick indented output that is easier on the eyes)
80
124
- Eliminated a large number of global variables in favor of simply redefining them in local tasks when required
There are some important things to be aware of if you plan on contributing to this project.
6
6
<
EED3
tr class="diff-line-row">
7
7
## Documentation
8
+
8
9
All base project documentation changes should be made against the .\build\docs\Additional markdown files. These will populate and overwrite existing document files within the .\docs folder at build time. Additionally, you should update the .\build\docs\ReadTheDocs markdown files. Note that each folder becomes its own section within ReadTheDocs and its own folder within the .\docs directory.
9
10
10
11
Finally, the Function documentation gets generated automatically based on the comment based help on each public/exported function. The function documentation markdown automatically gets populated within the .\docs\Functions folder as well as with the module release under its own docs folder. Private function CBH is not required but is encouraged.
11
12
12
13
## Development Environment
13
-
While any text editor will work well there are included task and setting json files explicitly for Visual Studio Code included with this project. I used VS Code Insiders edition but standard edition should be fine as well. The following tasks have been defined to make things a bit easier. First access the 'Pallette' (Shift+Ctrl+P or Shift+Cmd+P) and start typing in any of the following tasks to find and run them:
14
14
15
-
- Build -> Runs the Build task (also can use Shift+Ctrl+B or Shift+Cmd+B)
16
-
- Analyze -> Runs PSScriptAnalyzer against the src/public files.
17
-
- CreateProjectHelp - Creates the project level help.
18
-
- AddMissingCBH - Analyzes the existing public functions and inserts a template CBH if no CBH already exists and saves it into your scratch folder.
15
+
While any text editor will work well there are included task and setting json files explicitly for Visual Studio Code included with this project. I used VS Code Insiders edition but standard edition should be fine as well. The following tasks have been defined to make things a bit easier. Open the 'configured tasks'-menu (use Shift+Ctrl+B or Shift+Cmd+B) and start typing in any of the following tasks to find and run them:
16
+
17
+
- Build Module -> Runs the Build task
18
+
- Insert Missing COmment Based Help -> Analyzes the existing public functions and inserts a template CBH if no CBH already exists and saves it into your scratch folder.
19
+
- Run Tests -> Run Pester tests
20
+
- Test, Build, Install and Load Module -> Run the Test, build tasks but also install and try to load the module.
19
21
20
22
The plaster manifest file gets automatically recreated at build time so all you need to do is update the plasterparams.ps1 and/or plastercontent.ps1 in the plaster directory to include any required changes you need to make.
Copy file name to clipboardExpand all lines: build/docs/ReadTheDocs/Usage/3 - Build A Release.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ or
10
10
11
11
or in VS Code
12
12
13
-
Press 'Ctrl+Shift+B' then select 'Build'
13
+
Press 'Ctrl+Shift+B' then select `Build Module`
14
14
15
15
This is the heart of the ModuleBuild project. The build will go through the process of combining the source files into a monolithic psm1 file, populating the exportable functions of the release module manifest, creating online help files, analyze the script, scan for sensitive terms, and more. If everything builds without errors you will see the results populated in the release directory in two areas:
Copy file name to clipboardExpand all lines: build/docs/ReadTheDocs/Usage/9 - ModuleBuild Configuration.md
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,7 @@ You can add items directly to this file if you like and they will be loaded and
11
11
## Configuration Process
12
12
13
13
Whenever you kick off a process involving any of your build steps the ModuleName.buildenvironment.ps1 file is dot sourced into the session. When this file is invoked a few things happen:
14
+
14
15
1. The default settings that are populated from initializing the project scaffolding are assigned to the global build environment variable that is aptly called 'BuildEnv'.
15
16
2. We then look for ModuleName.buildenvironment.json. If it exists, we load and use any settings within the file over any of the default values previously defined in the buildenvironment.ps1 file.
16
17
3. We then optionally update the json config file if any of the following conditions are met:
@@ -36,6 +37,7 @@ Use this against an existing module directory to load the module into memory to
36
37
## Add-PublicFunction
37
38
38
39
This function will parse your build environment config file for the location of your function templates directory (default = src\templates) and allow you to use one of them to create a new public function for your module. Some basic validation of the function name will be done including:
This project owes some acknowlegement to other projects. Here are some other authors or projects which have made this project possible. If you believe you or a project should be included in this list please let us know.
5
+
This project owes some acknowledgements to other projects. Here are some other authors or projects which have made this project possible. If you believe you or a project should be included in this list please let us know.
6
6
7
7
[Invoke-Build](https://github.com/nightroman/Invoke-Build) - A kick ass build automation tool written in PowerShell. It is the primary engine behind this little project.
8
8
9
9
[Plaster](https://github.com/PowerShell/Plaster) - Used for the code scaffolding portion of this project.
10
10
11
11
[PSCodeHealth](https://github.com/MathieuBuisson/PSCodeHealth) - PowerShell code health reporting.
0 commit comments