If you wish to request a new track, you must post in the Support category on the Exercism Community Forum to discuss this with the team.
Before opening the post, it's worth considering:
At Exercism we provide a learning platform for developers who want to practice a programming language or learn a new one.
If the language is a general purpose programming language, then we'll probably be interested in having the track on Exercism. We do not create tracks for tools, libraries, frameworks, or technologies.
Please check the list of track repositories to find both active and inactive tracks.
If you find a repository for your language, check the active
key's value in the repository's config.json
file for its status:
true
: the track is active and listed on the website's tracks page.false
: the track is inactive and not listed on the website.
The track still requires work for it to become active.
If you'd like to help out, please open an issue on that repository to say hello.Do a search in the issues of this repository for the name of the language to see if the language was already requested. Remember to check both open and closed issues.
Exercism is a not-for-profit organization, and all the language tracks are built by volunteers. We will only create a track if there is at least one volunteer who has offered to take the lead on building it.
The minimum to launch a track is:
We are available to guide you along the way, and you can also get help from the community of folks who have done this for other languages.
Awesome! Please create a new post in the Exercism Forum so we can discuss the details. If the new track is authorized, then create a new-issue in this repository, and we'll create the new repository for the track.
This section is not relevant for maintainers. Please do not try and bootstrap repos yourselves. It won't work. Follow the instructions above and we will sort things for you.
gh auth login
Add the "new track" label.
Confirm maintainer
Run LANGUAGE=<language> SLUG=<slug> USERNAMES=<comma,separated,list> bin/bootstrap
(e.g. LANGUAGE="Common Lisp" SLUG="common-lisp" USERNAMES="foo,bar" bin/bootstrap
)
Let the requestor(s)/maintainer(s) know that the repo is ready for them, and point them to the launch checklist issue.
generic-test-runner
repoLANGUAGE=<language> SLUG=<slug> bin/bootstrap.sh
(e.g. LANGUAGE="Common Lisp" SLUG="common-lisp" bin/bootstrap.sh
)generic-representer
repoLANGUAGE=<language> SLUG=<slug> bin/bootstrap.sh
(e.g. LANGUAGE="Common Lisp" SLUG="common-lisp" bin/bootstrap.sh
)generic-analyzer
repoLANGUAGE=<language> SLUG=<slug> bin/bootstrap.sh
(e.g. LANGUAGE="Common Lisp" SLUG="common-lisp" bin/bootstrap.sh
)