Bibliotecas


O Exercism pretende ensinar fluência na sintaxe, nos idiomatismos e na biblioteca padrão da linguagem. Isto não menciona explicitamente bibliotecas externas (não incorporadas), porque isso faz parte da proficiência. Assim, os exercícios devem, com poucas exceções, poder ser resolvidos sem usar bibliotecas.

Razões para suportar bibliotecas

Há algumas razões pelas quais uma track pode ainda assim querer suportar bibliotecas:

  1. A linguagem tem uma biblioteca padrão (muito) reduzida. Um exemplo de uma linguagem assim é o Rust.
  2. A biblioteca acrescenta funcionalidades de testagem. Um exemplo é uma biblioteca que acrescenta suporte para testes baseados em propriedades.
  3. O exercício só pode ser resolvido com o recurso a uma biblioteca. Um exemplo de um exercício assim é o exercício lens-person, que na maioria das linguagens só pode ser resolvido com uma biblioteca.

Suportar bibliotecas no test runner

Como o test runner não tem acesso à Internet durante a execução, não é possível descarregar bibliotecas em tempo de execução. A única solução para este problema é instalar/descarregar as bibliotecas em tempo de construção, altura em que tens acesso à Internet. Na prática, isto significa que vais precisar de instalar/descarregar bibliotecas no Dockerfile.

Por exemplo, o Dockerfile do test runner de Prolog instala a biblioteca date_time:

RUN swipl pack install date_time -y

Documentação

Se a tua track suporta bibliotecas, isso deve ser documentado na documentação da track. Liga também a este documento (usando o URL completo) a partir do documento exercises/shared/.docs/help.md.