There are two types of track tooling:
Tooling is (generally) written in the language of the specific track, and is built and maintained by maintainers.
These tools run on Exercism's production servers.
There are three pieces of track-specific production tooling:
There are two pieces of general production tooling that can be configured for your track:
Production tools are built as Docker images. They are auto-deployed to Exercism's production servers using CI workflows.
Maintenance tooling is designed to help with maintaining the track. They usually run locally (on the maintainer/contributor's machine) and sometimes in CI, but never in production.
Here are some examples of maintenance tooling:
Track tooling is usually (mostly) written in the track's language.
While you're free to use other languages, each additional language will make it harder to maintain or contribute to the track. Therefore, we recommend using the track's language where possible, because it makes maintaining or contributing easier.