GitHub met Visual Studio Code en ligne

Dans son discours lors du récent événement Satellite de GitHub, le PDG Nat Friedman a déclaré: «À l'ère de la distanciation sociale, les gens se tournent vers le codage social.» Nous travaillons à domicile, en utilisant les outils intégrés à GitHub pour remplacer les lacunes de notre flux de travail qui étaient auparavant remplies d'interactions avec des collègues. Des outils tels que GitHub sont devenus plus que l'endroit où nous stockons et partageons du code. Ce sont désormais nos espaces de travail virtuels, englobant davantage nos flux de travail de développement.

La relation entre GitHub et Microsoft est intéressante. Microsoft possède GitHub, mais il est exécuté comme une entité distincte avec très peu de contacts entre les deux organisations. C'est une division qui a du sens, car le rôle de GitHub en tant que référentiel mondial pour les logiciels propriétaires et open source exige qu'il soit un hub neutre - une Organisation des Nations Unies pour les logiciels. Cela a permis à GitHub de continuer à fonctionner sur sa propre infrastructure, basée sur ses propres outils et technologies. Pendant ce temps, Microsoft a augmenté ses dépendances sur GitHub, en créant ses propres outils sur le framework Electron de GitHub et en utilisant GitHub dans ses propres processus de développement.

Construisez-le dans les espaces de codes GitHub

Il est intéressant de voir GitHub construire l'une de ses dernières fonctionnalités au-dessus d'une technologie Microsoft (bien qu'une solide base open source). Microsoft a récemment changé le nom de son environnement de développement hébergé dans le cloud Visual Studio Online en Visual Studio Codespaces, et Satellite a vu GitHub lancer un produit similaire en utilisant le même nom.

Il est important de noter que bien que les espaces de codes Visual Studio et les espaces de codes GitHub soient construits sur l'éditeur de code Visual Studio de Microsoft, ce sont des produits très différents. Comme Visual Studio Code utilise Electron de GitHub, il s'agit d'une application TypeScript. Cela facilite le portage vers le Web et les navigateurs Web modernes, avec son éditeur de code Monaco open source. Microsoft utilise les espaces de codes pour étendre votre environnement de développement de bureau dans le cloud et le partager avec des collaborateurs ad hoc. GitHub traite les espaces de codes de manière très différente, vous offrant un environnement d'édition hébergé par un navigateur dans le cadre d'un référentiel de code.

L'idée derrière les espaces de codes GitHub est de donner aux collaborateurs l'accès au code à mesure qu'il change, où qu'ils se trouvent: examiner le code, travailler avec les problèmes qui ont été soulevés ou examiner le code qui a été soumis avec une pull request. C'est un moyen d'accéder rapidement à un référentiel pour modifier le code si vous disposez d'une minute gratuite et d'un navigateur Web moderne. Si vous préférez utiliser un éditeur, l'extension Visual Studio Codespaces pour VS Code fonctionnera également avec GitHub Codespaces.

La création d'environnements de développement cloud dans les espaces de codes GitHub vous donne la possibilité de définir les ressources par défaut que l'éditeur utilise dans le cadre d'un référentiel, à l'aide de fichiers dotfiles familiers. Les utilisateurs peuvent avoir leurs propres configurations, qui se chargent à partir de leur profil. Il existe une prise en charge du modèle d'extension existant de VS Code et de Visual Studio Code Marketplace, vous pouvez donc installer les extensions dont vous avez besoin pour travailler avec un projet spécifique. Si vous travaillez avec une application Go, vous pouvez installer les extensions Go appropriées. La même chose pour Rust, C # et Flutter; l'environnement Codespaces GitHub est aussi flexible que le code lui-même.

Pour accélérer les choses, GitHub propose un référentiel de versions préconfigurées de conteneurs Codespaces, avec des instances pour Node, Go, .NET Core, C ++, etc. Ceux-ci incluent des outils pour créer et déboguer du code, exécutés dans le conteneur Codespaces. En fournissant une chaîne d'outils entière dans un conteneur, vous pouvez faire bien plus que modifier du code, par exemple tester et vérifier les modifications avant de fusionner une pull request.

Chaque éditeur d'espaces de codes aura une version de l'extension VS Code GitHub pour vous aider à gérer les problèmes et les demandes d'extraction, ainsi que pour travailler avec plusieurs branches de votre code. Vous pouvez cloner des référentiels, en utilisant le workflow Git familier. Les espaces de code peuvent fonctionner avec des référentiels privés, mais la version bêta ne prendra en charge que les référentiels personnels et publics. Si vous utilisez GitHub Enterprise, vous pouvez utiliser d'autres outils pour travailler avec votre code; peut-être même les espaces de codes Visual Studio.

Les espaces de codes GitHub ont besoin de beaucoup de ressources pour s'exécuter, et bien que le service soit gratuit pendant la version bêta, il sera probablement une fonctionnalité payante une fois qu'il sera lancé. Chaque instance nécessite un conteneur pour héberger les serveurs de langage Visual Studio Code. L'interface utilisateur se trouve dans votre navigateur, mais une grande partie du travail lourd requis pour exécuter les outils de développement de VS Code doit s'exécuter dans le conteneur Espaces de codes. Avec plusieurs millions de développeurs utilisant GitHub et chaque conteneur d'espaces de codes nécessitant deux cœurs et 4 Go de mémoire, l'utilisation pourrait s'accumuler très rapidement. Cependant, GitHub prévoit de proposer une tarification à l'utilisation, ce qui devrait réduire les coûts au minimum.

Discutez-en dans les discussions GitHub 

L'édition dans le cloud n'est qu'une partie de l'histoire étendue du codage social de GitHub. Une grande partie du travail récent de GitHub a permis aux responsables de projet de travailler plus facilement avec la communauté qui s'est fusionnée autour de leur code. Bien qu'il soit possible d'avoir Slack ou d'autres plates-formes de collaboration dans le cadre d'un flux de travail combiné, les projets open source sont souvent incapables de payer pour des plans qui leur permettent d'archiver les discussions. La séparation de la conversation et du code rend difficile la création de liens directs entre les deux, et bien que les commentaires et les problèmes dans GitHub offrent un moyen de les lier, ils sont toujours beaucoup plus formels que la plupart des médias sociaux.

Satellite a vu le lancement de GitHub Discussions, un moyen d'intégrer des conversations filetées dans un référentiel. Rappelant un peu les groupes de discussion Usenet à l'ancienne, ils constituent un moyen utile de créer une documentation collaborative autour d'un projet. Stack Overflow utilise une structure comme celle-là, mais les conversations sont plus libres avec la possibilité de voter pour le contenu, ainsi que des liens directs vers chaque élément de discussion. Les responsables de la maintenance peuvent utiliser des liens pour importer le contenu des discussions dans d'autres documents, de sorte qu'un élément de discussion peut être lié à un problème pour permettre une conversation plus approfondie.

La gestion des conversations est importante et les responsables ont la possibilité de verrouiller les discussions lorsque la conversation utile est terminée. L'accès basé sur les rôles peut contrôler les conversations, par exemple, en fournissant une discussion que tout le monde peut lire mais que seuls les collaborateurs approuvés peuvent publier. Si Discussions peut tenir sa promesse en tant qu'espace ciblé et pertinent pour collaborer autour du code et de la documentation, cela devrait aider les développeurs à travailler sur GitHub sans changer de contexte entre les applications et perdre leur concentration, ainsi que d'éviter de longues conversations trop instables. , liens vidéo non sécurisés.

La collaboration à distance n'est pas facile, il est donc important pour les sites orientés vers la communauté tels que GitHub d'offrir autant d'outils et de services différents que possible, dans le but de faciliter la collaboration, peu importe où et comment vous travaillez. Les espaces de codes GitHub et les discussions GitHub semblent être des étapes importantes de ce voyage, et il sera intéressant de voir comment ils sont utilisés.