Introduction
Jira, l'outil de suivi de projet d'Atlassian, est considéré comme Turing-complet selon l'engineering folklore. Cet article fournit une preuve de cette affirmation en construisant une machine de Minsky dans l'automatisation d'Atlassian.
Contexte Technique
Une machine de Minsky nécessite deux compteurs non bornés et un ensemble fini d'instructions étiquetées. La preuve consiste à mapper ce modèle sur le langage d'automatisation de Jira, en utilisant l'état de l'épic pour encoder l'instruction courante, les règles d'automatisation pour inspecter les comptes de problèmes liés et décider de l'état de statut suivant.
Les opérations INC et DEC sont implémentées comme création et suppression de problèmes liés, tandis que les branchements conditionnels sont mis en œuvre comme des règles conditionnelles JQL. Cette implémentation est réalisée à l'aide d'un epic, de cinq problèmes liés et d'une règle d'automatisation par état d'instruction.
Analyse et Implications
La preuve fournie établit que Jira est Turing-complet, ce qui signifie que les automatisations complexes de Jira peuvent être considérées comme des programmes. Cela a des implications pour la manière dont nous concevons et utilisons les automatisations dans Jira, car elles peuvent être utilisées pour résoudre des problèmes complexes.
De plus, le langage d'automatisation de Jira peut simplifier les opérations de Minsky, ce qui rend les programmes non triviaux plus faciles à mettre en œuvre. L'article fournit également un exemple de mise en œuvre d'une machine de Fibonacci, qui démontre la puissance du langage d'automatisation de Jira.
Perspective
Les résultats de cette étude ont des implications pour la manière dont nous utilisons Jira et ses automatisations. Ils soulignent l'importance de comprendre les capacités et les limites du langage d'automatisation de Jira, ainsi que les risques et les défis potentiels liés à la création de programmes complexes dans Jira.
À l'avenir, il sera important de surveiller les développements dans le langage d'automatisation de Jira et de comprendre comment ils pourraient être utilisés pour résoudre des problèmes complexes et améliorer l'efficacité des équipes de développement.