Re: Asymmetric visibility is a BC break
| From: | Rob Landers | Date: | Fri, 11 Oct 2024 10:33:20 +0000 |
| Subject: | Re: Asymmetric visibility is a BC break | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-125785@lists.php.net to get a copy of this message | ||
On Fri, Oct 11, 2024, at 12:20, Jonathan Vollebregt wrote:
> > A "proper" implementation won't break, but there may be subtle ways that
> > "improper" implementations will break and thus it should be considered a BC break.
>
> This thread is fallaciously equating breaks in third-party libraries
> _when changing consumer code_, with breaks just by updating PHP.
>
> If I'm in PHP 8.1+ and I pass an object into a library and all goes
> well, then I change a property to readonly and get an error, that's not
> PHP making a breaking change by allowing me to use readonly. That's an
> outdated library (and me) breaking my code.
>
> I've had my reflection code break on backwards compatible changes loads
> of times, but every time it required the user to make a change to their
> code first.
>
> Valentin's list of examples proves this point. They worked fine on 8.1
> _until_ people changed code to add readonly. That's not a BC break. Same
> deal for aviz.
>
I guess what I am saying is that we probably need a proper definition of "BC break". IMHO,
adding a php version check to do something is probably a BC break. Serializers will need a version
check, thus it is a BC break.
— Rob