[development] RFC: drupal as a moving target
Larry Garfield
larry at garfieldtech.com
Tue Apr 29 05:02:55 UTC 2008
On Monday 28 April 2008, Neil Drumm wrote:
> Before I would consider maintaining 5.x beyond the planned timespan,
> paid or not, I would need to see a well-thought-out analysis of how it
> would affect the community as a whole, and agreement from the security
> team, core branch maintainers, and community. A few people saying they
> want something, which they are not personally helping with, is simply
> not sufficient.
I'm going to ignore most of the debate on this thread as off-topic (I am not
saying the quoted portion above is, as I think it's quite on-topic), but will
offer the following perspectives:
<consultant hat>
Most of the clients we work with don't have the budget for a 1- or 2-year
upgrade cycle. We estimate that a port of a medium to large site from one
version to the next costs about 60% of the cost of the original build. (We
haven't done many, though, so I welcome input from other consulting shops on
what their average costs for an upgrade are.) That's out of the budget of
many of the clients we work with, who are not-for-profits of one form or
another. For that reason, we recommend that they skip versions, but that
still leaves them with, as someone else pointed out, a period of
unsupportedness.
For most of my clients, a 3-year cycle is within budget. Frequently after 3
years they need to revamp the site anyway, which means we'd do a site rebuild
on the latest version. Given a roughly 1 year dev cycle, that would mean
supporting 2 versions back instead of just one.
As Niel, Moshe, and others pointed out, though, there is a non-trivial cost to
that. There are a couple of things we can do to help make that feasible:
1) Fund a security team or security team lead. This could be through the DA,
or some angel company, or some other mechanism I can't think of at the
moment.
2) More automated testing will, hopefully, reduce the number of bugs and
security holes we have in the first place, which should make long-term
maintenance easier. Read: If you want longer-term stable support, go help
with testing!
3) During GHOP one of the tasks I proposed was a review of penetration testing
tools, which resulted in a very extensive writeup that is, I believe, still
sitting in the issue queue. Penetration testing is the security equivalent
of unit testing; automate trying to break a program to find holes sooner
rather than later. Like unit testing, it can have immense long-term savings
both in time and in break-in costs. I don't know if the security team has
done anything with that yet (I am not on the security team), but if we can
make penetration testing part of our routine that should reduce the long-term
cost of maintenance. Security team folks, has anything happened with that,
and if not, is there anything the rest of us can do to help?
4) Tracking contrib is a decidedly non-small task, and one that gets larger by
about 4 modules a day, I estimate. Perhaps we could pair that down, thanks
to more recent developments in project management? For instance, state that
the sec team will only track contribs that have a published release node for
a given version, so a contrib owner can deprecate his own module for D5
before D5 itself is, at which point the security team does as well? Or go a
step further and only track modules that have a proper stable release node?
(One more reason to not use modules that don't have stable releases.) Would
that make life easier, or introduce too much of a security hole?
All of the above possibilities come down to "make long-term maintenance easier
so we can have more long-term maintenance" (or at least less strain on our
long-term maintainers, and I freely admit that I am not a role model in that
regard). So if we want longer-term maintenance, which I think is a good
thing, we need to make long-term maintenance easier. Let's do that.
</consultant hat>
<developer hat>
Ivan does raise a valid point about Drupal's stance on OOP. Much of it is
based on "PHP 4 OOP sucks anway", which as of D7 is no longer a
consideration. Perhaps we do need to update that document to reflect 3-4
years of further development and the introduction of PHP 5? (Not to
say "yay, OOP!" but to at least be less negative about OOP in general.)
</developer hat>
<community hat>
I am going to borrow the spotlight for a moment to say a huge thank you to all
of those people who do spend inordinate amounts of time not just writing but
maintaining huge tracts of code; leading module maintainers, release
managers, the security team, etc. Without them, Drupal would be so much pile
of useless, buggy code. Guys (and gals!), you rock!
</community hat>
--
Larry Garfield AIM: LOLG42
larry at garfieldtech.com ICQ: 6817012
"If nature has made any one thing less susceptible than all others of
exclusive property, it is the action of the thinking power called an idea,
which an individual may exclusively possess as long as he keeps it to
himself; but the moment it is divulged, it forces itself into the possession
of every one, and the receiver cannot dispossess himself of it." -- Thomas
Jefferson
More information about the development
mailing list