dotnet new templates for scaffolding Bowire protocol plugins.
Will be published to nuget.org as Kuestenlogik.Bowire.Templates once the accompanying Kuestenlogik.Bowire SDK is public; NuGet version / download badges are added at that point.
dotnet new install Kuestenlogik.Bowire.Templates| Template | Short name | Kind | Docs |
|---|---|---|---|
| Bowire Protocol Plugin | bowire-plugin |
project | docs/BowirePluginTemplate.md |
| Bowire CLI command | bowire-cli-cmd |
item | adds an IBowireCliCommand scaffold (bowire <verb>) |
| Bowire mock emitter | bowire-mock-emit |
item | adds an IBowireMockEmitter scaffold (recording replay) |
bowire-plugin is a project template — scaffolds a full plugin repo. The two item templates drop a single C# file into an existing Bowire-plugin project so you can wire in additional extension points without re-scaffolding.
# Full project scaffold
dotnet new bowire-plugin -n Contoso.Bowire.Protocol.Foo
cd Contoso.Bowire.Protocol.Foo
dotnet test
# Add a `bowire foo` CLI subcommand to that plugin
dotnet new bowire-cli-cmd -n FooCommand --Verb foo
# Add a recording-replay emitter to that plugin
dotnet new bowire-mock-emit -n FooMockEmitter --EmitterId fooSee docs/BowirePluginTemplate.md for the full parameter list and what the generated scaffold does. --ProjectOnly true emits just the two csprojs (no solution, no build props) for dropping into an existing monorepo.
dotnet new uninstall Kuestenlogik.Bowire.TemplatesBowire.Templates/
├── Kuestenlogik.Bowire.Templates.csproj # template pack project
├── RELEASE_NOTES.md # single source of truth for version + changelog
├── build.ps1 # injects RELEASE_NOTES into the csproj before pack
├── nuget.config # nuget.org + local Bowire feed
├── docs/ # per-template markdown docs
├── scripts/ # dev + CI helpers
│ ├── install-dev-templates.ps1 # local dev loop: pack + uninstall + install
│ ├── test-templates.ps1 # smoke-test both template variants
│ ├── getReleaseNotes.ps1
│ └── bumpVersion.ps1
└── src/
├── bowire-plugin/ # project template (full plugin repo)
│ ├── .template.config/
│ ├── src/Bowire.Plugin1/
│ └── tests/Bowire.Plugin1.Tests/
├── bowire-cli-cmd/ # item template — IBowireCliCommand scaffold
│ ├── .template.config/
│ └── MyCommand.cs
└── bowire-mock-emit/ # item template — IBowireMockEmitter scaffold
├── .template.config/
└── MyMockEmitter.cs
Local dev loop:
./scripts/install-dev-templates.ps1
# -> produces bin/Release/Kuestenlogik.Bowire.Templates.<version>.nupkg and installs itRun the same smoke tests CI runs:
./scripts/test-templates.ps1 -BowireSdkVersion 0.9.4 -Install-Install packs and installs the template from the current sources before
running the smoke tests. Leave it off if you already ran
install-dev-templates.ps1 separately.
The -BowireSdkVersion parameter pins Kuestenlogik.Bowire to a local Prerelease package (check C:\Projekte\KL\Bowire\artifacts\packages\ for the latest build). Omit it to use whatever is published to nuget.org.
Apache 2.0 — see LICENSE.