Skip to content

Commit

Permalink
Work
Browse files Browse the repository at this point in the history
  • Loading branch information
ErikSchierboom committed Aug 7, 2024
1 parent 686ff9b commit c1e0b88
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions building/tooling/test-runners/libraries.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Libraries

Exercism aims to teach [fluency](/docs/using/product/fluency) in the syntax, idioms, and the standard library of the language.
This explicitly does _not_ mention external (non built-in) libraries, as that falls under _proficiency_.
Exercises must thus, with few exceptions, be solvable without using libraries.

## Reasons to support libraries

There are couple of reasons why a track might still want to support using libraries:

1. The language has a minimal standard library and it is idiomatic to use libraries to add functionality.
An example of such a language is Rust.
2. The exercise is only really solvable using libraries.
An example of such an exercise is the [lens-person exercise](https://exercism.org/exercises/lens-person), which in many languages can only be solved using a library.
3. The library adds testing functionality.
An example is a library that adds support for property-based testing.

## Supporting libraries in the test runner

As the test runner does not have access to the internet whilst running, it is not possible to download libraries at run time.
The **only** solution to this problem is to install/download libraries at build time, where you _do_ have access to the internet.
In practice, this means you'll need to install/download libraries within the Dockerfile.

https://github.com/exercism/prolog-test-runner/blob/ed7447a7518ede6ee3405e649f50aaec828e318b/Dockerfile

## Documentation

If your track supports additional
(/docs/building/tracks/docs)
We recommend creating a document in the track repo's `docs` directory that lists the libraries that people can use, po

0 comments on commit c1e0b88

Please sign in to comment.