Un nouveau paradigme pour les environnements de développement

Canonical, l'éditeur derrière Ubuntu, vient de publier la documentation complète de son nouvel outil baptisé Workshop. Celui-ci se présente comme une plateforme de création d'environnements de développement « sécurisés, rapides et composables », conçue pour répondre aux besoins des workflows modernes, en particulier ceux liés à l'intelligence artificielle, à l'apprentissage automatique, à la robotique, à l'IdO et à l'EdTech.

L'idée centrale de Workshop est de remplacer les configurations manuelles complexes par des définitions reproductibles et fiables. L'utilisateur décrit les langages, les bibliothèques et les outils nécessaires dans des fichiers de définition, et Workshop construit l'environnement correspondant. Ces définitions sont organisées autour de la notion de SDK : des unités de fonctionnalité indépendantes et connectables, que les éditeurs peuvent empaqueter et publier sur un « SDK Store », et que les équipes peuvent définir directement dans leurs dépôts.

Des environnements reproductibles et transactionnels

Selon la documentation officielle, Workshop permet de lancer en quelques commandes une configuration qui prenait auparavant des heures à mettre en place, avec l'assurance qu'elle fonctionnera de manière identique à chaque exécution. Il est également possible de démolir l'environnement et de reprendre à la dernière étape sans craindre d'état résiduel. Les mises à jour des environnements sont gérées comme des transactions, ce qui améliore la fiabilité.

L'outil est conçu pour un usage en bac à sable (sandbox) : les expérimentations sont isolées, ce qui réduit les risques de contamination entre projets ou de conflits de dépendances.

Fonctionnalités clés : interfaces, actions, agents IA

Workshop propose un jeu d’interfaces permettant d’intégrer des ressources matérielles et logicielles : interface caméra, interface bureau, interface GPU, interface de montage (mount), interface SSH, interface tunnel. Cela permet par exemple d’accéder à un GPU pour l’apprentissage automatique, ou de monter des répertoires locaux dans l’environnement distant.

La plateforme intègre également une fonctionnalité d’actions pour personnaliser les environnements, de redirection de ports (port forwarding), et la possibilité de connecter plusieurs workshops entre eux. Les développeurs peuvent relier VS Code à un workshop, exécuter JetBrains Gateway, lancer JupyterLab dans le navigateur, gérer des environnements Python, ou même exécuter des workflows GitHub Actions localement ou dans des workshops.

L’un des aspects les plus marquants est l’intégration native avec les agents d’IA. Workshop publie de la documentation lisible par les grands modèles de langage (LLM) et embarque des compétences (skills) agentiques pour piloter les workshops et pour « échafauder » (scaffolding) des SDK. Cette approche « agent-ready » permet à des assistants IA d’interagir directement avec l’environnement de développement.

SDK : le cœur de la modularité

Le concept de SDK (Software Development Kit) est central dans l’architecture de Workshop. Il ne s’agit pas ici d’un kit de développement au sens classique, mais d’une unité logicielle définissant un ensemble de parties (parts) : outils, bibliothèques, configurations. Les SDK peuvent être composés entre eux. La documentation distingue le « sketch SDK » (esquisse, pour une exploration rapide) du « craft SDK » (artisanat, pour une version finalisée et publiable).

Un outil en ligne de commande (CLI) nommé sdkcraft permet de construire et de publier ces SDK. Les définitions sont décrites dans des fichiers YAML (definition files), avec une structure précise pour les SDK et pour les workshops eux-mêmes. Canonical fournit également un CLI workshopctl pour la gestion avancée.

Architecture et cycle de vie

La documentation détaille l’architecture du système, avec des diagrammes d’état pour les workshops. Les composants sont conçus pour fonctionner en mode client-serveur léger. Le cycle de vie d’un workshop inclut le lancement (launch), le rafraîchissement (refresh), la connexion (connect), l’accès au shell, et l’arrêt. Les interfaces permettent d’ajouter des périphériques ou des connexions réseau.

Comparaison avec Docker

Un chapitre entier est consacré à la comparaison entre les SDK de Workshop et les Dockerfiles. L’approche de Workshop met l’accent sur la composition et la réutilisation de briques logicielles, plutôt que sur la construction d’images monolithiques. Cela vise à réduire la duplication et à améliorer la maintenabilité des environnements.

Disponibilité et licence

La documentation est accessible en ligne sur le site officiel de documentation d’Ubuntu. Le code source de Workshop est hébergé sur GitHub sous une licence ouverte (non précisée dans les sources fournies, mais le dépôt est public). La version actuelle mentionnée dans les notes de version est la v0.9.0. Canonical encourage la contribution via Discourse, Matrix et GitHub.

Un outil pour les développeurs et les équipes

Workshop semble cibler aussi bien les développeurs individuels souhaitant des environnements reproductibles que les équipes ayant besoin de standardiser les configurations de projet. La capacité à exécuter des actions dans GitHub Actions et à intégrer des agents IA le positionne comme un outil moderne, en phase avec les tendances du développement logiciel.