Hey all; I’m curious if anyone here has any preferred methods for keeping development environments in-sync between machines?
I have the following machines I use regularly:
Macbook Pro from work
Personal PC with Windows
Framework laptop running Fedora
The closest I’ve gotten is using a virtual machine for all of my non-Linux machines, and getting things setup with an Ansible playbook. I’m using Arch as the OS for the VM’s. Optimally I would have a centrally stored VM that I can just grab anywhere on my home network, but I don’t have a NAS at the moment.
I’m also working on switching to an ssh and tmux workflow so it can be the same between all the different machines.
I’d be curious how you all accomplish this goal? It can take a lot of time to get a dev environment setup, so automating it seems like a sensible move to me.
For the most part, I don’t since work and personal are very different.
But when I need to:
VS Code + sync account
CLI tools I can install either via ZSH or WSL2
I deploy via docker containers/kubernetes
/shrug
I work in .NET so my tool chain isn’t that complex though
Edit:
For the most part, I’ve just trimmed my tools down to very select few and made sure I have access to basically all the same stuff between platforms.
Honestly, if you require so much setup for your dev environment, you probably should either re-look at why or offload as much as you can
Edit2:
Btw, you could just have a couple setup scripts in power shell/bash on GitHub for each platform. It takes me only a couple hours to reset a windows machine to my defaults after a partition wipe thanks to scoop/winget and there’s brew on macOS
Good point on my environment perhaps being too bloated; I’m mostly in Golang / Python land.
When I say dev environment, I also mean keyboard shortcuts for window management (as I easily get lost in the different shortcuts between OS’s / desktop environments). That’s kind of what I was alluding to with tmux (and I forgot to mention neovim). Was just kind of curious to hear how other people handle this sort of thing.