Contexte
Personne n’aime mettre à jour ses dépendances. Changer la version prend une seconde. Ensuite, on passe l’après-midi à courir après chaque breaking change dans tout le code.
Shift doit faire les deux moitiés à votre place, sur n’importe quelle stack, tout en vous laissant le dernier mot.
Plan
- Détecter la stack :
shift statusmontre ce que vous utilisez et les mises à jour disponibles. - Appliquer des codemods basés sur l’AST pour les changements de code que demande chaque mise à jour.
- Tout afficher dans un merge editor interactif, pour que vous relisiez avant que quoi que ce soit soit appliqué.
- Prendre un snapshot d’abord, pour que chaque mise à jour puisse être annulée instantanément.
shift init # scan project, create .shift/ config
shift status # show stack and available upgrades
shift upgrade react@19 # upgrade with interactive review
shift rollback 1 # instant rollback
Questions ouvertes
C’est encore le début, et je l’écris en Rust. L’ordre dans lequel j’avance : la structure du workspace, la détection de la stack, snapshot et rollback, le moteur de codemods, le merge editor, puis un lancement public.