SFML / imgui-sfml

Dear ImGui backend for use with SFML
MIT License
1.13k stars 169 forks source link

Adopt SFML's branching strategy #241

Closed ChrisThrasher closed 1 year ago

ChrisThrasher commented 1 year ago

SFML uses the master branch for the development of version 3 and maintains 2.6.x for developing in the 2.6.x release series. CSFML is going to adopt this strategy soon and I want ImGui-SFML to adopt it as well. When all repos use the same branching strategy, it's easy to work on multiple repos and know which branch corresponds to which state of the repo.

Along with doing this I'd prefer that we remove any shims required to support v3 from the 2.6.x branch. SFML 3 is not stable so it's a moving target. I'd rather continuously chase and fix API changes made to SFML 3 in the master branch than in any branch that claims to support v2. Likewise the master branch should make no concessions to work with SFML 2.

oprypin commented 1 year ago

I think it is not time to do this yet. The shims are still small and will likely remain manageable for quite some time. There is a lot of benefit to having just 1 branch, not multiple. Then we can just have one "best" version with all behavior fixes effortlessly available.

ChrisThrasher commented 1 year ago

If we make this change now we can also modernize ImGui-SFML to use C++17 and CMake 3.22 like SFML does which opens the door for new improvements and simplifications. It also means being able to break the ImGui-SFML API in case there are any API breaking changes you want to make. I see this as an inevitability so we don't really gain anything by postponing it.

oprypin commented 1 year ago

But we do gain quite a lot by postponing it. We don't need to maintain 2 codebases then.

oprypin commented 1 year ago

Hi @ChrisThrasher, I see now that pull requests will keep coming in in real time as SFML "3.0" keeps adding breakages one by one. I really have no interested in following those, but seems like you do. As such, let's adopt any maintenance method that you prefer and I'll just step back. I'm happy with how the last release turned out, and with that out of the way I don't feel like I need to insist on anything particular. Sorry for holding you back until now.

ChrisThrasher commented 1 year ago

All done. I added a section to the README explaining the state of development.