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.
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
dotnet fsi build.fsx -- test
For Fable runtime checks as well:
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
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
dotnet run --project site/site.fsproj -- watch
Open http://localhost:8080/Xantham/.
For a static build:
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:
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 →