Skip to content

Remove boilerplate scaffold and prepare repository for Jwt development #11

@MariusStorhaug

Description

The Jwt module repository was initialized from the PSModule framework scaffold template. The template includes placeholder code (classes, functions, variables, data files, formats, types) that demonstrates the module structure but has no relevance to JWT functionality. Developers cloning the repo encounter template code (Book class, Planets variables, Get-PSModuleTest functions) that obscures the actual module purpose.

Request

Desired experience

A clean repository containing only the minimum module infrastructure (functions/public/ directory structure) and a single placeholder New-Jwt function that signals the module is under development. No template artifacts remain.

Acceptance criteria

  • All scaffold classes removed (Book.ps1, SecretWriter.ps1)
  • All scaffold functions removed (Get-PSModuleTest, New-PSModuleTest, Set-PSModuleTest, Test-PSModuleTest, Get-InternalPSModule, Set-InternalPSModule)
  • All scaffold variables, data files, formats, types, init scripts, nested modules, and scripts removed
  • Template header.ps1, finally.ps1, and src/README.md removed
  • Template examples/ folder removed
  • Template manifest.psd1 removed (optional file — not needed until module metadata is defined)
  • A single New-Jwt placeholder function exists in src/functions/public/
  • Test file renamed to Jwt.Tests.ps1 with a single test for the placeholder function
  • README.md rewritten for the Jwt module (name, description, install, usage)
  • Code coverage target in .github/PSModule.yml set to 0% during initial development

Technical decisions

Retained structure: The src/functions/public/ directory is kept — it is required by the Build-PSModule build process. Additional directories (classes/, functions/private/) and files (manifest.psd1) will be recreated when needed by #3.

Manifest file: src/manifest.psd1 is optional in the PSModule framework — it is only needed to override generated values. Removed to keep the repo minimal; will be added back when module metadata (description, tags, project URI) is defined during #3.

Placeholder function: New-Jwt emits a Write-Warning indicating it is not yet implemented. This ensures the module has a valid exported function for CI to test against, and signals to consumers that the module is in development.

Code coverage: Lowered from 50% to 0% because the placeholder function has no meaningful logic to cover. Will be raised as implementation progresses in #3.

Relationship to #3: This issue handles the "Skeleton cleanup" section of the implementation plan in #3. The remaining tasks in #3 (classes, functions, module configuration, tests) build on the clean state produced here.


Implementation plan

Removals

  • Remove template classes (Book.ps1, SecretWriter.ps1) and src/classes/ directory
  • Remove template functions (Get-PSModuleTest.ps1, New-PSModuleTest.ps1, Set-PSModuleTest.ps1, Test-PSModuleTest.ps1, Get-InternalPSModule.ps1, Set-InternalPSModule.ps1) and src/functions/private/ directory
  • Remove template variables (Moons.ps1, Planets.ps1, SolarSystems.ps1, PrivateVariables.ps1) and src/variables/ directory
  • Remove src/data/, src/formats/, src/types/, src/init/, src/modules/, src/scripts/, src/assemblies/
  • Remove src/header.ps1, src/finally.ps1, src/README.md
  • Remove src/manifest.psd1
  • Remove examples/ folder

Additions and updates

  • Create src/functions/public/New-Jwt.ps1 placeholder function
  • Rename test file to tests/Jwt.Tests.ps1 with single placeholder test
  • Rewrite README.md for the Jwt module
  • Lower code coverage target to 0% in .github/PSModule.yml

Metadata

Metadata

Assignees

No one assigned

    Labels

    PatchSmall fixes or improvements

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions