- Clone and enter this plugin repo.
- Run plugin bootstrap once.
- Update plugin DB connection in
.env. - Run integrated core+plugin development flow.
Clone:
git clone <your-plugin-repo-url> turbo-sample-plugin
cd turbo-sample-pluginBootstrap (PowerShell):
pwsh -File scripts/bootstrap.ps1Bootstrap (bash/zsh):
sh scripts/bootstrap.shSet PLUGIN_DEV_CONNECTION in .env, then run integrated workflow:
PowerShell:
pwsh -File scripts/dev-integrated.ps1bash/zsh:
sh scripts/dev-integrated.shThis repository is a plugin project for the Turbo emulator ecosystem.
It is loaded by the emulator in the sibling turbo-cloud repository and is not a standalone host app.
your-dev-folder/
turbo-cloud/
turbo-sample-plugin/
This sibling layout is required for project references and integrated scripts.
- .NET SDK 9.x (pinned via
global.json) - Git
- MySQL (or compatible database)
Check SDK:
dotnet --version| Command | Scope | Default? | Use when |
|---|---|---|---|
dotnet build TurboSamplePlugin/TurboSamplePlugin.csproj |
Plugin only | Yes | Normal plugin development |
dotnet build ../turbo-cloud/Turbo.Main/Turbo.Main.csproj |
Core only | No | Validating core build independently |
dotnet build ../turbo-cloud/Turbo.Cloud.sln |
Full integrated workspace | No | One-window emulator + plugin validation |
For protocol parser/serializer placement and naming, use:
TurboSamplePlugin/Revision/README.md
This file explicitly defines the cross-repo boundary:
- plugin repo owns revision parsers/serializers
- core repo owns runtime host/domain orchestration
For Boost-style AI task recipes and prompt contract, use:
../turbo-cloud/AGENTS.md(canonical source)- Local tool adapters:
CLAUDE.mdCODEX.md
- Fast local commit check:
dotnet build TurboSamplePlugin/TurboSamplePlugin.csproj -t:TurboSamplePluginFastCheck
- Full quality gate (pre-push + CI):
dotnet build TurboSamplePlugin/TurboSamplePlugin.csproj -t:TurboSamplePluginQualityGate
Hooks are repository-managed in .githooks:
pre-commitruns staged-filedotnet formatstyle verification, then fast check.pre-pushruns full quality gate.
This repo exposes integrated helpers for one-window plugin development:
PowerShell:
pwsh -File scripts/dev-integrated.ps1bash/zsh:
sh scripts/dev-integrated.shBuild-only mode:
- PowerShell:
pwsh -File scripts/dev-integrated.ps1 -BuildOnly - bash/zsh:
sh scripts/dev-integrated.sh --build-only
Equivalent integrated helpers also exist in turbo-cloud/scripts/.
Create .env from .env.example and set:
PLUGIN_DEV_CONNECTION=server=127.0.0.1;user=root;password=password;database=turboFrom TurboSamplePlugin.DesignTime:
dotnet ef migrations add Init --project ../TurboSamplePlugin/TurboSamplePlugin.csproj --startup-project . --context SampleDbContext --output-dir ../TurboSamplePlugin/MigrationsSymptoms:
- Build fails on missing references under
..\..\turbo-cloud\.... - Integrated scripts fail to locate
Turbo.Main.csproj.
Fix:
- Ensure
turbo-cloudis cloned as a sibling folder next toturbo-sample-plugin.
Symptoms:
Turbo.Mainruns but plugin features are missing.
Fix:
- Ensure
turbo-cloud/appsettings.Development.jsoncontainsTurbo:Plugin:DevPluginPathspointing to this plugin output folder.
Symptoms:
- Build errors about unsupported
net9.0.
Fix:
- Install .NET SDK 9.x and re-run
dotnet --version.
Run:
dotnet tool restore
dotnet format TurboSamplePlugin/TurboSamplePlugin.csproj style --verify-no-changes
dotnet format TurboSamplePlugin/TurboSamplePlugin.csproj analyzers --verify-no-changes
dotnet build TurboSamplePlugin/TurboSamplePlugin.csproj -t:TurboSamplePluginQualityGateIf your checkout predates .gitattributes normalization, line endings may need a fresh checkout before running repo-wide format checks.
See CONTRIBUTING.md for build scope, quality policy, and integrated workflow commands.