Start
Toolchain support
Descant reads your project’s manifests, lockfiles and version files to identify its toolchain. It saves selected tools and versions for each repository and restores them on later runs. Tools come from the workspace image or Descant’s store of ready-to-install releases. Dependency installation can take longer; eligible dependency installs are cached for that repository’s later runs.
Your project’s files describe what it needs: package.json and package-manager lockfiles, pyproject.toml, go.mod, Cargo.toml, pom.xml or build.gradle, Gemfile, composer.json, Cabal or Stack files, and .tool-versions. Recognizing a project’s setup does not mean every required tool version or dependency is available. The list below shows what Descant can build and test in its execution environment.
Supported toolchains
These toolchains have completed successful builds or tests in real Descant runs. Available tool versions and dependency sources still apply.
- JavaScript and TypeScript with npm
- JavaScript and TypeScript with pnpm
- JavaScript and TypeScript with Bun
- Python with pip (requirements.txt, pyproject.toml, setup.py)
- Python with uv
- Rust with Cargo
- Java and Kotlin with Maven or Gradle
- Ruby with Bundler
- C# and .NET with NuGet
Limited support
These toolchains can run, but dependency availability limits which projects can build and test.
- Go modules: public modules listed in go.sum are fetched before execution; private modules that the public mirror cannot serve are unavailable.
- PHP with Composer
- Elixir with Mix: dependencies are limited to the packages already held in Descant’s stores.
- Haskell with Cabal: dependencies are limited to the packages already held in Descant’s stores.
- Dart with pub: dependencies are limited to the packages already held in Descant’s stores.
- Perl with cpanm: dependencies are limited to the packages already held in Descant’s stores.
Not yet supported
Descant still works fully on these repositories and writes tests. When the required toolchain or dependency source is unavailable, it cannot run those tests in its execution environment; run them in your own CI.
- JavaScript and TypeScript with Yarn. Setup is available; a successful real run has not yet been recorded.
- Python with Poetry or Pipenv: pip can install from pyproject.toml, but these lockfiles are not used.
- Haskell with Stack
Need another toolchain? Ask for it.