Skip to content
Scott Singleton edited this page May 25, 2026 · 5 revisions

Tamp Wiki

Pack the build down tight.

A small-core, plugin-driven build automation framework for .NET. Cross-platform. Honest about resources. Forkable.

This wiki is the developer-facing reference. The main README carries the elevator pitch, origin story, and design philosophy; everything operational lives here.

Start here

  • Getting Started — install the global tool, scaffold a Build.cs, run your first target. 5 minutes.
  • Build Script Authoring — the fluent target DSL, dependencies, conditionals, failure handlers.
  • Parameter & Secret Injection[Parameter], [Secret], value-injection attributes ([Solution], [GitRepository], [NuGetPackage]).

Modules

  • Module Catalog — the canonical list of all Tamp.* packages + the version-pin convention. 50+ first-party satellites currently published, plus the typed contract packages (Tamp.Sarif, Tamp.Sbom) and the Tamp.Security.Pipeline one-import meta-package.
    • .NET toolchain: Tamp.NetCli.V8 / V9 / V10, Tamp.DotNetCoverage.V18, Tamp.Coverlet.V6, Tamp.ReportGenerator.V5, Tamp.EFCore.V8/V9/V10, Tamp.GitVersion.V6.
    • Containers / build: Tamp.Docker.V27 (incl. compose + buildx), Tamp.Helm.V3, Tamp.Sccache, Tamp.AdjacentContainer (+ .Local, .Provisioning), Tamp.Testcontainers.V4.
    • JS toolchain: Tamp.Yarn.V4, Tamp.Npm.V10, Tamp.Turbo.V2, Tamp.Vite.V5, Tamp.GraphQLCodegen.V5, Tamp.Playwright.V1, Tamp.Eslint.V9.
    • Rust + Microsoft Store ship chain: Tamp.Cargo → Tamp.Tauri.V2 → Tamp.Msix → Tamp.MicrosoftStoreCli.
    • Azure / ADO ops: Tamp.AzureCli.V2, Tamp.Bicep, Tamp.Kudu, Tamp.AzureAppService, Tamp.PostgresFlex, Tamp.AzureFunctionsCoreTools.V4, Tamp.AzureStaticWebApps.V2, Tamp.ServiceBus.V7/V8, Tamp.AdoGit, Tamp.AdoRest.V7, Tamp.AdoServiceConnection.V1, Tamp.YouTrack.
    • Classic Windows deploy chain (Wave 4): Tamp.SqlPackage, Tamp.SqlCmd, Tamp.MSBuildClassic, Tamp.MsDeploy. For hybrid / modernized .NET stacks doing .dacpac publish + on-prem IIS payload sync.
    • Supply-chain security: foundation contracts (Tamp.Sarif, Tamp.Sbom); SBOM producers (Tamp.CycloneDx.V6, Tamp.Syft); scanners (Tamp.TruffleHog.V3 secrets, Tamp.CodeQL.V2 SAST, Tamp.OpenGrep pattern-SAST, Tamp.OsvScanner.V2 SCA, Tamp.Trivy container/IaC, Tamp.Grype dep-CVE, Tamp.SonarScanner.V10 quality, Tamp.Eslint.V9 TS/JS); triage sinks (Tamp.DependencyTrack.V1, Tamp.DefectDojo.V2); one-import meta-package Tamp.Security.Pipeline.
    • Notifications: Tamp.Telegram (Slack + Discord siblings planned).
    • Source control / VCS: Tamp.GitHubCli.V2, Tamp.GitHubAttest (Sigstore-backed GitHub Artifact Attestations).
    • Foundation: Tamp.Http (base for satellite HTTP-API wrappers), Tamp.Sarif + Tamp.Sbom (typed contracts), Tamp.Templates.AspNet.

Analyzers

  • Tamp.Analyzers (TAMP001–TAMP006) — Roslyn analyzers bundled inside Tamp.Core.nupkg that catch common build-script mistakes at compile time. TAMP004 (1.6.0+) is what makes Secret.Reveal() safe to expose publicly without per-satellite InternalsVisibleTo entries. TAMP005 + TAMP006 (1.9.0+) catch <Tool> field / property names that shadow the wrapper's static class.

Tooling primitives

Execution and observability

  • Logging & VerbosityLogLevel, --verbosity, build summary table.
  • Failure HandlingFailureMode, OnFailureOf, AssuredAfterFailure, OnlyWhen vs Requires.
  • ADR-0018 diagnostics emission contractTamp.Build / Tamp.Build.Targets / Tamp.Build.Commands ActivitySources plus the Tamp.Build Meter with counters and histograms covering builds / targets / commands / memory. Compatible with any OTel pipeline; tamp-beacon is the self-hostable receiver + dashboard. See ADR 0018.

CI integration

Editor integration

  • Tamp for VS Code — VS Code extension (sideload as .vsix from GitHub Releases): activity-bar targets tree, Run / Dry Run / View Plan via right-click or CodeLens, plan-preview webview, hover docs, per-workspace run history. Requires dotnet-tamp 1.9.0+.
  • A JetBrains Fleet sibling (tamp-fleet) is on the v2 roadmap.

Migration

  • Migrating from NUKE — concept-by-concept mapping. Where Tamp matches NUKE's surface and where it deliberately diverges.
  • Migrating from Cake — Cake script + addins → Tamp Build.cs + modules.

Reference

  • FAQ
  • Glossary
  • Pitfalls — gotchas not (yet) caught by analyzers.
  • Architecture Decision Records — every load-bearing design choice is recorded under docs/adr/ in the main repo. Read these before proposing a change to the corresponding area.

Project meta

Clone this wiki locally