Open VSX : une alternative au marketplace de VS Code

Il y a quelques jours, j’ai découvert Open VSX. Je n’arrivais pas à mettre à jour mes extensions dans VS Code ni à les réinstaller si je tentais de les désinstaller. Après avoir posté un ticket sur Github, j’ai été informé d’un changement dans Code OSS pour Archlinux. Il n’utilise plus le marketplace de VS Code, mais Open VSX. Voyons ce que c’est et ce que ça change.

Qu’est-ce qu’Open VSX ?

Open VSX est un projet open-source porté par TypeFox, hébergé par la Fondation Eclipse et distribué sous la licence libre Eclipse Public License. Il se définit comme « a vendor-neutral open-source alternative » au marketplace de VS Code. Il faut comprendre par là qu’il s’agit d’un marketplace open-source qui ne dépend pas d’une marque (comme Microsoft). Ainsi, il possède son propre serveur et sa propre base de données d’extensions. Il propose également un outil en ligne de commande pour publier les extensions.

À propos de TypeFox

TypeFox est une startup spécialisée dans l’ingénierie du langage et les outils de développement. En contrepartie d’utiliser des solutions open-source pour ses projets, elle s’implique elle-même dans des projets open-source.

Actuellement le site d’Open VSX est maintenu par TypeFox ; il sera par la suite transféré à la Fondation Eclipse.

TypeFox Logo

À propos de la Fondation Eclipse

La Fondation Eclipse est une organisation 501(c)(6). Si, comme moi, vous n’êtes pas familier avec le droit américain, il s’agit d’une organisation à but non lucratif dont les éventuels bénéfices ne profitent ni à un actionnaire ni à un particulier. Elle a été créée en 2004 pour agir en tant que responsable de la communauté Eclipse (un projet créé par IBM en 2001). Elle fournit un environnement pour la collaboration et l’innovation en matière de logiciels open source. Ainsi, elle ne limite pas ses actions au projet Eclipse.

Eclipse Foundation Logo

Les avantages d’Open VSX

Seul VS Code peut accéder au marketplace maintenu par Microsoft. Un autre programme qui supporterait le format vsix n’aurait pas le droit d’accéder à ce marketplace. Pour pouvoir installer ce format, il faudrait que l’utilisateur récupère le fichier et l’installe manuellement. Seulement, télécharger une extension depuis ce marketplace pour l’utiliser dans un programme n’appartenant pas à Microsoft est interdit. Certes, il faut que Microsoft puisse vérifier, mais ça reste contraire aux conditions d’utilisation. Il est donc nécessaire de proposer une autre source de téléchargement.

Marketplace Offerings are intended for use only with Visual Studio Products and Services and you may only install and use Marketplace Offerings with Visual Studio Products and Services.

Microsoft Visual Studio Marketplace Term of Use : https://cdn.vsassets.io/v/M146_20190123.39/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf

En proposant un marketplace sans restriction, n’importe quel programme supportant le format vsix aurait le droit d’y accéder. L’installation est ainsi simplifiée et il n’existe pas de contrainte légale. Par ailleurs, la plupart des extensions proposées au format vsix sont des projets open source. Les restreindre à un seul marketplace qui n’est pas open source et qui est si restrictif, ne correspond donc pas à la philosophie de ces projets.

Open VSX : qu’est ce que ça implique ?

Il existe au moins 3 versions de VS Code :

  • celle nommée Visual Studio Code et distribuée par Microsoft (et qui n’est pas 100 % open source)
  • Code OSS, une version open source de VS Code (sans les ajouts apportés par Microsoft)
  • VS Codium, un fork de VS Code nettoyé de la marque, de la télémétrie et de la licence Microsoft

Pour la première version, ça ne change rien puisqu’il s’agit d’un produit Microsoft. Quant à VS Codium, il utilisait déjà Open VSX plutôt que le marketplace de VS Code. Désormais, Code – OSS utilise également Open VSX (voir la réponse à mon ticket Github). En tout cas, c’est le cas pour Archlinux et Manjaro ; je ne sais pas si cette modification existe aussi pour les autres distributions Linux.

Je ne connais pas les chiffres d’utilisation de ces 3 versions. Cependant, il est maintenant possible de dire qu’il existe deux branches distinctes. La première utilise le marketplace de VS Code, l’autre utilise Open VSX. Elles ne proposent plus les mêmes extensions puisqu’il s’agit de deux bases de données différentes.

Pour les utilisateurs

Le nouvel utilisateur de Code – OSS ne verra sans doute aucun problème. À moins d’avoir cherché un article conseillant des extensions, et qu’il ne trouve pas ces extensions lors d’une recherche, il ne saura pas qu’il n’a pas accès à toutes les extensions proposées par VS Code.

Les anciens utilisateurs de Code – OSS utilisant des extensions non disponibles sur Open VSX ne recevront plus de mises à jour pour ces extensions. S’ils formatent leur PC ou souhaitent installer ces extensions sur un autre PC, ils risquent d’être surpris de ne pas les trouver. Ils risquent également de ne pas comprendre pourquoi…

Ils n’ont plus qu’à espérer que les développeurs publient leur extension sur Open VSX ou que l’équipe d’Open VSX s’en charge…

Pour les développeurs

Pour les développeurs de thèmes et d’extensions pour VS Code, il faut maintenant penser à publier le paquet non seulement sur le marketplace de VS Code mais également sur Open VSX.

Open VSX Registry

S’ils ne le font pas, leur projet sera moins visible puisqu’il sera disponible uniquement pour les utilisateurs de VS Code. Ceux utilisant Code OSS ou VSCodium ne verront jamais leur extension… À moins d’être déjà populaire (et donc d’avoir une chance de se retrouver sur Open VSX sans rien faire), ils vont perdre en visibilité.

La procédure pour publier sur Open VSX n’est pas bien compliquée. Il faut cependant penser à ouvrir un ticket sur Github pour réclamer un namespace si vous ne souhaitez pas qu’il soit réutilisé par d’autres. Par contre, Open VSX vous offre moins de contrôle sur votre extension. Vous ne pouvez pas la dé-publier/supprimer aussi facilement que sur le marketplace de VS Code. Ceci dit, le projet continue d’évoluer et il semble que les options d’administration vont se développer.

Que ce soit la création du namespace ou la publication, tout peut se faire au travers du terminal. Open VSX propose une commande nommée ovsx, au travers de npx (donc npm) pour y parvenir. La démarche peut rebuter un peu comparé à la publication sur le marketplace de VS Code puisqu’il faut à chaque fois renseigner un token. Ceci dit, il doit être possible d’utiliser les variables d’environnement et un script défini dans package.json pour contourner ce désagrément. De plus, il n’est pas nécessaire de préciser le nom du package vsix. Sans précision, ovsx va utiliser vsce pour générer un package temporaire qui servira à la publication.

Que faire si vous ne trouvez pas une extension ?

En attendant que le répertoire d’Open VSX grossisse, il est toujours possible d’installer manuellement une extension dans VS Code. Plutôt que de rechercher l’extension dans le logiciel, il faudra le faire sur le site ou peut-être sur Github si le fichier est disponible dans le dépôt.

Sur la page de l’extension dans le marketplace de VS Code, il existe un lien « Download extension » qui permet de récupérer le fichier au format vsix. Une fois le fichier téléchargé, vous pouvez installer l’extension dans Code OSS ou VSCodium. Lorsque le panneau « Extensions » est actif, au dessus du champ de recherche vous avez un menu «  ». En cliquant dessus, vous verrez « Install from VSIX ». Sélectionnez votre fichier, et l’extension s’installera.

Installer manuellement une extension VS Code

Par contre, si l’extension est mise à jour, vous n’obtiendrez pas cette mise à jour. Il faudra installer manuellement cette nouvelle version.

À noter également, j’en parlais au début de l’article : il est interdit de télécharger l’extension depuis le marketplace pour l’utiliser dans un logiciel qui n’est pas un produit Microsoft. Ainsi, il semble que ce soit illégal de l’utiliser dans VS Codium… Pour Code – OSS, je ne sais pas.

Résumons

Des projets open-source enpaquetés au format vsix sont publiés sur un marketplace restrictif et uniquement accessible par les produits Microsoft. La Fondation Eclipse veut changer la situation en proposant un marketplace alternatif qui est lui-même open-source. Ce marketplace se nomme Open VSX. N’importe quel logiciel acceptant le format vsix peut y accéder.

Le projet Open VSX est encore jeune et ne compte pas autant d’extensions que le marketplace de Microsoft. Les outils d’administration sont également limités, mais il est prévu qu’ils évoluent.

Des changements sont décidés du côté de Code OSS pour Archlinux/Manjaro sans communication autour. Les développeurs ne connaissant pas Open VSX se retrouvent avec moins d’utilisateurs potentiels. Les utilisateurs ne comprennent pas pourquoi ils ne trouvent pas l’extension souhaitée.

Au final, nous avons un projet intéressant et louable. Cependant, il est encore jeune et je pense qu’il aurait été préférable, non pas d’attendre, mais de communiquer autour du changement appliqué à Code OSS avant et après l’avoir fait. De cette manière, la base de données des extensions se remplirait plus rapidement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.