This guide describes how to set up a local development environment for working with the Continuous Compliance toolchain. The same toolchain runs in CI/CD, so a correctly configured local environment lets you catch linting and compliance failures before pushing to the remote.
The following tools must be installed before setting up a Continuous Compliance project:
| Tool | Purpose | Install |
|---|---|---|
| .NET SDK (8 or later) | Runs all DEMA Consulting .NET tools | dotnet.microsoft.com |
| Node.js (18 or later) | Runs markdownlint-cli2, cspell, and mermaid-filter | nodejs.org |
| Python (3.11 or later) | Runs yamllint via a virtual environment | python.org |
| Git | Source control and build-notes history access | git-scm.com |
Check that each tool is available in your shell after installation:
dotnet --version
node --version
python --version
git --versionLinting dependencies are installed via the lint scripts bundled in every Continuous Compliance
project. Copy the lint script and its configuration files from templates/lint/ (or from a
reference project) into your repository root, then run it:
./lint.ps1The script will:
- Create a Python virtual environment (
.venv/) and installyamllintfrompip-requirements.txt - Install npm packages (
cspell,markdownlint-cli2) vianpm install - Run all three linters against the repository
On subsequent runs the virtual environment and node_modules/ directory are reused, so only the
linting step itself is repeated.
The DEMA Consulting tools (VersionMark, SonarMark, SarifMark, ReqStream, ReviewMark, BuildMark,
Pandoc, Weasyprint) are distributed as .NET local tools and declared in .config/dotnet-tools.json.
Install them with:
dotnet tool restoreRun this command once after cloning the repository, and again whenever .config/dotnet-tools.json
is updated.
After installing all dependencies, run tool self-validation to confirm everything is working:
dotnet versionmark --validate --results test-results/versionmark-check.trx
dotnet reqstream --validate --results test-results/reqstream-check.trx
dotnet reviewmark --validate --results test-results/reviewmark-check.trxEach command prints a summary and exits with code 0 if all built-in tests pass.
The PDF generation pipeline uses mermaid-filter to render Mermaid diagram blocks embedded in Markdown. It is installed as an npm devDependency alongside the linting tools and requires a Chromium-compatible browser. On most systems this is satisfied by installing Google Chrome or Chromium.
On Linux CI environments without a display, a system installation of Google Chrome or Chromium is required for Puppeteer to run in headless mode.
See Troubleshooting for solutions to common setup problems.