The PSModule/Hcl repository was created from the PSModule template and contains boilerplate placeholder content that is unrelated to the HCL language. The module is intended to provide PowerShell tooling for HashiCorp Configuration Language (HCL), the data language used in Terraform, OpenTofu, and related infrastructure-as-code tooling. Common use cases include parsing .tf configuration files, .tfvars variable files, and locals {} blocks.
Request
Desired capability
The module requires an initial 0.0.1 release to reserve the name on the PowerShell Gallery and establish the correct module structure. The template boilerplate (PSModuleTest, SomethingElse, greet-entity examples) must be removed and replaced with HCL-specific placeholder functions (ConvertFrom-Hcl and ConvertTo-Hcl) that throw NotImplementedException until the full implementation is complete. The README must describe the HCL use case rather than the generic template content.
Acceptance criteria
- All template boilerplate files are removed from the repository
ConvertFrom-Hcl and ConvertTo-Hcl are present as placeholder functions that throw NotImplementedException
src/manifest.psd1 specifies ModuleVersion = '0.0.1'
README.md describes the HCL module purpose, installation, and usage with HCL-specific examples
tests/Hcl.Tests.ps1 contains a simple test verifying each placeholder function throws as expected
examples/General.ps1 contains a minimal HCL usage example
- A pull request targeting
main triggers the CI/CD pipeline to publish version 0.0.1 to the PowerShell Gallery
Technical decisions
Placeholder pattern: Follow the established pattern from PSModule/Toml#init — each placeholder function accepts the relevant input parameter, discards it with $null = $InputObject, and throws [System.NotImplementedException] with a descriptive message.
Functions: Two public functions — ConvertFrom-Hcl (HCL string → PowerShell object) and ConvertTo-Hcl (PowerShell object → HCL string). Both are placeholders at this stage.
Version: ModuleVersion = '0.0.1' in src/manifest.psd1. The framework default (0.0.0) is replaced to signal the first publishable release.
Files to remove: All template-generated files: src/functions/public/Test-PSModuleTest.ps1, src/functions/public/completers.ps1, src/functions/public/PSModule/ (directory), src/functions/public/SomethingElse/ (directory), and tests/PSModuleTest.Tests.ps1.
Files to add or update: README.md, src/manifest.psd1, src/functions/public/ConvertFrom-Hcl.ps1, src/functions/public/ConvertTo-Hcl.ps1, tests/Hcl.Tests.ps1, examples/General.ps1.
Branch name: init — consistent with the PSModule/Toml initialization pattern.
Implementation plan
Remove boilerplate
Add HCL-specific content
Release
The PSModule/Hcl repository was created from the PSModule template and contains boilerplate placeholder content that is unrelated to the HCL language. The module is intended to provide PowerShell tooling for HashiCorp Configuration Language (HCL), the data language used in Terraform, OpenTofu, and related infrastructure-as-code tooling. Common use cases include parsing
.tfconfiguration files,.tfvarsvariable files, andlocals {}blocks.Request
Desired capability
The module requires an initial
0.0.1release to reserve the name on the PowerShell Gallery and establish the correct module structure. The template boilerplate (PSModuleTest,SomethingElse, greet-entity examples) must be removed and replaced with HCL-specific placeholder functions (ConvertFrom-HclandConvertTo-Hcl) that throwNotImplementedExceptionuntil the full implementation is complete. The README must describe the HCL use case rather than the generic template content.Acceptance criteria
ConvertFrom-HclandConvertTo-Hclare present as placeholder functions that throwNotImplementedExceptionsrc/manifest.psd1specifiesModuleVersion = '0.0.1'README.mddescribes the HCL module purpose, installation, and usage with HCL-specific examplestests/Hcl.Tests.ps1contains a simple test verifying each placeholder function throws as expectedexamples/General.ps1contains a minimal HCL usage examplemaintriggers the CI/CD pipeline to publish version0.0.1to the PowerShell GalleryTechnical decisions
Placeholder pattern: Follow the established pattern from PSModule/Toml#init — each placeholder function accepts the relevant input parameter, discards it with
$null = $InputObject, and throws[System.NotImplementedException]with a descriptive message.Functions: Two public functions —
ConvertFrom-Hcl(HCL string → PowerShell object) andConvertTo-Hcl(PowerShell object → HCL string). Both are placeholders at this stage.Version:
ModuleVersion = '0.0.1'insrc/manifest.psd1. The framework default (0.0.0) is replaced to signal the first publishable release.Files to remove: All template-generated files:
src/functions/public/Test-PSModuleTest.ps1,src/functions/public/completers.ps1,src/functions/public/PSModule/(directory),src/functions/public/SomethingElse/(directory), andtests/PSModuleTest.Tests.ps1.Files to add or update:
README.md,src/manifest.psd1,src/functions/public/ConvertFrom-Hcl.ps1,src/functions/public/ConvertTo-Hcl.ps1,tests/Hcl.Tests.ps1,examples/General.ps1.Branch name:
init— consistent with thePSModule/Tomlinitialization pattern.Implementation plan
Remove boilerplate
src/functions/public/Test-PSModuleTest.ps1src/functions/public/completers.ps1src/functions/public/PSModule/Get-PSModuleTest.ps1src/functions/public/PSModule/New-PSModuleTest.ps1src/functions/public/PSModule/PSModule.mdsrc/functions/public/SomethingElse/Set-PSModuleTest.ps1src/functions/public/SomethingElse/SomethingElse.mdtests/PSModuleTest.Tests.ps1Add HCL-specific content
README.mdwith HCL module description, installation, and usage examplessrc/manifest.psd1toModuleVersion = '0.0.1'src/functions/public/ConvertFrom-Hcl.ps1placeholdersrc/functions/public/ConvertTo-Hcl.ps1placeholdertests/Hcl.Tests.ps1with NotImplementedException assertionsexamples/General.ps1with HCL exampleRelease
inittomainto trigger the0.0.1publish pipeline