This is a PSA that llama.cpp committed a breaking change to GGML, and is related to GGUF development for llama.cpp, which was an attempt to solve these breaking changes.

There is disagreement in the comments that breaking changes aren’t a necessary condition “in the bleeding edge”, as they believe backwards compatibility and proper versioning is basic programming. They argue more that GGML and llama.cpp isn’t production software, and they shouldn’t expect stability. They say that maintaining backwards compatibility risks slowing down development.

One notable comment in this thread is a rebuttal against the argument that “simply forking the repo” is not something that is easy. The commenter argues that if you are doing a good job with a project and something that the community needs, it is unlikely that they are going to have trouble finding users and building a community. While passive aggressive, the commenter believes that anyone can essentially be empowered to be a “leader” of a community by providing something useful to them, and that is how things kind of work around the open source space.

At the very end of the debate, they concede that it isn’t crystal clear in what path is best: keeping the repo stable, or doing break it till you make it. Some prioritize the bleeding edge, while others prioritize the reliability.

This is related to the advantage of open models—once you have a setup running on your computer, no one will force you to update, and you get to keep what works. While this might not be the most optimal for staying up to date with the best, you at least aren’t forced to. And when there are enough voices for desiring reliability, the project shifts in a direction towards reliability, like GGUF development for llama.cpp. Indeed, one shares their approach in dealing with this issue—they are keeping one repository with the branch at before the breaking change, and the other at head.

One super interesting comment is this:

At KoboldAI we just disagree with this whole concept of constantly breaking userspace so with Koboldcppwe try to keep it compatible.