Bibliotecas


Exercism pretende enseñar fluidez en la sintaxis, los modismos y la biblioteca estándar del lenguaje. Esto explícitamente no menciona las bibliotecas externas (no integradas), ya que eso entra dentro del dominio. Por lo tanto, los ejercicios deben, con pocas excepciones, poder resolverse sin usar bibliotecas.

Razones para soportar bibliotecas

Hay un par de razones por las que un track todavía podría querer soportar bibliotecas:

  1. El lenguaje tiene una biblioteca estándar (muy) mínima. Un ejemplo de ese lenguaje es Rust.
  2. La biblioteca agrega funcionalidad de pruebas. Un ejemplo es una biblioteca que agrega soporte para pruebas basadas en propiedades.
  3. El ejercicio solo se puede resolver usando una biblioteca. Un ejemplo de ese ejercicio es el ejercicio lens-person, que en la mayoría de los lenguajes solo se puede resolver usando una biblioteca.

Soportar bibliotecas en el test runner

Como el test runner no tiene acceso a internet mientras se ejecuta, no es posible descargar bibliotecas en tiempo de ejecución. La única solución a este problema es instalar/descargar las bibliotecas en tiempo de compilación, donde sí tienes acceso a internet. En la práctica, esto significa que tendrás que instalar/descargar las bibliotecas dentro del Dockerfile.

Como ejemplo, el Dockerfile del test runner de Prolog instala la biblioteca date_time:

RUN swipl pack install date_time -y

Documentación

Si tu track soporta bibliotecas, esto debería documentarse en un documento del track. Además, enlaza a este documento (usando su URL completa) desde el documento exercises/shared/.docs/help.md.