On 30/03/2015 19:50, Stanislav Malyshev wrote:
Hi!

     I tend to agree that it would be easier for all parties if we stop
     adding stuff in micro versions, as it is easier to remember and
I don't think it is a good idea. Imagine you are a PHP developer working
on a project, and you noticed there's some small functionality missing
that would improve things a lot for you - like parameter to some
function or returning some value that is missing. You could easily
contribute it, but if it can't go in minor version there's no point for
you to even bother. Because even if your org is super-up-to-date, they
run 5.6, most realistically - 5.5, and if it's like the majority - it'd
be 5.4 and worse. You could hope to convince your bosses and your ops to
go to 5.6 and keep it reasonably updated within 5.6, but if the only
addition you can make is 7.1, it's the lost cause - by the time your org
could go to 7.1 your project will be long done (or at least long
designed to work without this new feature) and you may be already
working in another company.

If an organisation has standardised on an old version of PHP, there's a fair chance that the builds they are using are not from php.net, but from their OS distribution. As has been mentioned here before, these generally track a particular patch release and cherry-pick fixes - Ubuntu 14.04 maintains a patched version of PHP 5.5.9 vs the official 5.5.23, for instance. Anyone working in such an environment won't receive the benefit of a new feature however far it is backported.

The obvious alternative avenues are to write a forward-compatible userland version, or package an extension, both of which are likely to reach a larger audience than a tail-end release like 5.5.23.

I can certainly see value in a special case for including things in both 5.6 and 7.x, both before and after 7.0 is released, but the the case for backporting anything other than a genuine bug fix to 5.5.x right now seems fairly weak, as will the case for backporting to 7.0.x after 7.1.0 is released (by which point 5.6.x will presumably be in its security-only phase).


As everything can be considered as beeing a BC break for at least
someone on Earth, I admit it is hard to understand the meaning of "small
self-contained additions in a micro version" :-p
I do not think we should consider adding functions/options "BC break",
not by any sane definition of it. Of course, nothing prevents somebody
from using insane definitions, but it's of no concern to us.


The problem is that there is no way to know, as a user, which function names may become reserved in the future. There is an officially reserved namespace "php\", but it remains unused. So if functions can be added at any time, the only way to guarantee your code won't break on a patch upgrade is to treat the entire global namespace as additionally reserved. I don't think it's at all "insane" to say that a patch version shouldn't usurp non-reserved names.

Regards,

--
Rowan Collins
[IMSoP]


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

Reply via email to