> De : Rowan Collins [mailto:rowan.coll...@gmail.com] > > Saying "that's enough" isn't even a productive comment. Enough what? > What is it you are asking to happen next?
Maybe an initiative to write an RFC about the rules we should follow when writing to the list. People who agree could show their support by a vote. The vote would never end and would just mean 'I agree and will try to follow these rules'. It probably already exists somewhere but refreshing it wouldn't be useless. It's purely symbolic but, once people explicitly show strong support, it becomes an opposable reference. > - There is a lack of expertise at the core level of the code, so > collaboration on each feature is low. RFCs tend to have a single > sponsor, who has to see the whole process through to the end. - One thing we can encourage, while indirect in this case, is writing more comments in code. With PHP 7, Sara's book is almost unusable and nobody will write another one soon. 'UPGRADING' and friends are fine but far from sufficient, especially for newcomers. The only solution I imagine is adding comments in the code. I know it is annoying when you don't have much time, but comments can be improved at any time. They can be written by the feature author, but also by other people, who needed a (too) long time to understand a feature, and write explanations to help followers. As an example, I spent some time understanding the multi-level architecture of str_[i]replace functions and added a lot of comments along with the patch I will propose. Actually, everywhere you spend time understanding what's going on, more comments are needed. That's really important because, today, the code contains almost no comments except function prototypes. That’s ant work and I am far from perfect about comments in my own code, but it can make a difference, especially making the project more attractive for newcomers (and we *need* new blood). - We also can encourage co-authoring RFCs. People are used to work alone but it can change if there's a will. We can also find a set of skilled volunteers agreeing to give their opinion on RFCs before they're announced on the list. That's just an opinion but it can avoid the discussion going nowhere from the beginning. > - The leadership of the language is left to consensus, so that when > consensus cannot be reached, someone has to take on the role of mediator > / chairman / leader for the feature, and try to push through a compromise. I have no democratic solution for this. In the PHP spirit, as Zeev explained, if the RFC process doesn't bring a consensus before the vote, the discussion should stop and the RFC should be modified. Trying to push it to a 2/3 approval while people are fighting is counter-productive. In this regard, IMO (and I told her), Andrea should have withdrawn her RFC much sooner. It would have allowed to take more time for building the next one, and start a new discussion in a more constructive atmosphere. Upcoming feature freeze was probably the reason but the result is that we need to restart everything from scratch in a bitter atmosphere. > - The RFC process traditionally has only one voting phase, with a > Proof-Of-Concept patch completed, and voters expecting few > implementation details to change. So a lot of time has to be committed > to the details of a feature which might be outright rejected. It might > be more efficient if the principle of a change, details such as syntax, > and final implementation, could be considered separate phases. That's the tradition but I think it is quite open for improvements. While we are traditionally using one final vote with multiple options, nothing refrains anyone to organize informative pre-votes during discussion to test the popularity of a feature before he starts writing code, clearly stating that it is not the final vote. This would allow a better information from the community to the RFC author. The interest of such running pre-votes is that they can contain many more options than the final vote and can be started and closed at anytime during discussion. The only requirement is that everyone understands that it in *not* the final vote. Considering the final vote, that's normal to demand a proof of concept patch, as the feature implications are generally not clear (even in author's mind). But the final vote does not require the final PR to be completed. The same for documentation. You just need to prove that your future changes won't create side issues that couldn't be discussed. That's quite understandable and that's a point the scalar type hints RFC was failing because the vote would have ended with a lot of remaining open issues. > - The internals list is quite high-volume, and the same points end up > being raised multiple times, so a feature sponsor has to give the same > counter-point or explanation each time. That's the main issue to the RFC process, IMO, and I'd really favor switching to a more elaborate system. It was often said but it's a pity that a language like PHP, which runs so many high-level collaborative environments, uses such archaic tools for its own purpose. Github provides almost everything we need through issues (subscriptions/notifications, post edition, links to PRs and code blocks, and more), and only lacks an usable voting system. A lot of people are asking for it, but github is not very receptive at user's requests. Maybe we can use it and keep the final vote elsewhere, as the most important is the discussion. If everyone agrees, I can try writing my next RFC this way (a wiki page containing just metainfo and a link to the php-src github issue). The mailing list should be restricted to questions and replies, announcing new RFCs, and general discussion about PHP internals. As soon as an RFC is published, it should evolve in its own space, and people interested in the subject would explicitely subscribe to the discussion. Even the vote should ideally take place only among subscribed people as there is no reason for someone who did not follow the discussion to participate in the final vote (but it will remain open). > Most of these don't have easy solutions, but hopefully they're specific > enough points that we can come up with some concrete ideas on how to > improve things. This post is way too long but that's just ideas. If you think some may be worth starting a separate thread, just tell me. Regards François -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php