Lemmy v0.19.0 is introducing some breaking changes that, if I add support for in Photon, will break compatibility with instances before v0.19.0. If I don't add support for v0.19.0, instances with that version or higher will break. How should I proceed?
A: Keep an old version of photon available for people who need to use a pre-0.19.0 instance (medium difficulty)
B: Add a message to login saying the instance must be v0.19.0 or higher, nuke all backwards compatibility (easiest solution)
C: wait until most instances are on v0.19.0 to proceed with B
D: Add code to handle different versions (hardest solution)
I'd prefer that people be able to rely on Photon, and anything that prevents them from doing stuff on photon I see as a catastrophic issue. A looks the most appealing right now.
I'd guess that this kind of thing will keep happening. Is D so hard because you don't have any infrastructure in place for supporting different versions? Or because this change will be particularly hard?
If it's missing infrastructure, it will probably be worth it to spend the time once and implement it.
Then you should consider your long-term plans. If you will stay with option A long-term it's no issue. If you ever decide to switch to option D, it will be easier the earlier you do it.