Bibliotecas


Exercism tiene como objetivo 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 de la competencia. Por lo tanto, los ejercicios deben poder resolverse sin usar bibliotecas, salvo contadas excepciones.

Motivos para dar soporte a bibliotecas

Hay un par de motivos por los que un track podría querer seguir dando soporte a bibliotecas:

  1. El lenguaje tiene una biblioteca estándar (muy) mínima. Un ejemplo de un lenguaje así es Rust.
  2. La biblioteca añade funcionalidad de pruebas. Un ejemplo es una biblioteca que añade compatibilidad con las pruebas basadas en propiedades.
  3. El ejercicio solo puede resolverse usando una biblioteca. Un ejemplo de un ejercicio así es el ejercicio lens-person, que en la mayoría de los lenguajes solo puede resolverse usando una biblioteca.

Dar soporte a 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 el momento de la compilación, cuando 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 da soporte a bibliotecas, esto debería documentarse en un documento del track. Además, enlaza también a este documento (usando su URL completa) desde el documento exercises/shared/.docs/help.md.