> How do we do it? Unfortunately, I can't come up with a real mechanism > to 'enforce' a due process and reasoning for new features.
One mechanism that the MapServer project[1] has adopted is that all "major" features require an RFC before they are accepted and implemented. Whoever is proposing the feature or change writes the RFC, which outlines what the impact of the change will be on users, how much code it touches, whether there are any BC breaks, etc. Once the RFC is finalised, the core group of developers vote on the RFC and if the vote carries the feature is implemented. (There's more to it than that, but this is the basic idea. See [2] for the full policy.) Writing the RFC helps the person requesting the feature to stop and think about the implications of the change and to identify any potential technical hurdles before plowing into the code. It also helps everyone else by having a concise, concrete description of the proposed feature that can be referred to during discussions. When the feature is debated on their dev list everyone is one the same page. Any changes or suggestions that come up during discussion can be included in the RFC. Another benefit of this policy is that it increases the legitimacy of the project in corporate settings. The so-called "Enterprise User" can point to it and say, "Hey, here's how these guys make decisions, it makes sense. My manager will like that". The drawback to this scheme is that not many programmers like writing design documents, and would much rather just bang away at code. This could have the effect of deterring potential contributors. (That said, I haven't personally had any problem submitting patches to Mapserver.) Anyway, just something to consider from a list-lurker... PHP is a much bigger project than MapServer, so having a process as structured as theirs might not be feasible. However, requiring RFCs for core language changes might be a good compromise between trying to implement any and every fancy new language feature and stopping core language development altogether. Benj Carson [1] http://mapserver.gis.umn.edu/ [2] http://mapserver.gis.umn.edu/development/rfc/ms-rfc-1/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php