Skip to content

exercism/uiua

Repository files navigation

Exercism Uiua Track

Configlet Test

Exercism exercises in Uiua.

Testing

To test all exercises, run ./bin/verify-exercises. This command will iterate over all exercises and check to see if their exemplar/example implementation passes all the tests.

To test a single exercise, run ./bin/verify-exercises <exercise-slug>.

Using Docker

If your track has a working test runner, the ./bin/verify-exercises-in-docker script can also be used to test all exercises. This script pulls (downloads) the test runner's Docker image and then uses Docker to run that image to test an exercise.

The main benefit of this approach is that it best mimics how exercises are tested in production (on the website).
Another benefit is that you don't have to install track-specific dependencies (e.g. an SDK) locally, you just need Docker installed.

To test a single exercise, run ./bin/verify-exercises-in-docker <exercise-slug>.

Linting

configlet is an Exercism-wide tool for working with tracks. You can download it by running:

$ ./bin/fetch-configlet

Run its lint command to verify if exercises have the required files and if config files are correct:

$ ./bin/configlet lint

The lint command is under development.
Please re-run this command regularly to see if your track passes the latest linting rules.

Basic linting finished successfully:
- config.json exists and is valid JSON
- config.json has these valid fields:
    language, slug, active, blurb, version, status, online_editor, key_features, tags
- Every concept has the required .md files
- Every concept has a valid links.json file
- Every concept has a valid .meta/config.json file
- Every concept exercise has the required .md files
- Every concept exercise has a valid .meta/config.json file
- Every practice exercise has the required .md files
- Every practice exercise has a valid .meta/config.json file
- Required track docs are present
- Required shared exercise docs are present

Adding exercises

New (practice) exercises can be added via:

bin/add-practice-exercise <exercise-slug>

Optionally, you can also specify the exercise's difficulty (via -d) and/or author's GitHub username (via -a):

bin/add-practice-exercise -a foobar -d 3 <exercise-slug>