Open VSX, une alternative ouverte au marketplace de Microsoft
Si vous travaillez avec VSCodium, il peut arriver que vous ne trouviez pas une extension pourtant disponible dans le marketplace. Voici l’explication.
Père Codeur, raconte-nous une histoire #
C’est le moment où je m’assois dans une chaise à bascule, j’ajuste mes lunettes et je vous lis une histoire.
Il était une fois un développeur1 qui suivait un tutoriel pour apprendre à développer une intégration sur un produit ouvert. Le guide lui indiqua d’installer une extension Microsoft pour son VS Code. Il ouvrit donc le menu Extensions de son VSCodium et la chercha, sans succès.
L’extension était pourtant bien visible sur le site web du marketplace et dans VS Code, mais pas dans VSCodium. Il pensa que Microsoft avait trouvé un moyen de limiter l’utilisation de cette extension aux produits Microsoft uniquement et choisit donc leur éditeur pour continuer son apprentissage.
Quelques mois plus tard, il tenta d’installer une autre extensions, qui n’avait cette fois aucun lien avec Microsoft. Elle apparut cependant indisponible de la même façon. Elle était clairement ouverte à tous2, et n’apparaissait pourtant pas dans le menu Extensions.
Il prit cette fois-ci la décision de découvrir le fin mot de l’histoire et apprit rapidement que VSCodium n’utilise pas le marketplace de Microsoft. Au lieu de ça, il s’appuie sur Open VSX. Les extensions qui l’intéressaient n’y avaient juste pas été publiées.
Open VSX, c’est quoi et pourquoi ? #
Open VSX est un point de distribution d’extensions alternatif au Visual Studio Marketplace, open source, géré par la communauté, indépendant des fournisseurs, et autohébergeable.
Les extensions sont certainement l’une des plus grandes forces de VS Code, mais vous n’avez peut-être pas envie d’utiliser le binaire de Microsoft sous licence propriétaire. Pas de souci, il y a des alternatives : VSCodium, Theia, Eclipse Che… Mais la marketplace de Microsoft n’est pas open source et ses conditions d’utilisations ne permettent pas à ces outils de s’y connecter.
That’s OK, there are alternatives: VSCodium, Theia, Eclipse Che… But Microsoft’s Marketplace is not open source and its terms of use limit those tools from accessing VS Code extensions that way.
La Marketplace vous permet d’accéder ou acheter des produits et services qui sont conçus pour fonctionner et étendre les capacités de Microsoft Visual Studio, Visual Studio pour Mac, Visual Studio Code, GitHub Codespaces, Azure DevOps, Azure DevOps Server, et les produits et services qui leur succèdent (les “Produits et services du champ d’application) offerts par nous et GitHub, Inc. (”GitHub"). traduit de Terms of Use of Microsoft's Marketplace (EN)
Les offres Marketplace sont destinées à être utilisées uniquement avec les produits et services du champ d’application, et vous pouvez installer et utiliser les offres Marketplace uniquement avec les produits et services du champ d’application. traduit de Terms of Use of Microsoft's Marketplace (EN)
Le téléchargement d’extensions depuis la marketplace Microsoft pour tout usage autre que dans un produit de Microsoft est interdit également. traduit de Eclipse Open VSX: A Free Marketplace for VS Code Extensions (EN), Sven Efftinge, Miro Spönnemann, 03/2020
Microsoft a donc créé un vaste registre de produits open source, mais a restreint leur utilisation exclusivement à leurs solutions propriétaires.
C’est ici qu’arrive Open VSX :
- Vous pouvez utiliser un registre open source, avec un serveur disponible pour tous à https://open-vsx.org. Theia comme VSCodium l’utilisent par défaut.
- Vous pouvez même choisir de l’héberger vous-même.
Ainsi, vous pouvez contrôler les sources aussi bien de votre IDE que du registre d’extensions.
Publiez vos extensions dans Open VSX #
Si vous maintenez une extension VS Code et que vous souhaitez qu’elle soit disponible aux éditeurs ouverts, vous devriez prendre cinq minutes pour la publier dans Open VSX.
La procédure complète n’est pas compliquée :
- Enregistrez-vous sur open-vsx.org via GitHub OAuth3.
- Créez un access token et copiez-le.
- Exécutez la commande
npx ovsx create-namespace <publisher> --pat <token>
avec le publisher renseigné dans le package.json de l’extension.- Exécutez la commandeRun
npx ovsx publish --pat <token>
dans le répertoire de l’extension que vous voulez publier. traduit de Eclipse Open VSX: A Free Marketplace for VS Code Extensions (EN), Sven Efftinge, Miro Spönnemann, 03/2020
Il y a également la possibilité de créer une pull request vers un dépôt GitHub servant à alimenter le registre.
Fin #
Que Microsoft s’accapare des extensions open source pour ses propres systèmes est fort dommage, mais Open VSX est là pour réparer cette injustice.
D’accord, il n’y a pas trop de mystère, on parle de moi. ↩︎
Il s’agit d’une extension pour activer le système X dans VS Code/VSCodium. Plus à ce sujet courant février. ↩︎
On pourra noter l’ironie : il faut utiliser une solution propriétaire pour s’authentifier à un registre open source. Il faut parfois savoir faire des compromis. ↩︎
Sources et références
Open VSX Registry (EN)
Eclipse Open VSX: A Free Marketplace for VS Code Extensions (EN), par Sven Efftinge, Miro Spönnemann, 03/2020