0006 — WSL comme environnement de développement principal

Contexte

  • Windows reste le système hôte quotidien, notamment pour les usages non techniques et les outils natifs Microsoft.
  • Les workflows de développement nécessitent un environnement Linux homogène pour rester compatibles avec les outils modernes (CLI, conteneurs, scripts shell).
  • Les écarts de comportement entre Windows et Linux ont déjà généré des bugs difficiles à reproduire, ce qui impose un socle d'exécution unique.

Décision

  • Utiliser WSL comme environnement de développement principal pour tous les travaux liés au hub.
  • Exploiter VS Code avec l'extension Remote WSL pour éditer, déboguer et exécuter le code directement dans l'instance Linux.
  • Faire tourner Git, Bash, les langages et scripts d'automatisation exclusivement dans WSL afin d'aligner l'ensemble des outils.

Raisons

  • Offrir un environnement Linux standard sans quitter Windows ni perdre les applications natives.
  • Garantir la compatibilité avec la majorité des outils de développement et des toolchains modernes.
  • Rester cohérent avec Docker, les environnements de production et les scripts de déploiement Linux-first.
  • Bénéficier d'une meilleure gestion des outils CLI (bash, package managers, utilitaires Unix) sans portages approximatifs.
  • Éviter les problèmes de compatibilité spécifiques à Windows qui ralentissent les itérations.

Conséquences

Positives

  • Environnement homogène et prévisible entre machines et sessions.
  • Compatibilité accrue avec les outils modernes, notamment conteneurs et orchestrateurs.
  • Séparation claire entre système hôte Windows et environnement de développement Linux, facilitant la maintenance.
  • Reproductibilité améliorée pour les scripts, les tests et la documentation technique.

Négatives

  • Ajout d'une couche WSL à installer, configurer et maintenir.
  • Gestion des chemins entre Windows et Linux à surveiller pour éviter les confusions (/mnt/x, chemins relatifs, etc.).
  • Nécessité de comprendre le fonctionnement interne de WSL (montages, limites de compatibilité) pour diagnostiquer certains bugs.

Alternatives considérées

  • Développement natif Windows : rejeté pour éviter les incohérences d'outils, les ports incomplets et les scripts Bash non supportés.
  • Machine virtuelle Linux complète : rejetée car plus lourde en ressources et moins intégrée aux fichiers locaux.
  • Dual boot Windows/Linux : rejeté car peu pratique au quotidien et impose des redémarrages fréquents.

Statut

Accepté.