TL;DR: How long do you run a given version of Forem before updating?
Hey all, I'm the principal SRE here at Forem, and I'm looking for some feedback on how best to support folks in the Forem ecosystem when it comes to updating your Forem installation.
I've been leading some internal discussions about how we apply changes to both the structure and data in the database. Since some of these changes don't make sense after a while (for example, we can't migrate data to a DB column that no longer exists), we sometimes delete them. So we want to make sure that we give everyone enough time to update to the latest Forem version and run these migrations.
The hard part is that we don't have any hard data on how long a given version of the code is running in the wild on any deployments we don't control ourselves. We've been working on a Forem Discovery service, which is basically a registry of the known Forem ecosystem. If you register your Forem instance with this service (we won't force it on you — you may not want to make your Forem instance discoverable if it's private), it can let us know which version you're on so we can see how long we need to keep a given database migration. Unfortunately, that service isn't ready yet.
Mostly we're trying to figure out whether we need to support them for a matter of weeks or months. Hopefully, we don't need to go to years 😄 but we just want to understand what the order of magnitude is that we need to optimize for.
Looking forward to hearing from y'all!
 I'm using the word "version" to refer to the state of the codebase at any given point in time. This is not about the versioning project, but we do have a lot more clarity around that and I'll be writing another post about that soon.