Hi

I just read through the releaseprocess RFC(
https://wiki.php.net/rfc/releaseprocess ) again, and I think that the
part where we explain the Release Process and the BC could be
clarified a little bit.
(We still haven't agreed on the how many concurrent versions should we
support, how long would be a version supported, doing LTS, etc. but
thats another topic)

"No feature addition after final x.y.0 release (or x.0.0). Self
contained features or new SAPIs could be carefully considered on a
case by case basis."
I would re-phrase the No feature addition to changing existing
behavior, as it now seems a little bit contradictional.

"Backward compatibility must be respected with the same major
releases, for example from 5.2 to 5.6. Binary compatibility can be
broken between two features releases, f.e. between 5.3 and 5.4:"
it is explained below this line, but maybe it would worth explicitly
stating which BC are we referring to, as BC could also mean ABI/Binary
compatibility which would again contradict the second sentence.

for micro version, I would extend the bugfix part, for example the
is_a fix can be called a bugfix, but large amount of code was
depending on the buggy behavior hence the change affected a large
amount of core out there, and the "right" behavior was achievable
through other methods(using additional class_exists/interface_exists),
so maybe we could mention some kind of rule for this.

"Backward compatibility must be kept (internals and userland)" and
"ABI/API compatibility must be kept (internals)" seems overlapping
again.

I think we should formalize the different kind of BCs, the following
were mentioned in the RFC:
- moving extensions from core to pecl (maybe also define adding new
extensions, or moving from pecl to core)
- internal src compatibility
- internal ABI compatibility
- internal API compatibility
- userland API compatibility

maybe it would be also a good thing to mention that the preferred way
to break userland API compatibility is to first mark the
feature/behavior as deprecated (documentation and/or E_DEPRECATED) and
only remove it after that (which could only happen with a minor or
major version by the RFC) plus the possible migration path should be
also documented if possible.

what do you think?

-- 
Ferenc Kovács
@Tyr43l - http://tyrael.hu

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

Reply via email to