Skip to content

Local setup

Run commands from the repository root. The build pipeline installs the pinned compiler and fixture dependencies.

Prerequisites

Install the .NET 10 SDK, Node.js, npm, and Git.

Terminal
git clone https://github.com/shayanhabibi/Xantham.git
cd Xantham
npm ci
dotnet build Xantham.slnx

The root package.json pins the TypeScript compiler used by the generator and live compiler tests.

Run the test pipeline

Terminal
dotnet fsi build.fsx -- test

For Fable runtime checks as well:

Terminal
dotnet fsi build.fsx -- test --run-gate

Expecto suites

Check the compiler client, generator passes, and generated golden output.

Compile and run gates

Compile generated F# against the consumer dependencies and exercise selected bindings through Fable.

The compile-gate projects are ordinary projects: a solution build compiles their goldens. The run gate validates selected JavaScript behavior.

Run the local CLI

Terminal
dotnet run --project src/Xantham.Cli -- generate ./node_modules/your-package -o ./scratch/out

Replace the input with an installed package directory containing package.json.

Preview the website

Terminal
dotnet run --project site/site.fsproj -- watch

Open http://localhost:8080/Xantham/.

For a static build:

Terminal
dotnet run --project site/site.fsproj -- build

Pages are written to output/. API reference pages use available Release assemblies; build those before checking reference changes.

Working in a worktree

The build pipeline can borrow the main checkout's compiler installation. Fixture dependencies are installed separately in the worktree:

Terminal
dotnet fsi tools/xantham-fixtures.fsx -- init

Use the pipeline for tests so compiler discovery and fixture setup follow the repository's conventions.

Make a generator change

Start with a minimal fixture and a focused test run.

Generator workflow →
Edit this page