Good idea! I like the approach of a lifetime for support branch.
I would like to strike that Hoa has always been compatible with all PHP versions, but this time, we are about to introduce non-backward-compatible features (like types for instance), this is why we have this talk.
Just to clarify also the thread: We all agree to drop PHP 5.x, and to move to PHP 7.1 or 7.2 directly. The last remaining question is: Do we have support branch or not?
Again, this situation is exceptional. The idea of attaching a lifetime to support branches is an excellent one. But I would like to add another argument. Who are our users? More and more I discover we have “indirect users”. Taking the example of Wallabag. Wallabag is using RulerZ, which is using
Hoa\Ruler. A lot of people are using PhpMetrics or ownCloud, which are using
Hoa\Ruler. Of course, we have direct users, yes, I don’t doubt that, but as a set of libraries, I think (I am not sure hélas) we have more “indirect users” than “direct users”. In this situation, what the maintainers of these softwares do? They have a big set of dependencies to manage, they don’t drop PHP versions very easily, and most of the time, they might even ignore that we exist. Our libraries have few bugs, and the surface of our API that are in use contain no bug. In such a situation, a project maintainer will not update dependencies as is: If it works, don’t touch it. That’s a reality of our business. And thus, we can update and drop PHP versions without taking care of backward compatibility, because when these softwares will update, PHP 7 will be the norm, the standard, and the dependencies will use PHP 7 as a minimum requirements. So the situation in which we will have to create a support branch is unlikely to happen.
I am not sure if I am clear, but the probability to create a new support branch is very small. I am not closed to this idea, and I am not afraid too because if it happens, it will probably be once or twice at most, so the amount of work will not be that important.