Ben, Dries and chx are really nice people when you talk with them in person. I agree with you that Drupal's lack of backwards compatibility makes it difficult for enterprise users. One of the biggest enterprise users told me he plans to never upgrade. Other enterprise users I spoke with about this have reached the same conclusion. I've heard it said that if Drupal were forced to choose between the little 'guy', and corporate users, Drupal will choose the little person every single time. For Dries this is a labor of love. An example of what (one of) motivates him is that someone with a terminal/serious disease can reach out and find help through Drupal. Helping some big corporation save money is not what motivates him to give so much of his time to Drupal. Many people working with Drupal/civicspace are motivated by the idea of empowering the individual/"masses." (of course large non-profits also are enterprise users.) I would guess there's a 25% probability that an enterprise fork will develop that is backwards compatible. I do think that will be necessary for Drupal to become accepted in the corporate world. At the conference we talked about having an enterprise user group and/or an enterprise mailing list. Perhaps that can happen Enterprise users do have a lot to offer the community in terms of putting modules back in and donations. I think it's great you've written so much code. Thank you. I hope you can find a way to make Drupal fit your needs. Ann
Hi Ann,
Dries and chx are really nice people when you talk with them in person.
I met Dries a couple of times. I have a lot of respect for him.
I agree with you that Drupal's lack of backwards compatibility makes it difficult for enterprise users. One of the biggest enterprise users told me he plans to never upgrade. Other enterprise users I spoke with about this have reached the same conclusion.
I think I have a much clearer understanding of Drupal's nature and developer side now. A lot of the feedback was constructive and if anything, has helped me make the big decision of whether choosing Drupal, or continuing to use it as our corporate CMS is the right decision. Before developing with Drupal, I didn't care much about the development processes behind the scenes. I just downloaded it, installed it and used it. Now that I've invested a lot of time into writing drupal code, and had at some exposure to the developer culture behind it, I actually have opinion about some things. My boss made a great observation about Drupal. It's too hard to use, too "techie". That's pretty true on the flip side too. Regardless of my skills, I find it difficult to make positive contributions to core. I can "fix bugs", but why when the original authors are the most qualified to fix those bugs? I can "find bugs", but I wonder why don't we have better quality control in the first place. Isn't introducing _more_ bugs with every new feature a clear indication our processes need to be examined? I can contribute modules. I have a slick authenticated web service module but have been waiting on a CVS account for a couple of weeks. I can host and source control my own module, but there's no way to add it to contributions on the site. Frustrating. Take it as a rant or criticism, but being less techie, isn't neccessarily a bad thing. In the end, I just want to see Drupal do well. I want to contribute, and I want to do it without having to spend a lot of time stroking egos and doing grunt work. Thanks. Ben.
Benson Wong wrote:
Hi Ann,
Dries and chx are really nice people when you talk with them in person.
I met Dries a couple of times. I have a lot of respect for him.
I agree with you that Drupal's lack of backwards compatibility makes it difficult for enterprise users. One of the biggest enterprise users told me he plans to never upgrade. Other enterprise users I spoke with about this have reached the same conclusion.
I think I have a much clearer understanding of Drupal's nature and developer side now. A lot of the feedback was constructive and if anything, has helped me make the big decision of whether choosing Drupal, or continuing to use it as our corporate CMS is the right decision.
Before developing with Drupal, I didn't care much about the development processes behind the scenes. I just downloaded it, installed it and used it. Now that I've invested a lot of time into writing drupal code, and had at some exposure to the developer culture behind it, I actually have opinion about some things.
My boss made a great observation about Drupal. It's too hard to use, too "techie".
I prefer the term "powerful".
That's pretty true on the flip side too. Regardless of my skills, I find it difficult to make positive contributions to core.
Most people don't start by rewriting large parts of core.
I can "fix bugs", but why when the original authors are the most qualified to fix those bugs?
Cause they might not have the time, or even care about bugs in a part of the code that they don't feel is that important to them.
I can "find bugs", but I wonder why don't we have better quality control in the first place. Isn't introducing _more_ bugs with every new feature a clear indication our processes need to be examined?
Uhhh. One thing about Open Source development is that there are usually not many processes involved... Over the years, we actually have resolved to implement some processes. Feel free to suggest improvements, but for continued good working relationship I suggest you scratch "backwards compatibility", "responsibility", and related items from your vocabulary.
I can contribute modules. I have a slick authenticated web service module but have been waiting on a CVS account for a couple of weeks. I
Happens.
can host and source control my own module, but there's no way to add it to contributions on the site. Frustrating.
IIRC, I approved your account.
Take it as a rant or criticism, but being less techie, isn't neccessarily a bad thing.
Why should it? But since we - the techies - need to develop Drupal we are usually very reluctant to accept suggestions from outsiders.
In the end, I just want to see Drupal do well. I want to contribute, and I want to do it without having to spend a lot of time stroking egos and doing grunt work.
Sorry to say so, but no aim is achieved without effort. If you don't feel like doing grunt work once in a while, the processes that need a review are yours not ours. Cheers, Gerhard
Most people don't start by rewriting large parts of core.
True, but it does pretty much what I need it to do. That last mile, support for multilingual content is a deal breaker for me.
Over the years, we actually have resolved to implement some processes. Feel free to suggest improvements, but for continued good working relationship I suggest you scratch "backwards compatibility", "responsibility", and related items from your vocabulary.
I think that is a good sum up of where my wishes and those of the community differ. I'm looking for something that I can feel safe about using to build my company's corporate site off of. I didn't realize that Drupal is so much more technology focused than support focused. So, I apologize for all the drama. I'll stop now.
IIRC, I approved your account.
Yep, and thanks. You told me to wait until after the drupal.org upgrades so I can change my CVS password... still waiting.
Sorry to say so, but no aim is achieved without effort. If you don't feel like doing grunt work once in a while, the processes that need a review are yours not ours.
I have to agree with this. On that note, isn't there a way to automate the grunt work a bit? This is what I wound up doing while building off of the 4.7 release since the database definitions changed with pretty much every cvs update... I got pretty tired of having to manually go through and recreate the DB's for drupal, reimporting content, re-enabling my modules, setting the themes, etc. So I wrote a drupal bootstrapper. Basically it would automate the process of configuring a clean source tree all the way up to my configured website. Why not do that with scratch.drupal.org, bootstrap it to a desired state, and then run selenium on it. It won't give big code problems, but it will at least ensure that what worked before is still working. Anyways, just an idea. Thanks. Ben
This is what I wound up doing while building off of the 4.7 release since the database definitions changed with pretty much every cvs update...
I got pretty tired of having to manually go through and recreate the DB's for drupal,
I have been warned in private to be more polite, so I try. Please observe that we have a database upgrade system. You do not need to recreate the DB with every CVS update.
Please observe that we have a database upgrade system. You do not need to recreate the DB with every CVS update.
I know that exists. However CVS updates usually bring more than just database changes. I was talking about automating bug testing a bit, not just updating the database. The reason I use a bootstrap file is during testing I like to return the database to a consistent state at the start of each test run. That consistent state is whatever in the drupal db create file. So my bootstrap file would start with an empty database, create the drupal tables, create some users, enable custom modules, set system variables, insert base content, etc. At the end of the bootstrap, if all actions were successful, I can be pretty sure that my custom version of Drupal is ready to use. Now, theoritically, I should be able to run Selenium against my installation. Log in, Insert a few nodes, check that they were there, delete some nodes, etc. Now I can be sure that all the code is still working correctly with the updates from CVS. This way it doesn't matter how much things change between CVS updates. I can just take 2 minutes to run my bootstrap and then selenium if all test passed, I go have a coffee. I personally find this really useful, it's not for everybody. I don't like doing grunt work...rather drink coffee. Ben.
Could you take a bit of time and create a book page on drupal.org describing how you do all of this? Warning: book pages go straight into moderation... just send a mail to the documentation list (or to me if you like) when you've finished and we'll get it reviewed and published quickly. thanks, Robert Benson Wong wrote:
Please observe that we have a database upgrade system. You do not need to recreate the DB with every CVS update.
I know that exists. However CVS updates usually bring more than just database changes. I was talking about automating bug testing a bit, not just updating the database.
The reason I use a bootstrap file is during testing I like to return the database to a consistent state at the start of each test run. That consistent state is whatever in the drupal db create file. So my bootstrap file would start with an empty database, create the drupal tables, create some users, enable custom modules, set system variables, insert base content, etc. At the end of the bootstrap, if all actions were successful, I can be pretty sure that my custom version of Drupal is ready to use.
Now, theoritically, I should be able to run Selenium against my installation. Log in, Insert a few nodes, check that they were there, delete some nodes, etc. Now I can be sure that all the code is still working correctly with the updates from CVS.
This way it doesn't matter how much things change between CVS updates. I can just take 2 minutes to run my bootstrap and then selenium if all test passed, I go have a coffee. I personally find this really useful, it's not for everybody. I don't like doing grunt work...rather drink coffee.
Ben.
On Fri, 2006-02-24 at 21:16 -0800, Benson Wong wrote:
I think that is a good sum up of where my wishes and those of the community differ. I'm looking for something that I can feel safe about using to build my company's corporate site off of. I didn't realize that Drupal is so much more technology focused than support focused. So, I apologize for all the drama. I'll stop now.
I think you have good feed back. I think we're all just a little defensive today :)... it happens... regardless... Drupal's focus on head/beta versions is very technical.. No company will offer you support, or for the most part even access to their beta code. The support for 4.6 is much better, and the code base is much more stable.
IIRC, I approved your account.
Yep, and thanks. You told me to wait until after the drupal.org upgrades so I can change my CVS password... still waiting.
Sorry to say so, but no aim is achieved without effort. If you don't feel like doing grunt work once in a while, the processes that need a review are yours not ours.
I have to agree with this. On that note, isn't there a way to automate the grunt work a bit?
This is what I wound up doing while building off of the 4.7 release since the database definitions changed with pretty much every cvs update...
This will happen if you work with the beta version of just about any piece of software. I think there has been a lot of strain for people trying to go into production on the shoulders of 4.7/HEAD pre-release and beta.. Drupal, the released versions, are really not all that unstable or difficult to upgrade. The module updates even the formAPI changes are pretty well documented and should be quick to follow for most drupal module developers... Hacking core... well you've got moving target issues.
Thanks. Ben
Darrel O'Pry wrote:
On Fri, 2006-02-24 at 21:16 -0800, Benson Wong wrote: I think there has been a lot of strain for people trying to go into production on the shoulders of 4.7/HEAD pre-release and beta..
Yes, I am one of the people who let myself hear the siren song of 4.7 back in August-September 2005, and have projects that have been upgraded to every single significant code change since then. This includes the sudden realization that came sometime in September that the 10+ contrib modules that I was using no longer worked =( But I only have me to blame. -Robert
Op zaterdag 25 februari 2006 06:16, schreef Benson Wong:
I got pretty tired of having to manually go through and recreate the DB's for drupal, reimporting content, re-enabling my modules, setting the themes, etc. So I wrote a drupal bootstrapper. Basically it would automate the process of configuring a clean source tree all the way up to my configured website.
Maybe you want to look at sympal_scripts? Maybe you want to even contribute there? It sounds you aer pursueing the same as I do. http://cvs.drupal.org/viewcvs/drupal/contributions/tricks/sympal_scripts/ http://drupal.org/project/sympal_scripts Next up there: fixtures[1]: store the status of a site (content, vars etc) as PHP code (not in XML, not in SQL, not even YAML, but the language we all speak: PHP), for easy reimport. Great for distros. Even greater for development environments or testbeds. [1] http://wiki.rubyonrails.com/rails/pages/ActiveRecordYamlFixtures -- [ Bèr Kessels | Drupal services www.webschuur.com ]
Benson Wong wrote:
Most people don't start by rewriting large parts of core.
True, but it does pretty much what I need it to do. That last mile, support for multilingual content is a deal breaker for me.
You're not the only one here. If this is where your itch is, please, don't go away. Apply your skills to solving this problem. There are many who have worked on the current implementation (i18n), some who have proposed alternate implementations (Gerhard has ideas for basing language support on node revisions), and lots and lots of people who also need i18n as a core feature. You'll get lots of feedback, help and support (and probably criticism, too) if you work on this --- it is bound to be exciting. So take this as a personal request... help us develop Drupal for multi-lingual sites. -Robert
Benson Wong wrote:
Most people don't start by rewriting large parts of core.
True, but it does pretty much what I need it to do. That last mile, support for multilingual content is a deal breaker for me.
There are plenty of suggestions for that,
Over the years, we actually have resolved to implement some processes. Feel free to suggest improvements, but for continued good working relationship I suggest you scratch "backwards compatibility", "responsibility", and related items from your vocabulary.
I think that is a good sum up of where my wishes and those of the community differ. I'm looking for something that I can feel safe about using to build my company's corporate site off of. I didn't realize that Drupal is so much more technology focused than support focused. So, I apologize for all the drama. I'll stop now.
Well, my argument is that Drupal _is_ perfectly safe to build hatever site you want to build with with it. Why is that so? Because it is Open Source. If you don't like it, change it. If you can't do it yourself hire somebody, if that somebody gets run over by a truck, hire somebody else. Try to do that with commercial software. There, if somethign fails, you can only hope they'll fix it. And if the publicly offered support through the forums (which is pretty good) isn't good enough, try to get a service agreement with somebody.
IIRC, I approved your account.
Yep, and thanks. You told me to wait until after the drupal.org upgrades so I can change my CVS password... still waiting.
Ah, sorry, well, it wasn't me who forgot the password. ;^)
Sorry to say so, but no aim is achieved without effort. If you don't feel like doing grunt work once in a while, the processes that need a review are yours not ours.
I have to agree with this. On that note, isn't there a way to automate the grunt work a bit?
We have discussed some ways of automation, but nobody has yet found the time to implement them. Two topics I remember: -- unit tests (see http://cvs.drupal.org/viewcvs/drupal/contributions/modules/simpletest/) -- automated patch testing.
This is what I wound up doing while building off of the 4.7 release since the database definitions changed with pretty much every cvs update...
I got pretty tired of having to manually go through and recreate the DB's for drupal, reimporting content, re-enabling my modules, setting the themes, etc. So I wrote a drupal bootstrapper. Basically it would automate the process of configuring a clean source tree all the way up to my configured website.
There are talks for an installer. But our update.php should take care of db updates. Even from contrib nowadays.
Why not do that with scratch.drupal.org, bootstrap it to a desired state, and then run selenium on it. It won't give big code problems, but it will at least ensure that what worked before is still working.
What is selenium in this context?
Anyways, just an idea.
Which I am eager to evaluate. Cheers, Gerhard
On 25 Feb 2006, at 02:08, Benson Wong wrote:
I think I have a much clearer understanding of Drupal's nature and developer side now. A lot of the feedback was constructive and if anything, has helped me make the big decision of whether choosing Drupal, or continuing to use it as our corporate CMS is the right decision.
Before developing with Drupal, I didn't care much about the development processes behind the scenes. I just downloaded it, installed it and used it. Now that I've invested a lot of time into writing drupal code, and had at some exposure to the developer culture behind it, I actually have opinion about some things.
Drupal's development process resembles that of most Open Source projects. I don't think the development process is broken -- what's not to say it can't be improved. Where we often differ is in our culture of backward compatibility. From day one, I decided not to care about backward compatibility and it has been one of our core values ever since. (However, we only break your code, not your data.) Either you like that, or you don't. The problem is exactly that. It's very much a matter of opinion as there are both advantages and disadvantages to either philosophy. For example, if we were to support backward compatibility, we'd be in the exact opposite situation. People would be vocal about the fact that we drag 100k of deprecated code around, that it adds a burden that slows down the release cycle or innovation, that their sites could be much, much faster if only we got rid of the legacy code, etc. The real question is: why is upgrading _that_ important? The Drupal 4.6 release has been out there for almost one year now, and is likely going to be maintained for at least another one or two years. And depending on the needs, much longer than that. (In the Linux kernel world, the 2.0 release series are still being maintained despite the fact that the original 2.0.0 kernel was released in 1996!) If you want a stable branch, you can use a stable branch. -- Dries Buytaert :: http://www.buytaert.net/
On Sun, 26 Feb 2006 09:28:32 +0100 Dries Buytaert wrote:
The real question is: why is upgrading _that_ important?
I basically agree with everything you just said. I'd like to offer one possible answer to this real question you raised: "because every module maintainer has a different opinion about how to manage fixes and improvements in the different versions of their modules, and drupal can't do much of anything without at least *some* modules enabled." It seems that if you want anything improved about your 4.6 site, you either have to manually maintain a forked copy of the 4.6 module code base (which is what i'm doing, while trying to submit as many patches back to the issue queues as possible), or you have to upgrade to 4.7. A few anecdotes to illustrate the point from my recent history of interacting with different module maintainers: 1) A trivial patch I submitted to the project.module to fix a permission problem in 4.6 wasn't going to be committed (without some prodding) because "4.6 is frozen", even though the code was actually broken (one of the access control permissions didn't work at all if you tried to enable it) and a 1-line change got it working. 2) A very handy feature in simple_access.module was discussed at great length as a 4.6 improvement, but finally the maintainer just committed it to the 4.7 version of simple_access and closed the issue. To further complicate this, the fix was done in the same commit as porting the entire module to the 4.7 forms API, so it's now going to be a lot of effort to extract this feature (which many people using 4.6 wish they had) from this monolithic commit and get it working in 4.6 (it doesn't appear to require 4.7 forms for any real reason). Even if I did the work, it's unclear if the maintainer will actually apply it to 4.6. 3) The maintainer of signup.module wants to completely re-write and re-organize the entire 4.6 signup codebase, to make it more modular and off-load more of the forms-related stuff it's doing into modules it should depend on (partially in response to the avalanche of patches i've submitted that provide new functionality I needed). So, folks trying to use the "stable" 4.6 signup might find that one day, when they download the "4.6 signup" (since there's no versioning of modules, something that makes doing your own revision control with vendor branches more of a pain), all of a sudden the entire look and functionality of the module has completely changed from the last 4.6 site they setup, it now depends on 3 other modules, etc. So, 3 very handy modules have 3 completely different philosophies on what to do with their "stable" version. Project didn't even want to fix a known bug with a trivial solution, since (at first) that was considered too much of a change to a now-frozen stable release. simple_access seems willing to do bug fixes to 4.6, but anything new goes into 4.7. Signup seems willing to completely change everything, right in the middle of a "stable" version. I'm still not sure what I think about the fact that there's no consistency across modules in this respect. Of course, it's great that ultimately, everything is open source, and I can (and do) just get my own 4.6 site working exactly how I want, with some combination of stock modules, custom modifications, and occasionally, updates to the modules from the real maintainers when they fix or add something I care about. However, that's not an ideal model, since it makes the cost of using drupal pretty high. I happen to have been writing code and using CVS for well over a decade before I ever heard of drupal, so even though I had never written a line of php a few months ago, I could add a bunch of functionality I needed and fix a lot of bugs I found. But most people trying to use drupal to setup a website aren't going to have those skills and that experience to draw from (nor many thousands of dollars to hire someone who does). If one of the motivating philosophies behind drupal is "down with The Man, let's help the underdog" (which I totally support), that doesn't quite jive with "only if the underdog is already a computer programmer, or has a $20K budget for their website". It also complicates the question "why bother upgrading?". Depending on what modules you need, you're often faced with the difficult (and somewhat evil) choice of a) redo a lot of work someone already did to the 4.7 version or b) upgrade your entire site to 4.7. This is *not* an argument for crippling drupal by tying its hands to backwards compatibility. We've gone down that road for the university research project I work on for my day job, and it's a *major* waste of developer time, source of bloat, and maintenance costs. I'm just raising the issue that while the core has a clear philosophy and (mostly) clear process, the modules are all over the map, and precisely because of drupal's (correct) emphasis on modularity, core drupal *on its own* isn't very useful for doing much. I'm still too new around here to have any profound insights on what to do about all this, so unfortunately I don't (yet) have a concrete suggestion to share. Given the distributed ownership and maintenance of the contrib modules, I don't think it'd be possible (or wise) to enforce any kind of uniformity. I just wanted to offer my perspective as a new drupal user and developer, trying to keep a live site happy and stable in 4.6, but still getting new functionality or bug fixes I need to solve real problems I'm facing. I hope this is helpful input into the discussion... Thanks, -Derek
Comments for Dries:
From day one, I decided not to care about backward compatibility and it has been one of our core values ever since. (However, we only break your code, not your data.) Either you like that, or you don't.
Straight from the horse's mouth. :) Thanks. For Derek: First off, excellent and very helpful input.
However, that's not an ideal model, since it makes the cost of using drupal pretty high. ... most people trying to use drupal to setup a website aren't going to have those skills and that experience to draw from (nor many thousands of dollars to hire someone who does). If one of the motivating philosophies behind drupal is "down with The Man, let's help the underdog" (which I totally support), that doesn't quite jive with "only if the underdog is already a computer programmer, or has a $20K budget for their website".
This hits the nail directly on the head. A small addition, perhaps providing the means, rather than enforcing the will is a good approach. I dream of Drupal switching from cvs to svn. Better access methods (https), finer grain access control, access control lists, etc. We can have a guideline for a contrib module's svn directory structure like: /my_contrib head tags 4.5 4.6.4 4.6.5 4.7-BETA4 ... Contributors can choose if they want to use it or not. It's very little work for a contributor to checkout the 4.6.5 version of their module, fix some bugs, and commit the changes just for that version of drupal. Much easier with SVN than CVS (I think). Another plus is that people who depend on their code can just export the correct tag. A lot easier too... ie: svn co https://svn.drupal.org/respositories/contributions/my_module/tags/4.6.5 Ben
On Sun, 26 Feb 2006 17:05:45 -0800 "Benson Wong" wrote:
I dream of Drupal switching from cvs to svn.
i don't understand all the fascination with which revision control system to use. they all do roughly the same thing. most of our problems don't stem from what tool we're using to manage the revisions, it's the social policy/procedure for what (bug/feature), where (branch) and who makes the changes. that policy for the core is pretty clear, consistent, and good (from my limited contact). but, i don't see changing tools as a means to get closer to having a policy like that for the contrib modules. sure, svn gets some things better than cvs, and i'm sure baazar-ng is nice, too, but there's nothing fundamental about any of them that can solve the kinds of issues i'm talking about. most of the reasons i've heard for switching to svn or baazar-ng are things that can be done (albeit with a little effort) in cvs. maybe it's just that i've used cvs for *so long* and know nearly every trick there is.
Better access methods (https)
for developers with drupal.org source access, we could do cvs over ssh if we really cared.
, finer grain access control,
in cvs you can control as fine as you want, all the way down to: "this 1 user can only modify 1 file on 1 branch".
access control lists
not exactly sure what you mean by this, but i'm pretty sure whatever you have in mind is something you can already do in cvs (if you know every possible knob you can turn). it's also totally unrelated to a policy/vision for managing versions and changes within contrib.
It's very little work for a contributor to checkout the 4.6.5 version of their module, fix some bugs, and commit the changes just for that version of drupal. Much easier with SVN than CVS (I think).
no, this much cvs and svn can do with equal ease.
Another plus is that people who depend on their code can just export the correct tag.
cvs can do this, too.
ie: svn co https://svn.drupal.org/respositories/contributions/my_module/tags/ 4.6.5
cvs co -d... -r 4_6_5 contributions/my_module -derek p.s. does anyone actually care if i don't capitalize my emails to this list? this is one of the signs of a "good post" in the faq about development@drupal.org. when i had a period of bad wrist problems and ergonomic woes, one of the suggestions was to give up the shift key, since it puts extra strain on your fingers. i've been out of the habit ever since.
On Sun, 26 Feb 2006 05:56:24 -0600 Derek Wright wrote:
I'm still too new around here to have any profound insights on what to do about all this, so unfortunately I don't (yet) have a concrete suggestion to share.
this recently caught my eye: Backporting Forms API to 4.6. Experimental migration feature http://drupal.org/node/51390 i think this is just what we need: 4.6 contrib modules that provide a 4.7 compatibility API. of course, not every new feature of 4.7 can be emulated, but key API changes that modules *must* make (e.g. forms) which can still be implemented as contrib in 4.6, could solve a *lot* of problems with module maintainance and release policy. the native 4.6 versions of contrib modules should remain stable, only doing security updates, bug fixes, or very small, localized improvements to existing functionality. where possible, modules can port their 4.7 version to the required core API changes, with an eye towards staying within the bounds of whatever can be successfully emulated in the 4.6 compatibility contrib module. then, new functionality can be added to the development 4.7 version of the module, but sites that want to stay at 4.6 can still use it. if radical changes in 4.7 that can't be emulated are needed, *then* the module maintainer can worry about forking their code, instead of *always* having to fork as soon as a new major release of core comes out. maintainers could make a "DRUAPL-4-7_BACKPORT-4-6" branch for their module, and leaving whatever 4-7 goodness that still works in 4.6 compatibility mode in there, and move on with the bleeding edge 4.7 development in the DRUPAL-4-7 branch (or HEAD). better version numbers for contrib module releases would be a huge help for all of this, if not a requirement. the lack of "point releases", or "sub versions" or whatever you want to call them is a serious limitation imho. i don't know how easy it is for module authors to add new branches to be released to their drupal.org project page, but that'd be good, too. i fully understand why the core developers don't want to spend too much time doing legacy support inside core itself. but, if it's relatively easy to cover the main 4.7 core API changes (forms) via a 4.6 contrib module, that might solve 75% of the problems. perhaps a tiny fraction of the core development team's effort could be put into giving insight to the people trying to make these compatibility modules work, and in rare cases, changes in core itself could be done with an eye towards contrib compatibility (as opposed to trying to maintain core compatibility). maybe some of the enterprise folks could fund/support a compatibility layer development team (analogous to the security team). if we had regular compatibility modules for the most common required API changes, it'd be easier to request/enforce a more uniform release management policy from contrib authors, since the default choice is a good one (you still have to upgrade to a new core API, but there's a compatibility module you can use for the current stable version that will work for most of what you need to do, anyway) instead of forcing them to fork to even work with the next release at all. -derek
1) A trivial patch I submitted to the project.module to fix a permission problem in 4.6 wasn't going to be committed (without some prodding) because "4.6 is frozen", even though the code was actually broken (one of the access control permissions didn't work at all if you tried to enable it) and a 1-line change got it working.
Derek, I agree with your general point on 4.6. In the issue you reference, http://drupal.org/node/49408, I didn't mean that 4.6 was (formally) frozen--just that, to my knowledge, no one was doing much active maintenance. But this small distinction gets fairly near the core of the issues we're discussing. The situation is that a lot of (paid, economically significant) work depends on volunteer contributions--from Dries on down to module maintainers. The thing about volunteers is that you can't really require them to do work. They'll contribute largely what they want to, what interests and motivates them. Generally speaking, when there's limited time available, doing maintenance on old releases is often going to rate relatively low when measured up against, e.g., getting an innovative new version out. So maybe the question really becomes: how do we enable those who depend on old releases to contribute to maintaining them? Maybe Dries' welcome approach of having a 'release maintainer' is worth looking at here for more than core. Major users of modues could adopt old releases when the module author/maintainer no longer wishes to maintain them.
There will always be security releases to older versions, which provide an opportunity to roll in some other fixes (not new features). For instance there is a severe problem that prevents 4.6 working with MySQL 5.12+ and ISPs are converting to it. Since 4.7 is not even in beta yet this is a show stopper. It also has problems on the CVS of a few days ago - I don't know about current CVS. IBM used to have (may still have) an issue escalation process that declared some problems as "Severity 1" which put teams on solving it 24x7 until fixed. Most current security bugs in Drupal are treated close to this process. I think there are bugs which deserve a similar high priority, e.g. the MySQL 5.12+ bug.
-----Original Message----- From: development-bounces@drupal.org [mailto:development-bounces@drupal.org] On Behalf Of Nedjo Rogers Sent: Monday, February 27, 2006 11:12 PM To: development@drupal.org Subject: Re: [development] enterprise needs
1) A trivial patch I submitted to the project.module to fix a permission problem in 4.6 wasn't going to be committed (without some prodding) because "4.6 is frozen", even though the code was actually broken (one of the access control permissions didn't work at all if you tried to enable it) and a 1-line change got it working.
Derek, I agree with your general point on 4.6. In the issue you reference, http://drupal.org/node/49408, I didn't mean that 4.6 was (formally) frozen--just that, to my knowledge, no one was doing much active maintenance.
But this small distinction gets fairly near the core of the issues we're discussing. The situation is that a lot of (paid, economically significant) work depends on volunteer contributions--from Dries on down to module maintainers.
The thing about volunteers is that you can't really require them to do work. They'll contribute largely what they want to, what interests and motivates them. Generally speaking, when there's limited time available, doing maintenance on old releases is often going to rate relatively low when measured up against, e.g., getting an innovative new version out.
So maybe the question really becomes: how do we enable those who depend on old releases to contribute to maintaining them?
Maybe Dries' welcome approach of having a 'release maintainer' is worth looking at here for more than core. Major users of modues could adopt old releases when the module author/maintainer no longer wishes to maintain them.
On Mon, 27 Feb 2006 23:30:57 -0500 Walt Daniels wrote:
I think there are bugs which deserve a similar high priority, e.g. the MySQL 5.12+ bug.
there's no 1 bug. this bug is spread out over numerous contrib modules. the best summary and solution (that i've seen) is described here: http://drupal.org/node/43735#comment-92865 starbow (the author of that post) and i have submitted patches to the event, image, taxonomy, and project modules. so far, the one for event was applied, but none of the others have been committed (yet). there are probably other modules where this is a problem (e.g. http://drupal.org/node/51696), but we've only found/fixed this bug for the modules we're actively using. the solution is usually very easy: you just have to re-order the tables in a SELECT query so that if you're JOIN'ing w/ the {node} table, that it comes first. otherwise, db_rewrite_sql() will break SQL standards compliance if you enable any of the node access modules (node_privacy_byrole, simple_access, taxonomy_access, etc), since they add an "INNER JOIN {node_access} ON na.nid = n.nid" before the "{node} n" in the query. it's really just up to each module maintainer to apply these patches that already exist, or, in cases where there's no patch yet, a relatively trivial change to the code can get their module to work with MySQL 5.0.12+. i'd be happy to help folks test patches to various modules if needed. -derek p.s. for the interested reader, here are links to the not-yet-applied patches: image -- http://drupal.org/node/49433 project -- http://drupal.org/node/50572 taxonomy -- http://drupal.org/node/49430
On Tue, 28 Feb 2006 02:39:13 -0600 Derek Wright wrote:
there's no 1 bug.
however, a single patch will fix the vast majority of the problems: http://drupal.org/node/51850 http://drupal.org/node/51850#comment-78069 (#16, includes the patch) if a core maintainer could apply chx's db_rewrite_nail_2.patch, that'd be great. the various contrib maintainers will still have to patch their 4.6 modules if they want to support MySQL 5.0.12+, but at least this won't really be a problem in 4.7 anymore (except modules that do implicit joins, most of which are in the process of being fixed). thanks to everyone who's making this happen, especially chx for the fix! -derek
On Feb 27, 2006, at 8:30 PM, Walt Daniels wrote:
For instance there is a severe problem that prevents 4.6 working with MySQL 5.12+ and ISPs are converting to it.
http://dev.mysql.com/downloads/mysql/5.1.html NOTE: This alpha release, as any other pre-production release, should not be installed on production level systems or systems with critical data. It is good practice to back up your data before installing any new version of software. Kieran
On 2/28/06, Kieran Lal <kieran@civicspacelabs.org> wrote:
On Feb 27, 2006, at 8:30 PM, Walt Daniels wrote: 5.12+ and ISPs are converting to it.
I think Walt means 5.0.12.
http://dev.mysql.com/downloads/mysql/5.1.html
NOTE: This alpha release, as any other pre-production release, should not be installed on production level systems or systems with critical data. It is good practice to back up your data before installing any new version of software.
http://dev.mysql.com/downloads/mysql/5.0.html Which is as fully released as MySQL gets. Greg
On Mon, 2006-02-27 at 20:11 -0800, Nedjo Rogers wrote: <snip>
But this small distinction gets fairly near the core of the issues we're discussing. The situation is that a lot of (paid, economically significant) work depends on volunteer contributions--from Dries on down to module maintainers.
The thing about volunteers is that you can't really require them to do work. They'll contribute largely what they want to, what interests and motivates them. Generally speaking, when there's limited time available, doing maintenance on old releases is often going to rate relatively low when measured up against, e.g., getting an innovative new version out.
So maybe the question really becomes: how do we enable those who depend on old releases to contribute to maintaining them?
<snip> If your economic welfare depends on drupal, set up a cvs/svn/bzr repository with drupal 4.6 as a vendor branch, make the changes and bug fixes you need. You should be willing to contribute your upgrades back to the community and hope they get accepted back into the main tree. The fact is your business needs are probably immediate, the development communities needs are probably less immediate than your friday deadline. If you want to build your business on an open source foundation, be prepared to do some work. You can't guarantee that community process will conform to your businesses needs, or that if they do conform for a period, that they will stay that way. .darrel.
Op dinsdag 28 februari 2006 18:11, schreef Darrel O'Pry:
If your economic welfare depends on drupal, set up a cvs/svn/bzr repository with drupal 4.6 as a vendor branch, make the changes and bug fixes you need. You should be willing to contribute your upgrades back to the community and hope they get accepted back into the main tree.
The fact is your business needs are probably immediate, the development communities needs are probably less immediate than your friday deadline. If you want to build your business on an open source foundation, be prepared to do some work.
You can't guarantee that community process will conform to your businesses needs, or that if they do conform for a period, that they will stay that way.
This says it all! Nail on the head Darrel. I would like to add, register your project (bzr svn or whatever). That way ohters might pick up your fridays-deadline-hacks and improve them, or build on top of them. And off course submit them as patches. Bèr -- PGP ber@webschuur.com http://www.webschuur.com/sites/webschuur.com/files/ber_webschuur.asc PGP berkessels@gmx.net http://www.webschuur.com/sites/webschuur.com/files/ber_gmx.asc Gebruik geen CVS, tenzij je zeker van je zaak bent: http://help.sympal.nl/gebruik_geen_cvs_tenzij_je_zeker_van_je_zaak_bent
On Tue, 28 Feb 2006 12:11:19 -0500 "Darrel O'Pry" wrote:
If your economic welfare depends on drupal, set up a cvs/svn/bzr repository with drupal 4.6 as a vendor branch, make the changes and bug fixes you need.
for the record: a) i'm not an enterprise, just an individual user doing all this drupal work on my own time, for my own private site for a brazilian percussion ensemble i direct. ;) i'd like to start using drupal for my day job (academic staff @ the uw-madison comp sci department), but that's another story... b) setting up a cvs repository and importing drupal 4.6 as a vendor branch is exactly what i did. (side note: the fact that contrib modules don't have real version numbers makes using vendor branches more of a pain, since you have to tag based on the date you imported, not some reasonable version number of a given contrib module).
You should be willing to contribute your upgrades back to the community and hope they get accepted back into the main tree.
that's what i've been trying to do. my point is that it's not so easy to do this (especially given the divergent interests and policies of each contrib module maintainer), and it's time consuming and (so far) somewhat unrewarding work.
If you want to build your business on an open source foundation, be prepared to do some work.
i agree (even though i'm not a buisness). i already have done lots of work. since it's open source, and i believe in open source in general, i'm spending a bunch of *additional* effort trying to get my fixes and improvements back into the main version so everyone can benefit from them. i'm just trying to make suggestions about what we as a community can do to make that process easier. i don't think that just because people *can* fork any module and maintain their own version of it means that should be the first suggestion.
You can't guarantee that community process will conform to your businesses needs, or that if they do conform for a period, that they will stay that way.
i'm not motivated by having drupal conform to "buisness needs" per se, i'm just talking about basic usefulness to the world. my point boils down to this: because drupal is so modular, every drupal site depends on at least a few contrib modules. there's a clear social policy and process for changes to core that people can at least understand and live with. there's no such policy for contrib modules. since sites depend on both core and contrib, they're usually stuck in the middle of inconsistencies regarding when/where things get fixed or improved. i think it'd be in drupal's overall interests to try to close this gap in some way. i've been trying to come up with ideas and suggestions, but it's a hard problem, and i still feel very much like an outsider in this community. i'm not slaming anyone, or complaining, i'm just trying to help make improvements based on my own experience interacting with drupal so far. thanks, -derek
Dries Buytaert wrote:
The real question is: why is upgrading _that_ important?
Good question. I ran a 3.0 install untill after 4.4 was available. It was probably very insecure, but nobody knew that. :p
The Drupal 4.6 release has been out there for almost one year now, and is likely going to be maintained for at least another one or two years. And depending on the needs, much longer than that. (In the
That would be a change in policy. Our current policy is to support the current stable release and the one before it. That would mean that 4.6 would be not supported after the release of the version after 4.7. Cheers, Gerhard
That would be a change in policy. Our current policy is to support the current stable release and the one before it. That would mean that 4.6 would be not supported after the release of the version after 4.7.
thats a result of limited resources for the security team. i suspect that 4.6 will live on for years because either someone funds the drupal.org security team or some volunteers to maintain the branch.
Op zondag 26 februari 2006 15:59, schreef Moshe Weitzman:
thats a result of limited resources for the security team. i suspect that 4.6 will live on for years because either someone funds the drupal.org security team or some volunteers to maintain the branch.
I actually suspect, taken in consideration the large changes in API betwen 6 and 7, that 4.6 will live on for a long while. Which is good, IMO. And its OSS: nothing stops people from grouping around some drupalfoursix.org. It does not need to be 'official' in order to work :) -- | Bèr Kessels | webschuur.com | website development | | Jabber & Google Talk: ber@jabber.webschuur.com | http://bler.webschuur.com | http://www.webschuur.com |
Where we often differ is in our culture of backward compatibility. From day one, I decided not to care about backward compatibility and it has been one of our core values ever since. (However, we only break your code, not your data.) Either you like that, or you don't.
Just to be clear, we did not do this for no reason. The reason for not maintaining backward compatibility is stop this as a hinderance for innovation. As painful as upgrades may be, the disregard for compatibility in core is one of the main reasons Drupal continues to develop new features, refactor existing ones, and be cutting edge, yet nimble
participants (15)
-
Benson Wong -
Bèr Kessels -
Darrel O'Pry -
Derek Wright -
Dries Buytaert -
Gerhard Killesreiter -
Greg Knaddison -
Karoly Negyesi -
Khalid B -
Kieran Lal -
Moshe Weitzman -
Nedjo Rogers -
qomo -
Robert Douglass -
Walt Daniels