El lenguaje de descripción del flujo de trabajo (WDL) es un estándar abierto para describir los flujos de trabajo de procesamiento de datos con una sintaxis legible y escritable. WDL hace que sea sencillo definir tareas de análisis, conectarlas en flujos de trabajo y paralelizar su ejecución. El lenguaje se esfuerza por ser accesible y comprensible para todo tipo de usuarios, incluidos programadores, analistas y operadores de un sistema de producción. El lenguaje permite que los patrones comunes, como la recolección de dispersión y la ejecución condicional, se expresen simplemente. WDL está diseñado para la portabilidad, y hay varias implementaciones para elegir que se ejecutan en una variedad de entornos, incluidos los sistemas HPC y las plataformas en la nube.
WDL Versioning sigue convenciones de versiones semánticas.
El idioma WDL tiene una versión de dos números (por ejemplo, 1.2
). Un aumento en el número de versión menor (segundo) (p. Ej., 1.1
a 1.2
) indica la adición de los cambios o no rompientes a las funciones de lenguaje o biblioteca estándar. Un aumento en el mayor (primer) número de versión (por ejemplo, 1.0
a 2.0
) indica que se han realizado cambios de ruptura.
La especificación WDL tiene una versión de tres números (por ejemplo, 1.2.0
). La versión de especificación rastrea la versión del idioma, pero también puede haber versiones de parche (indicadas por un cambio en el parche, o tercero, número de versión) que incluyen correcciones para errores tipográficos, ejemplos adicionales o aclaraciones no rompensas de lenguaje ambiguo.
La especificación de WDL contiene toda la información relevante para usuarios y desarrolladores, incluidos aquellos que desean implementar un motor de ejecución. Este proyecto GitHub utiliza la rama para la versión actual de la especificación como su rama principal, por lo que siempre verá la versión actual de la especificación siempre que visite la URL raíz de este proyecto. Se recomienda encarecidamente a los usuarios que usen la versión actual de la especificación a menos que sea absolutamente necesario.
Esta rama es para la versión 1.2 de la especificación del idioma WDL. Todo el desarrollo de las nuevas características no roto debe hacerse contra esta rama.
Las versiones anteriores de la especificación se pueden encontrar aquí:
Hay una serie de versiones de borradores que corresponden a los esfuerzos iniciales para crear WDL. Si bien estas son especificaciones funcionales, no deben considerarse completas de características y contienen muchos errores e irregularidades.
La siguiente versión principal de la especificación es 2.0. Todo el desarrollo de nuevas características de ruptura debe hacerse contra esa rama.
La comunidad WDL depende de su participación para prosperar. Se le recomienda hacer preguntas, ayudar a otros usuarios y hacer contribuciones donde pueda. Las interacciones ocurren principalmente en GitHub y Slack. La comunidad WDL también tiene un blog oficial donde se hacen anuncios.
#support
.Las siguientes son colecciones de flujos de trabajo WDL de código abierto. Es posible que la tarea o flujo de trabajo WDL que necesite ya esté disponible en uno de estos repositorios, o puede encontrar un flujo de trabajo similar y personalizarlo a sus necesidades.
WDL no tiene una implementación oficial. Se confía en los terceros para proporcionar software instalable o plataformas alojadas que interpreten y ejecuten flujos de trabajo y tareas de WDL. Aunque WDL aún no tiene un programa de cumplimiento oficial o un proceso de certificación, se espera que los implementadores diseñen sus herramientas de acuerdo con la especificación para maximizar la portabilidad de los flujos de trabajo en las implementaciones. No obstante, los implementadores pueden proporcionar características opcionales adicionales específicas. Consulte la documentación asociada con cada herramienta/plataforma para obtener información sobre las opciones y soporte de ejecución disponibles.
Implementación | Requiere instalación | Ejecución local | HPC | Nube |
---|---|---|---|---|
AWS Healthomics | No | No | No | AWS |
Cromwell * | Sí | Sí | Muchos | AWS Batch, Azure, GCP |
DXCOMPILER | Sí | No | No | Dnanexus |
Miniwdl | Sí | Sí | Slurm | Lote de AWS |
Terra | No | No | No | Azure, GCP |
* También vea WDL Runner, un script para lanzar flujos de trabajo WDL en GCP usando Cromwell
IDE | Herramienta |
---|---|
Emacs | Poly-WDL |
Emacs | modo WDL |
Rejilla | Winstanly |
Sublime | Marcador de sintaxis WDL |
Empuje | vim-wdl |
Código de Visual Studio | Marcador de sintaxis WDL |
WDL solo avanza a través de contribuciones de la comunidad. Si bien participar en discusiones y presentar problemas son excelentes maneras de involucrarse, también se necesita ayuda para implementar cambios en la especificación. Para obtener más información sobre cómo puede contribuir, lea la guía de contribución.
Las solicitudes de extracción enviadas están sujetas al proceso RFC. Revise y familiarícese con el proceso si desea ver los cambios enviados a la especificación.
La especificación de WDL está completamente impulsada por la comunidad; Sin embargo, es supervisado por un comité de gobierno. Si está interesado en participar en el gobierno de WDL, únase a la holgura y publique un mensaje en el canal #general
.