[development] Why Drupal 4.7 is late? (long)
Karoly Negyesi
karoly at negyesi.net
Sun Jan 15 08:18:02 UTC 2006
First of all, it is not late. It'll be out when it's done and noone said
it otherwise.
However, it was announced quite some ago that "In preparation of the
Drupal 4.7.0 release, development of Drupal core will be frozen on
September 1st." http://drupal.org/node/28466
On September 1st, Dries announced http://drupal.org/node/30176 that
September 15 is the new code freeze date mainly due to form API and
upgrade system improvements. He hoped to have a release candidate on
October 7. Form API thread http://drupal.org/node/29465 started on August
23.
The Form API was committed to core in October 7. In a mere three months it
saw 48 revisions. Bootstrap, for example saw 80 in two years. Even
node.module needed four months to reach v1.48 but that was almost five
years ago and much, much less code and users were affected.
Form API is a big change. Not just the way the forms are defined but the
whole workflow is changed. You no longer have access to the POSTed
information on form build time, you can interact with that later on via
various callbacks. This immense change is percieved as hard but it is not.
Aaron Welch (also known as crunchywelch) have converted nothing less than
flexinode single handedly in three days time and this included several
form API fixes -- this was back when form API itself was pretty bogus. His
estimate (and mine) is that it can be done in a day now that form API is
fixed up. Other modules have also been converted. Ecommerce is under way.
Module developers, brace yourselves and try it. It's not hard if you first
forget the old ways.
But alas the form API conversion of core were not made by form API
experts. You know why? It's so simple. Think a bit on it. I think you
guessed it: because there were none (with Adrian being the exception, of
course). But how could there be? It's a whole new API. We struggled,
learned it, added stuff to the API itself when there was a need. So, there
are quite a lot of bugs in core resulting from this conversion and the
quality is not even. Currently, there are only a handful people who can --
or want? -- to hammer these bugs out. Everyone, it's impossible for a
small handful of developers to fix them all. Often patch fixing efforts
abandoned and I need to take over. I took the form API mantle but it's
impossible to cope with the load! Currently, being a form API maintainer
means that I need to understand _all_ core (there are approx. a thousand
functions and some 32K LoC) on an astonishing level because various bugs
that were introduced by form API fall somehow on me. If I'd be a
millionarie with nothing else to do but fixing core bugs, it'd be a
different situation but alas I need to earn money. Do you except the menu
maintainer to fix all those menu permission issues just because menu
system is used?
So, I ask for the help of seasoned developers. Form API is not voodoo
magic. It is not written in Brainfuck. It's PHP code which you guys can
understand pretty well. It's even documented even if the documentation is
a bit spotty.
But there are good things also -- because fixing all this stuff took this
long, the upgrade system could run its course and got commited on December
6. It's also a very good thing, now modules can use the upgrade system.
This sounds a bit deceiving but if you think that there is no difference
on a database level between create and alter then you'll quickly realize
that this is a pillar for install system. And we can also say that when
you have added a feature to your site by installing a new module, it's a
new version of that particular site, it's indeed an upgrade.
Thanks for bearing with me
Karoly Negyesi
Ps. If anyone wants to start bitching around "you should have released
without form API", then first please show your comment with a September
date asking for that on Drupal.org -- I met none in the roadmap posts or
the form API thread.
More information about the development
mailing list