A few years back, I wrote a small project that leveraged Vagrant and Ansible to make it easy to cleanly set up virtualized dev environments for WordPress projects. It didn't set the world on fire, but it's super useful in my own workflow so I still use it every day, and I know of at least a few other people who have picked it up as well.
At the time, I set it up to build its environments on top of a clean image of Ubuntu 16.04, since that was the most widely used version of Ubuntu back then. Things have moved on since then, though, and 16.04 is increasingly distant from the versions of Ubuntu people use in production these days. I would therefore like to update the tool to use a more recent LTS version.
What I'm not certain about, though, is how to do that in a way that won't disrupt the lives of people other than me who use this tool. It's easy enough to change the Vagrantfile so it pulls down a different base image, but doing so could cause problems for any existing users who blindly git pull origin master
after the change is made (right? correct me if I'm wrong here). And the Ansible playbooks will need modification to deal with things like revised package names as well, which makes them another thing you wouldn't want people just blindly pulling down.
What I'd like to do is freeze the existing project as it currently is so no changes land on existing projects, and then give people an easy way to use the modernized Ubuntu version for new projects. But my Git-fu is not strong enough to know what the best way to provide that via Git/GitHub actually is. A different branch? Releases? A completely separate repo for the modernized version? (That last one is the least appealing, as I have no way to notify existing users to tell them to switch over to the new repo.) Something else completely?
Advice -- especially from others who have used Git & GitHub to distribute software to an audience bigger than one! -- would be gratefully received!
question from:
https://stackoverflow.com/questions/65942944/safe-upgrade-path-for-vagrant-box-managed-in-git-repository 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…