On 22/09/2021 15:02, Kamil Tekiela wrote:
I just want to point out that PHP does not follow semantic versioning. It
never did and there are no plans to start following it now.


This statement is true.


Breaking changes were made in all previous versions, both major and minor.


This statement may be true, depending on how you define "breaking", which is always tricky.


The only time when we try to avoid breaking changes is in patch releases.
These are extremely uncommon.


This statement, however, is false. (As are similar statements made by other people in this thread.) There is an explicit policy to avoid breaking changes in minor releases here: https://wiki.php.net/rfc/releaseprocess

Under heading "x.y.z to x.y+1.z", there are bullets for "Backward compatibility must be kept" and "API compatibility must be kept (userland)".

So, while it may be reasonable to claim that we frequently fail to do so, we always *try* to avoid breaking changes in minor releases such as 8.1.


Whether *this particular* compatibility break is acceptable is a subject for wider debate. I do sympathise with Matthew's position that it would be easier for users if the "resource" type was simply removed all in one go in 9.0. I also sympathise with the position that it's easier for *maintainers* to work through this as a longer-term project, with multiple deliverables.

I also share the concern that there wasn't an RFC introducing this policy, which in hindsight could have led to a more careful migration strategy. For instance, should we have implemented a way for is_resource() and/or get_resource_type() to return expected values for the new objects?

I have much less sympathy for some of the more extreme responses in this thread with ridiculous hyperbole like "shooting ourselves in the face". There is no perfect answer, and we should be able to have a rational discussion about the pros and cons of different strategies.


Regards,

--
Rowan Tommins
[IMSoP]

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to