CVS HEAD, code freeze, zeitgeist
Hello world, I wanted to point out that the code freeze starts less than two weeks from now. Since Drupal 4.7 was released, we added a fair number of features to the development version of Drupal. Enough features to justify making a release. It will be a very exciting release, even, with features like the installer, the foundation for custom content types and various usability improvements including improved administration pages! Thanks to the great work of many people, we hit quite a few milestones. :) Before we move on to discuss whether this release should be called 4.8 or 5.0 (let's save that discussion for _after_ the code freeze when all the work is complete!), I wanted to ask if everybody is still happy with the date of the code freeze, and the fact that we're about to transition to a new branch. We're about to freeze core development for several months as we work out the new bugs we've introduced. In addition, module authors will have to upgrade their modules to be compatible with CVS HEAD, and translators will need to update their translations. I sense that most people are ready for all this, but that at least a number of people are still catching up with the Drupal 4.7 madness. Just look at the translation status page (http://drupal.org/ translation-status), for example. Certainly, the translators are behind a little. Given more time, they would likely still be behind. Note that I'm not suggesting that we postpone the code freeze. Rather, I figured it wouldn't hurt to share our thoughts about the code freeze and all the work we have done so far. I know this could be a long discussion with a lot of different opinions but -- believe it or not -- ultimately conversations like these add value (as long we're careful enough to stay on topic). If anything, such discussions help us understand each other's goals and problems, and help us to collectively figure out the current Drupal zeitgeist. -- Dries Buytaert :: http://www.buytaert.net/
On Wed, 16 Aug 2006, Dries Buytaert wrote:
Since Drupal 4.7 was released, we added a fair number of features to the development version of Drupal. Enough features to justify making a release.
I agree that we have enough changes to justify a release, and IMHO we need to look into polishing what we introduced so far up until we are happy to release. This means usability and performance patches mostly. Some smaller or deeply worked on features will surely meet the deadline, but IMHO there is no point in pushing the deadline forward. DrupalCon (coming in a month) will probably be about new things, further development, and it should kick off another round of improvements coming for another new release. Drupal HEAD is in a pretty good shape now, is quite stable, so it is a good base to build upon it. I hope last DrupalCon's humorous comments about an uncertain release date will not come back this time :) Gabor
On 16 Aug 2006, at 23:02, Gabor Hojtsy wrote:
DrupalCon (coming in a month) will probably be about new things, further development, and it should kick off another round of improvements coming for another new release. Drupal HEAD is in a pretty good shape now, is quite stable, so it is a good base to build upon it. I hope last DrupalCon's humorous comments about an uncertain release date will not come back this time :)
Looks like no one objected to the code freeze date. Good stuff. This promises to be an exciting two weeks with lots of last minute patch reviews. ;-) -- Dries Buytaert :: http://www.buytaert.net/
Thanks for the heads up and the opportunity to discuss, Dries. There's one relatively major patch that I've been involved in -- the switch from text-based to array-based assembly of node contents for rendering. I'm very happy with it in general, but after further examination I think there must be another patch to smooth the rough edges off one aspect of it (clean and convenient rendering of sub-chunks of the content array). That's not a show stopper, but I need to get a patch out for it this weekend as more free time opens up. The other biggie that is down to the wire is the switch to 'pull' rather than 'push' workflow for FormAPI. (http://drupal.org/node/77919 for those who aren't memorizing patch nids). It's a very important change, one that removes a large number of fundamental roadblocks in the way of things like programmatic (rather than UI-driven) use of forms to save and edit data, the clean integration of multi-step wizard-style forms into core, and so on. There are some rough edges to the patch, and it does not directly implement any of the awesome 'And I want a pony" features that it paves the way for. But it is very significant and I would hate to see it not make it. The install system is in place, but there are still problems that must be resolved before it can be used ina a trouble-free fashion by end users (namely some of the requirements checking stuff, and ways to support multi-site installations without blowing away the 'clean' copy of settings.php that's necessary.) We have core completely patched and ready for jQuery integration (which is really essential for Drupal's future as a web app platform, IMO), but we probably won't get it in because of delays in jQuery 1.0's release. I mention these particular patches/issues/improvements because they all represent, to me, the current state of HEAD. Full of possibility, but also rough around the edges. There are tons of new under-the-hood capabilities, but we're not using them yet. There are lots of new subsystems, but we haven't yet ironed out all the problems that they'll face when people try to convert all of contrib over. And so on and so on. It's exciting, but a bit nerve wracking. I suppose that these things are all what gets shaken out after the code freeze, when we can focus on refining and fixing issues rather than trying to stick new features in. --Jeff
Exciting stuff! I agree that the FormAPI stuff needs to go in. -- Sammy Spets Synerger Pty Ltd http://www.synerger.com/ On 16-Aug-06 16:06, Jeff Eaton wrote:
Thanks for the heads up and the opportunity to discuss, Dries.
There's one relatively major patch that I've been involved in -- the switch from text-based to array-based assembly of node contents for rendering. I'm very happy with it in general, but after further examination I think there must be another patch to smooth the rough edges off one aspect of it (clean and convenient rendering of sub-chunks of the content array). That's not a show stopper, but I need to get a patch out for it this weekend as more free time opens up.
The other biggie that is down to the wire is the switch to 'pull' rather than 'push' workflow for FormAPI. (http://drupal.org/node/77919 for those who aren't memorizing patch nids). It's a very important change, one that removes a large number of fundamental roadblocks in the way of things like programmatic (rather than UI-driven) use of forms to save and edit data, the clean integration of multi-step wizard-style forms into core, and so on. There are some rough edges to the patch, and it does not directly implement any of the awesome 'And I want a pony" features that it paves the way for. But it is very significant and I would hate to see it not make it.
The install system is in place, but there are still problems that must be resolved before it can be used ina a trouble-free fashion by end users (namely some of the requirements checking stuff, and ways to support multi-site installations without blowing away the 'clean' copy of settings.php that's necessary.)
We have core completely patched and ready for jQuery integration (which is really essential for Drupal's future as a web app platform, IMO), but we probably won't get it in because of delays in jQuery 1.0's release.
I mention these particular patches/issues/improvements because they all represent, to me, the current state of HEAD. Full of possibility, but also rough around the edges. There are tons of new under-the-hood capabilities, but we're not using them yet. There are lots of new subsystems, but we haven't yet ironed out all the problems that they'll face when people try to convert all of contrib over. And so on and so on.
It's exciting, but a bit nerve wracking. I suppose that these things are all what gets shaken out after the code freeze, when we can focus on refining and fixing issues rather than trying to stick new features in.
--Jeff
On Wed, 2006-08-16 at 22:45 +0200, Dries Buytaert wrote:
Hello world,
I wanted to point out that the code freeze starts less than two weeks from now.
Since Drupal 4.7 was released, we added a fair number of features to the development version of Drupal. Enough features to justify making a release. It will be a very exciting release, even, with features like the installer, the foundation for custom content types and various usability improvements including improved administration pages! Thanks to the great work of many people, we hit quite a few milestones. :)
Before we move on to discuss whether this release should be called 4.8 or 5.0 (let's save that discussion for _after_ the code freeze when all the work is complete!), I wanted to ask if everybody is still happy with the date of the code freeze, and the fact that we're about to transition to a new branch. We're about to freeze core development for several months as we work out the new bugs we've introduced. In addition, module authors will have to upgrade their modules to be compatible with CVS HEAD, and translators will need to update their translations.
I sense that most people are ready for all this, but that at least a number of people are still catching up with the Drupal 4.7 madness. Just look at the translation status page (http://drupal.org/ translation-status), for example. Certainly, the translators are behind a little. Given more time, they would likely still be behind.
Note that I'm not suggesting that we postpone the code freeze. Rather, I figured it wouldn't hurt to share our thoughts about the code freeze and all the work we have done so far. I know this could be a long discussion with a lot of different opinions but -- believe it or not -- ultimately conversations like these add value (as long we're careful enough to stay on topic). If anything, such discussions help us understand each other's goals and problems, and help us to collectively figure out the current Drupal zeitgeist.
-- Dries Buytaert :: http://www.buytaert.net/
Lets adhere to the freeze date. I have some stuff I'd like to get in head, but I will live with it in contrib until another release. I'm too busy to really polish it up for head and test it properly. I think we have enough to shore up for a solid next release. I really like the ui improvement's. I'd like to see the modules admin patch make it before the freeze. I think we're looking at a solid next release already.. changes like moving the modules into their own dirs, sites/all, block visibility by role, render node->body using fapi style arrays, splitting css by module, plus the plethora ofh ui and performance patches, make me excited... I'm looking forward to the pre-release debuggin binge for DRUPAL_NEXT already.
I am all for a Sept 1 code freeze date. It's time enough to get the form pull patch and the form access patch in. Oh and maybe DB lock remover one, too. All three are ready to go. Regards NK
Hi, Op woensdag 16 augustus 2006 22:45, schreef Dries Buytaert:
I sense that most people are ready for all this, but that at least a number of people are still catching up with the Drupal 4.7 madness. Just look at the translation status page (http://drupal.org/ translation-status), for example. Certainly, the translators are behind a little. Given more time, they would likely still be behind.
We have three things: themes, modules and translations. Translations are behind. Modules are far, far behind (most of the 4.6 to 4.7 modules are still suffering from instabilities and bugs) and themes are still not very stable (if 1 sept is the date, we had a cycle where most of that cycle we had less themes available, then in the old 4.6 version). My gut feeling is that 4.6 is there to stay. So many people stayed on 4.6 because critical modules for them (flexinode is one I know of from first hand experience) never became really stable on 4.7. This whole talk leads to Dries' interesting point: Even given more time, there still will be stuff never ready for 4.7, same will be for 4.8. Two things can happen: People skip complete releases (upgrade from 4.6 to 4.8) OR people stick on a release forever: * People on 4.6 could not upgrade to 4.7 because modules or themes were never ready, they lacked resources to do it themselves. * Developers never got around fixing their modules for 4.7. * There were less people around doing cool stuff for 4.8, because they spend ages getting their modules and themes and sites to 4.7. Same for 4.7->4.8 * New modules are introduced during that 4.7 cycle to *replace* broken/not upgraded 4.6 modules, but are not ready/released (at all), nor are they compatible w. eachother (cck <-> flexinode). Leaves Drupal one simple question: Should it bother? No! Upgrading is something -I estimate- that will happen a lot less, people invest too much in a project to follow up every x months and invest big amounts again. But the growth, the new sites, will build upon new versions. If Drupal were a snake, it would get a longer tail, so to say, not all people ride on the head anymore. The good news is that that means more people using, developing testing and investing in older versions: these versions simply stay alive longer. Bad news is: less hands for new versions/head. To illustrate less hands: I maintain some modules that I will probably never upgrade to 4.7, simply because they are happy on my 4.6 site(s) and because I never got proper patches from others for an upgrade to 4.7. Let alone That I or others get them ready for 4.8. Example: I have looked at the new improvements in HEAD, and found that upgrading flexinode (properly and clean) to 4.8 is going to be a hell. It will probably never happen (properly). In the same time, CCK is still not ready for prime time, and I doubt that it will get there in the 4.8 cycle. So people looking for these CCK/flexinode alike node-builder features are still best off in 4.6. And that will be the case for a long while in 4.8 too! But all the effort in getting flexinode somehow ready for 4.7 was effort not spent in getting CCK up/out there! So I do not mean "less hands to improve core for 4.9". I mean less hands to get stuff over and ready in 4.8! In short: off course we should stay improving with the current fast pace: Lets freeze asap. And lets not bother about all the backwards compatibility, nor about people not keeping up with HEAD.. Older stable releases are good as they are now. And they fullfill all that we need for that backwards compatibility. Bèr
On Aug 17, 2006, at 2:02 PM, Bèr Kessels wrote:
The good news is that that means more people using, developing testing and investing in older versions: these versions simply stay alive longer.
yet another example of why we need separate stable and dev branches for contrib for *each* version/branch of the drupal core API. ;) http://drupal.org/node/77562 that said, i have similar concerns with a lot of what ber raised. i've got 6 modules i personally maintain and there are about 4 others i've got commit access to and help out with. a few (dba and diff) still aren't ported to 4.7. it's going to be a lot of work to port the rest to HEAD. i've got tons of functionality i want to add to these modules, but i simply don't have the time to do it all, try to keep my eye on core development and help out where i can, be the resident CVS guru, *and* port all my modules to the latest core API every 3 months... i'm honestly torn. on the one hand, it's great to have new stable releases with useful improvements frequently, so that more sites at least have *access* to the latest functionality if they want it. however, given a) the rapid pace, b) the utter disregard for backwards compatibility (which is great!), c) the therefore very real cost in developer hours to keep contrib/themes/translations up to date with the latest core, and d) our relatively limited development resources (horsepower to write/review/test all the code involved), i wonder if aiming for releases every 3-4 months is too short. drupal core is great and all, but show me a drupal site *anywhere* that doesn't use at least *something* from crontrib. ;) therefore, i know it's painful to admit, but we really do have to be concerned about not having core run off far in advance of contrib. either i can keep all 10 modules up to date with HEAD all the time, or i can make them better, but, given the other constraints on my time, i can't really do much of both. maybe the problem is that i'm trying to maintain too many things, but i don't see anyone else volunteering to take over any of these contribs. ;) also, given that CCK in core is basically crippled as it stands (no fields) and yet CCK in contrib doesn't work w/ CCK in core, and flexinode isn't going to be ported to either 4.7 or 4.8 (according to ber), i have serious concerns about freezing. dynamic content types are essential for basically every real drupal site i'm dealing with. if core isn't going to provide fields, we absolutely *must* have a plan for working fields in 4.8 contrib (and further acknowledge that core basically requires contrib to be functional 95% of the time). i don't have a concrete proposal, but, since dries is fishing for "zeitgeist", i just wanted to register my unease (not dissatisfaction). thanks, -dww
First off, I am all for a freeze on the planned date. We have enough features and there is not much in the pipe line worth waiting for (unless Adrian comes forward and says that his new themes engine 2 is ready, with all the reservations on the "too many files" issue there ...)
that said, i have similar concerns with a lot of what ber raised. i've got 6 modules i personally maintain and there are about 4 others i've got commit access to and help out with. a few (dba and diff) still aren't ported to 4.7. it's going to be a lot of work to port the rest to HEAD. i've got tons of functionality i want to add to these modules, but i simply don't have the time to do it all, try to keep my eye on core development and help out where i can, be the resident CVS guru, *and* port all my modules to the latest core API every 3 months...
Let me offer some contrarian evidence to Derek and Ber. Between me and Wafaa, we have 18 modules. All of them except one (topic module) have 4.7 versions. Five of these modules were in existence since 4.5. Two of them never had a 4.6 version (favorite nodes and image watermark, for different reasons, the latter being a recent addition, the former because I developed it for a client in the pre-4.7 cycle). Of the above, Wafaa owns one module (profile CSV), and has committed to 7 others (not sure if these were ports to 4.7 or something else). The majority of upgrades are either patches from other users of the modules, or requests from clients for a 4.7. I could not have done all that without users contributing patches, and clients paying for the time for others. Some modules were updated because I needed them for my own sites as well, so that is another factor. All my sites have been upgraded from 4.6 to 4.7 as well, except for some test and demo ones. I am not doing any 4.6 work anymore, unless a client really really needs it.
At 5:29 PM -0700 17/8/06, Derek Wright wrote:
also, given that CCK in core is basically crippled as it stands (no fields) and yet CCK in contrib doesn't work w/ CCK in core, and flexinode isn't going to be ported to either 4.7 or 4.8 (according to ber), i have serious concerns about freezing.
How about doing with CCK what was done with the Forms API... commit CCK to core, freeze all the other features and then make CCK work properly. That way the feature set for 4.8 is known and people can begin porting their contrib modules, none of which will rely on CCK (although some may benefit from it in the long term). And since CCK will take a couple of extra months to fully debug, there will be sufficient time to port modules. CCK will get a lot more eyeballs and hands if it's in core. And we'll have one more killer feature in the 4.8 release. ...R.
On Fri, 18 Aug 2006, Richard Archer wrote:
How about doing with CCK what was done with the Forms API... commit CCK to core, freeze all the other features and then make CCK work properly.
That way the feature set for 4.8 is known and people can begin porting their contrib modules, none of which will rely on CCK (although some may benefit from it in the long term).
And since CCK will take a couple of extra months to fully debug, there will be sufficient time to port modules.
It was decided that we are not going to go down on the same route again, as we have done with the FormsAPI. People need reliable release dates and solid features fast. If CCK is not going to be updated for 4.8/5.0 to get compatible with the custom content types in core, it just shows that there is no interest. In case there is voluntary or financial interest in doing a flexinode upgrade path or a CCK update and upgrade path, it will happen. I have first hand experience with some of my module creations I was reluctant to update. People came up with patches, and since I had no time to review and apply them, I handed over maintanance. Sometimes I peek into their current state (I might need them for ongoing projects), and some of them already changed to another maintainer, but as long as there is need for them, they keep getting updated. Contrib modules, translations, themes need time for sure. If we keep pushing the freeze date, most contribs, themes and translations will push their update dates further. If interface strings are not stable, why should I bother translating them? If the database structure / API is not stable, why should I bother to update my modules for that API / database structure? If it is uncertain how themes will get handled in the next Drupal version, why should I bother updating my themes? You see, putting some big change into core which makes for an uncertain freeze date and still a lot of changes onward is not helping contribs update. The fact that CCK HEAD is not yet compatible with Drupal HEAD does not mean anything for the future. If I were the CCK maintainer, I would not care updating my module either until I see the solid codebase to update to (and this is what I do with my current maintained modules and the Hungarian translation). Gabor
On Thursday 17 August 2006 19:29, Derek Wright wrote:
i don't have a concrete proposal, but, since dries is fishing for "zeitgeist", i just wanted to register my unease (not dissatisfaction).
thanks, -dww
Personally, I think this is an issue best handled by the oft-discussed but not-yet-implemented golden/recommended/endorsed/first class citizen contrib concept. 1) Drupal, to be really useful, relies on various contrib modules. 2) Not all contrib modules are really major or widely used. Those that are probably number two dozen or so (not counting those already in core). We can debate about which those are, but let's ignore that question for the moment and simply agree that some modules are more important to the general masses than others. 3) It is imperative that those "top tier" modules work with a given Drupal version for Drupal to reach its full potential in any given version. So: 4) The freeze period of a release is the time to update those "special" modules. Drupal Core doesn't actually get tagged for a new release until all (or some significant majority) of those special modules are upgraded to work with it. CCK (to use an example for argument's sake) not working with a beta release is a critical bug itself on the Drupal ecosystem and should be treated accordingly. This concept has been discussed on and off for as long as I've been around Drupaldom (which is now a year and a fraction), but if any work has been done on it I am not aware of it. "Code is gold" and all of that, but this is really as much an infrastructure issue as it is a code issue. That makes it hard for we code monkeys to really help out with it, without clear direction from the de facto powers that be. We've discussed before that Drupal has no formal roadmap, and I'm not going to challenge that process. However, trolling through the devel list and issues subscription (I'm a sucker for lots of email), one does get the impression that there is an informal feeling that a given release has one or two really key goals of "let's make this RIGHT this time!" For 4.7, it was FAPI. For whatever this version is called, it's frankly the install system. I propose that we address the "first class modules" question in the next release, and make that the informal rallying point. Not being in infrastructure person I don't know what I can offer to that effort other than kibbitzing, but I am open to suggestions. :-) There's a lot that needs to be hashed out concept-wise for that, but for Drupal's exponential growth to continue, The two-tier system we have now simply must expand and become more robust. I believe that would solve, at least to a large extent, several of Drupal's current management growing pains, including those mentioned in this thread. -- Larry Garfield AIM: LOLG42 larry@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
On 18 Aug 2006, at 09:18, Larry Garfield wrote:
Personally, I think this is an issue best handled by the oft- discussed but not-yet-implemented golden/recommended/endorsed/first class citizen contrib concept.
We're not going to have such concept. We might have ratings but nothing official. -- Dries Buytaert :: http://www.buytaert.net/
On 8/18/06, Dries Buytaert <dries.buytaert@gmail.com> wrote:
On 18 Aug 2006, at 09:18, Larry Garfield wrote:
Personally, I think this is an issue best handled by the oft- discussed but not-yet-implemented golden/recommended/endorsed/first class citizen contrib concept.
We're not going to have such concept. We might have ratings but nothing official.
I have often talked about this. But I also have NEVER meant for this to be part of the code/technical infrastructure. Want your module "golden"? * address issues in the tracker in a reasonable timeframe * be ready for the release of Drupal by the RC stage * add unit testing (simpletest) and/or black box testing (selenium) * use proper Drupal APIs (theme functions, connect with other modules, etc.) * make your module kick ass If you do all of the above, I, personally, will ship you a certificate with the name of the module and a big gold star on it. Note: may or may not be legal in some states or jurisdictions. Also, Derek's work on CVS / Project means we can do per-module revisions. My initial push for "golden" modules was in fact related to such a concept. -- Boris Mann Vancouver 778-896-2747 San Francisco 415-367-3595 Skype borismann http://www.bryght.com
On 8/19/06, Boris Mann <boris@bryght.com> wrote:
If you do all of the above, I, personally, will ship you a certificate with the name of the module and a big gold star on it. Note: may or may not be legal in some states or jurisdictions.
Also, Derek's work on CVS / Project means we can do per-module revisions. My initial push for "golden" modules was in fact related to such a concept.
IMHO, the first project that deserves the "Boris Mann Gold Star" certificate is the project module itself. Great work on this, Derek. Of course, you'll have to code the "Gold Star" system into the project module before you can get one. ;-) Cheers, Jaza.
On 18-Aug-06, at 8:32 AM, Jeremy Epstein wrote:
On 8/19/06, Boris Mann <boris@bryght.com> wrote:
If you do all of the above, I, personally, will ship you a certificate with the name of the module and a big gold star on it. Note: may or may not be legal in some states or jurisdictions.
Also, Derek's work on CVS / Project means we can do per-module revisions. My initial push for "golden" modules was in fact related to such a concept.
IMHO, the first project that deserves the "Boris Mann Gold Star" certificate is the project module itself. Great work on this, Derek.
/me leads round of applause for Derek. In the bad old days, I attempted to run project on various sites and it left me with a bad taste in my mouth. I *know* how crucial it was/ is to the Drupal community, but I was burnt out on project. Derek, you've made this into a fantastic module that is extensible and flexible and a credit to how Drupal modules should get built. Thank you.
Of course, you'll have to code the "Gold Star" system into the project module before you can get one. ;-)
First rule of the Gold Star Club: don't talk about the Gold Star Club. -- Boris
Boris Mann wrote:
On 8/18/06, *Dries Buytaert* <dries.buytaert@gmail.com
On 18 Aug 2006, at 09:18, Larry Garfield wrote: > Personally, I think this is an issue best handled by the oft- > discussed but > not-yet-implemented golden/recommended/endorsed/first class citizen > contrib > concept.
We're not going to have such concept. We might have ratings but nothing official.
Want your module "golden"? * address issues in the tracker in a reasonable timeframe * be ready for the release of Drupal by the RC stage * add unit testing (simpletest) and/or black box testing (selenium) * use proper Drupal APIs (theme functions, connect with other modules, etc.) * make your module kick ass
There is just one big fat glaring problem with this -- and why I don't understand Dries's flat refusal to consider it: I write a module. I address all issues very fast. It is ready before Drupal core reaches RC state. It has great unit testing and black box testing. It properly uses all APIs, etc. It is a totally kick ass module. In fact, so much so, that thousands of people use and depend upon it. But it is an extremely complicated module that takes a long time to understand, so as the author I continue to maintain it and upgrade it, and do so with great care and speed. More and more people use it. Then Drupal comes along, breaks half a dozen APIs as it is wont to do -- and I'm spending a year sabbatical living in the Andes and not doing any work on the module at all. You release a new verison of Drupal but without the one module most people want, because I am not around to update it. What do you do? Multiply this times the dozen or so most popular modules; lather, rinse, repeat. Now what do you do? This is the road we are currently on, unless we come up with a good solution. A golden repository is one such solution. ..chrisxj
Then Drupal comes along, breaks half a dozen APIs as it is wont to do -- and I'm spending a year sabbatical living in the Andes and not doing any work on the module at all.
If that is the case, then NO ONE should be shocked that there are problems. Get another developer to pick up the project, announce that it won't be supported anymore, give someone else commit rights... After a year away, I think the module can legitimately be considered 'abandoned.'
You release a new verison of Drupal but without the one module most people want, because I am not around to update it. What do you do?
Pay money to have it updated by someone else, or not upgrade. It's not rocket science.
Multiply this times the dozen or so most popular modules; lather, rinse, repeat.
I can think of maybe a handful of modules that are THAT complex. Views? Yes. Project? Yes. eCommerce and its suite of related modules? Absolutely. Those are all important, but declaring that we will never ship Drupal if those modules aren't released at the same time is silly. --Jeff
Jeff Eaton wrote:
Then Drupal comes along, breaks half a dozen APIs as it is wont to do -- and I'm spending a year sabbatical living in the Andes and not doing any work on the module at all.
If that is the case, then NO ONE should be shocked that there are problems. Get another developer to pick up the project, announce that it won't be supported anymore, give someone else commit rights... After a year away, I think the module can legitimately be considered 'abandoned.'
I only said a year sabbatical to make it clear that nothing was going to happen soon enough. I am not really talking about abandoned modules, just those that might not get updated "soon enough" where "soon enough" is open for interpretation.
Multiply this times the dozen or so most popular modules; lather, rinse, repeat.
I can think of maybe a handful of modules that are THAT complex. Views? Yes. Project? Yes. eCommerce and its suite of related modules? Absolutely. Those are all important, but declaring that we will never ship Drupal if those modules aren't released at the same time is silly.
I didn't suggest not shipping Drupal if those modules are not released at the same time. That's a straw horse. All I said is that the current course of action is not addressing the problem.
Chris Johnson wrote:
I only said a year sabbatical to make it clear that nothing was going to happen soon enough. I am not really talking about abandoned modules, just those that might not get updated "soon enough" where "soon enough" is open for interpretation.
A module whose maintainer is gone for a year is, IMO, effectively abandoned. It might continue working, but it's abandoned. And if a large percentage of Drupal users depend on it, that is a problem completely separate from any version upgrade woes.
I can think of maybe a handful of modules that are THAT complex. Views? Yes. Project? Yes. eCommerce and its suite of related modules? Absolutely. Those are all important, but declaring that we will never ship Drupal if those modules aren't released at the same time is silly. I didn't suggest not shipping Drupal if those modules are not released at the same time. That's a straw horse. All I said is that the current course of action is not addressing the problem. OK, that suggestion was an integral part of the previous 'Golden Repository' suggestions from past discussions, so I thought it was what you were talking about. I just think that setting up a special qualification for a specific set of popular modules is going to help the situation any. If something is that critical and popular, it doesn't take putting a gold star on the node to know that it is important, you know? And if telling people, "Hey, this is really important!" is the only thing that the designation accomplishes, we're back in square one.
During the 4.7 freeze/beta/RC cycle, Dries sent out a list of critical modules that were 'must haves' for the 4.7 release, and encouraged developers to focus on them. Barring some sort of official 'we won't ship without X ready' policy, I don't see what more would be accomplished by naming that list. I'm not saying that the problem of critical and complex modules lagging behind the Core development cycle doesn't exist. Just that maintaining a special list isn't going to help the problem. --Jeff
On Fri, 18 Aug 2006, Chris Johnson wrote:
Now what do you do? This is the road we are currently on, unless we come up with a good solution. A golden repository is one such solution.
How would any golden repository fix human resources problems? If active people are around a project they will eventually update it, regardless of the maintainer being around or not. If a module is in active use, people will find creative ways to utilize it, and wil delve into the code anyaway. They will get to know the inner workings and if they depend on the module, will do the update. Gabor
Gabor Hojtsy wrote:
On Fri, 18 Aug 2006, Chris Johnson wrote:
Now what do you do? This is the road we are currently on, unless we come up with a good solution. A golden repository is one such solution.
How would any golden repository fix human resources problems?
I believe the supposition for the golden repository is that core developers would always make sure those modules got updated for a release, either by doing the work themselves or ensuring someone else did. That doesn't fix the human resources problem of "too little manpower for the amount of work needing doing" but it does raise some visibility and perhaps encourage a bit more effort on getting a release ready rather than leaping off to the next cool new feature to add to the following release. But that's only my understanding of the golden repository suggestion. It's not my suggestion.
I believe the supposition for the golden repository is that core developers would always make sure those modules got updated for a release, either by doing the work themselves or ensuring someone else did.
It will be difficult to get core maintainers to care about contributed modules, I think. To me it seems that if a module is *that* widely used, it will (or should) eventually be committed to core in some form anyway. Then the core maintainers will have motivation to help maintain it, assuming it remains useful. That is better than any golden star, imo. Farsheed __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Chris If your module is successful and widely used, then people who care will submit patches for you, test them, ...etc. Hence, you act as gatekeeper/architect, rather than all that plus coder. This has worked for my modules: this is the crux of open source, people using the stuff and fixing bugs and adding features. If you are on sabbatical, then you should designate someone else to take over while you are away.
On 18 Aug 2006, at 22:50, Chris Johnson wrote:
In fact, so much so, that thousands of people use and depend upon it.
But it is an extremely complicated module that takes a long time to understand, so as the author I continue to maintain it and upgrade it, and do so with great care and speed. More and more people use it.
Blessing your module with a "golden star" is not going to magically cultivate the wilderness. If you are the single maintainer, and you happen to be a bottleneck (because you're having a sabbatical in the Andes or simply because you have too much work), a golden star is not going to magically upgrade your module nor is it going to send hordes of developers to your patch queue. No, that would be a crack dream. :) What you need (and what you really want) is people that know your module inside out (!), that share your vision for the module (!), and that can help you maintain it (!). If your module is that important, it is your responsibility to build such team, to get people on board and to delegate responsibilities by making other people co- maintainers. If you want to be a responsible maintainer, it's part of the job description to find, motivate, guide and empower people to take on a role within your project and to make it sustain. I know because I learned to do exactly that. -- Dries Buytaert :: http://www.buytaert.net/
Dries Buytaert wrote:
No, that would be a crack dream. :)
What you need (and what you really want) is people that know your module inside out (!), that share your vision for the module (!), and that can help you maintain it (!). If your module is that important, it is your responsibility to build such team, to get people on board and to delegate responsibilities by making other people co-maintainers. If you want to be a responsible maintainer, it's part of the job description to find, motivate, guide and empower people to take on a role within your project and to make it sustain.
I think this is the crux of our difference in opinion, Dries. While it would be great and noble for me to build such a team out of desire to make my module successful and sustained, I might not do that for any number of reasons (e.g. lack of time, lack of diplomatic skills, lack of English language skills, people just think I'm ugly, whatever). The point then is that despite my "neglect" my module has become important and now there is nobody to maintain it. The "golden star" is the mark that points out to core and active developers contemplating a release that this is a module that needs special attention. Or so I understood the proposal from way back when. *My* proposal is that the issue get visibility and some sort of mechanism to help make sure temporarily-orphaned but critical modules don't get left behind. There are likely other methods than the golden repo idea. It just seemed that the door to any discussion was being closed. I think I've said enough on the subject. :-)
On 19 Aug 2006, at 00:28, Chris Johnson wrote:
I think this is the crux of our difference in opinion, Dries. While it would be great and noble for me to build such a team out of desire to make my module successful and sustained, I might not do that for any number of reasons (e.g. lack of time, lack of diplomatic skills, lack of English language skills, people just think I'm ugly, whatever). The point then is that despite my "neglect" my module has become important and now there is nobody to maintain it.
If you created a module that thousands of people depend on, you created a successful Open Source project. By now, I think we all agree that the community has a desire for successful projects to sustain. It think we also agree on the fact that a successful project should not depend on a single person, especially if that person is a really busy person. :) Now, my opinion is that _you_, the maintainer of the project, should create a team around your successful project in order to grow and maintain it. Your opinion is that _we_, the community, should start caring about your successful project and that we call the squad team when you can't handle the work. In my eyes, your opinion, is flawed. If you "force" people (volunteers) to do something, they'll burn out or they'll go away. Open Source development is all about having fun. It is very hard for us to make people passionate about your project. It takes a lot more time and energy than blessing it with a golden star. And unless developers are passionate about it, they are not going to have fun working on it. If a successful project has problems, the maintainer can send an e- mail to the mailing list asking for help, ask for help raising funds, write about it in a forum topic, give a presentation about it, or what not. It all creates visibility, and people will start to care. Take the project.module, for example. It's an important module, but only few people cared about it. There was frustration, but no passion. We publicly blessed it with a doze gold stars but at the end of the day, not many people cared about it. So in the past, CivicSpace threw money at the project module to make it sustain. Money can fix short term problems quickly, but doesn't offer long time guarantees. What Derek is doing with the project.module nowadays, is much more rewarking and much more sustainable. He cares about the module, he improves it, and he writes about it. By doing so, he is spreading the passion and slowly creating a team around it. It takes him a lot of time and energy, but for god's sake, he converted Boris from a 'hater' into a 'believer'. ;-)
It just seemed that the door to any discussion was being closed.
No, we can discuss this. :) -- Dries Buytaert :: http://www.buytaert.net/
Op zaterdag 19 augustus 2006 10:42, schreef Dries Buytaert:
If a successful project has problems, the maintainer can send an e- mail to the mailing list asking for help, ask for help raising funds, write about it in a forum topic, give a presentation about it, or what not. It all creates visibility, and people will start to care.
I did that for flexinode a couple of times and received NULL. Is it me, or my behaviour that keeps away people? Probably. Is it my lack of LOADS of time to review all patches? even more probably. Is it the fact the module is not popular, that people don't use it? Unlikely. Look. 4.7.3 changed something minor in the form api. So we have a critical bug in flexinode which pretty much prevents everyone running flexinode from upgrading to 4.7.3 (from 4.7.2). It is not this particular case that I want addressed. It is a problem with contribs in general. Golden stars are -indeed- not going to magically bring me coding ninjas. But Golden repository DOES bring us: * A status. It says "this module is good, solid and tested. As opposed to the anarchistic cr*p you will find in the contribs". AKA: Quality control [1] * A workflow. Drupal is aware that modules with such a status are important to Drupal as a whole. I dare to bet (for a Duvel) that there are at least five contribs that are more important for Drupal (very broad) then some core modules. Drupal ackonowledges this importance. Drupal will not slow down its improvements, but it will (re)move not-ready stuff from that golden system. That way we have a way to say: 4.8 is out, but beware, in 4.8 you can no longer do Foo and Bar, because there is no FooBar in the supported repository section. * Drupal IS NOT Core. Drupal is much more. I dare to bet (for a Duvel) that if we drop the modular approach, and no longer support contributions, drupal is gone within months. Drupal IS Core + whatever contrib modules you can get to work. As long as half of these modules promise more then they do, or are simply cr*p, or plain broken, we (Drupal) have failed. This means Drupal is "a solid, modular, well written, free CMS that may need really crappy additions to do what you want it to do". * Security. Abovementioned flexinode case makes me beleive that all people who use Drupal 4.7.x and flexinode, have not upgraded to 4.7.3. On larger scale: Many people will stay on 4.6 because stuff was not ready. If we can somehow guarantee, as a community that at least a part of the modules, those marked as such, will be upgraded, people can follow up. This may be a security issue for Drupal in a bigger sense, after all: If we provide security updates that people cannot follow we can just as well don't provide them at all. You can call it (a module) golden or you call it anything else. Fact is, that the unordered, uncontrolled pile of code may contain gems. Biut as soon as you dive into it, you get dirty. And if the first thing you run into is a broken, dirty thing, you will probably never get back. (i've had a long talk with someone yesterday who halfway his project moves back to Joomla, because some of the contribs he needs are plain broken, utter crap, or work as expected (note that he mentioned many contribs as being Very Very Good too!!) If a developer looks at Drupal, does his homework, and finds that he needs flexinode, but gets errors instead of a working system, we (Drupal) have lost. Big Time. No clean-lean-nicely architectured core will reverse that. But if he did his homework, found that flexinode may or may not solve hiss issue, AND sees that flexinode is NOT marked as special-supported (or golden, whatever) and /then/ gets to see errors, we have still won. Because we (Drupal) have said to him: Core is what Drupal is, Golden contribs is what we advice, the pile of code out there is a scrapyard where you may find just what you need, but don't count on it. But never count on it. Example: If we have no e-commerce system marked as golden. We can all safely say to the outside world: NO, sorry! Drupal has no ecommerce support! But if it /is/ marked-special-golden we can tell the world that we /do/ have ecommerce support. Anything else is misleading. And in some contries even illegal (but more about that later). And also that Drupal cares about e-commerce support. So, if those that already got dirty dozens of times, filter out the gems from that pile, and order them on a shelve, we can present the world a nice display on a shelve of good-working, solid, projects. Instead of a junkyard-mixed-with-a-jewelery. Bèr [1] http://webschuur.com/node/640
On 19 Aug 2006, at 14:08, Bèr Kessels wrote:
Op zaterdag 19 augustus 2006 10:42, schreef Dries Buytaert:
If a successful project has problems, the maintainer can send an e- mail to the mailing list asking for help, ask for help raising funds, write about it in a forum topic, give a presentation about it, or what not. It all creates visibility, and people will start to care.
I did that for flexinode a couple of times and received NULL. Is it me, or my behaviour that keeps away people? Probably. Is it my lack of LOADS of time to review all patches? even more probably. Is it the fact the module is not popular, that people don't use it? Unlikely.
Well, I don't remember those e-mails but it probably means you did something wrong. For example, just sending a couple of factual e- mails clearly isn't enough. Neither is begging for help. You have to transfer the passion, make them feel connected, and literally suck them in. Don't beg for help, but help them help you. (Yes, _you_ have to help _them_ (help you) -- and not the other way around.)
* A workflow. Drupal is aware that modules with such a status are important to Drupal as a whole. I dare to bet (for a Duvel) that there are at least five contribs that are more important for Drupal (very broad) then some core modules. Drupal ackonowledges this importance.
We all know what is important, and what is not. We don't need golden stars to figure out that flexinode, cck, views, e-commmerce and image are important. There is common sense amongst developers.
* Security. Abovementioned flexinode case makes me beleive that all people who use Drupal 4.7.x and flexinode, have not upgraded to 4.7.3.
I don't know what the problem is with flexinode or why it can't be upgraded. If this is due to a critical bug in core, please point us to the issue in the patch queue. Hopefully, it is marked critical. I haven't seen an e-mail about it on security@drupal.org either.
But if he did his homework, found that flexinode may or may not solve hiss issue, AND sees that flexinode is NOT marked as special-supported (or golden, whatever) and /then/ gets to see errors, we have still won. Because we (Drupal) have said to him: Core is what Drupal is, Golden contribs is what we advice, the pile of code out there is a scrapyard where you may find just what you need, but don't count on it. But never count on it.
I'm all for adding ratings, showing information about the project's health, etc. Hence my previous e-mail with the mock-up. I think such information should be auto-generated based on various metrics: - Number of contributors - Patch queue activity - Security history - Download statistiscs - Usage statistics - Number of commits - ... -- Dries Buytaert :: http://www.buytaert.net/
Hello, Op zaterdag 19 augustus 2006 16:13, schreef Dries Buytaert:
We all know what is important, and what is not. We don't need golden stars to figure out that flexinode, cck, views, e-commmerce and image are important. There is common sense amongst developers
But we must also acknoledge that we know this because we can sense a "buzz" around a project. Someone who looks "For a CMS that allows blogging and an image gallery" does not sense that, and wll probably need to go trough the whole range of "shazamgallery (not-user-safe)", "gallery2 (glues gallery2 to Drupal)", "img assist (not for image galleries)", "acidfree (for a very specific task, not very flexible)" and the rest to find out what he /realy/ needs, "image module". If we can show such a person that "image" is the one to go for right away, that would be great. But right now, getting that knowledge requires a lot of effort for people new to Drupal.
I'm all for adding ratings, showing information about the project's health, etc. Hence my previous e-mail with the mock-up. I think such information should be auto-generated based on various metrics:
- Number of contributors - Patch queue activity - Security history - Download statistiscs - Usage statistics - Number of commits - ...
Yes. As soon as I read that mail, (it arrived here just after I mailed out my mail) I concluded that /I/ misunderstood the issue completely wrong. Sorry. When you stated that you didn't want a golden repos, I (and maybe others too) read that as: No we don't want a quality system. Hence my plead for such a quality system. I was also surprised, because (as you can read in the blog post I linked to earlier) I thought that work for such quality measurement was under way already. I was rather surprised because I thought you changed your mind :). As I tried to point out in my mail, it doesn't matter at all what we call it, nor how it looks. As long as we really /do/ have a way to see the "health" (great term!) of a project, most, if not all the issues people raised for golden repos are solved! And if we add an order-by you can list modules by healt, which is essentially equeal to what i (and I think most people) meant with a golden repos. so everyone is happy in the end :) Bèr
On Sat, 19 Aug 2006, [iso-8859-1] Bèr Kessels wrote:
around a project. Someone who looks "For a CMS that allows blogging and an image gallery" does not sense that, and wll probably need to go trough the whole range of "shazamgallery (not-user-safe)", "gallery2 (glues gallery2 to Drupal)", "img assist (not for image galleries)", "acidfree (for a very specific task, not very flexible)" and the rest to find out what he /realy/ needs, "image module". If we can show such a person that "image" is the one to go for right away, that would be great. But right now, getting that knowledge requires a lot of effort for people new to Drupal.
The broad range of "image gallery" type modules show that "image gallery" means different things to different people. The fact that *you* have found image.module to work for your need best does mean that it is the golden one? What if you have slightly different needs? Golden or not golden is a binary thing. If something is golden, it does not mean it fulfills my needs. Quality is just one factor, and we should certainly not treat it as binary. Gabor
On 19 Aug 2006, at 17:42, Bèr Kessels wrote:
Op zaterdag 19 augustus 2006 16:13, schreef Dries Buytaert:
We all know what is important, and what is not. We don't need golden stars to figure out that flexinode, cck, views, e-commmerce and image are important. There is common sense amongst developers
But we must also acknoledge that we know this because we can sense a "buzz" around a project. Someone who looks "For a CMS that allows blogging and an image gallery" does not sense that, and wll probably need to go trough the whole range of "shazamgallery (not-user-safe)", "gallery2 (glues gallery2 to Drupal)", "img assist (not for image galleries)", "acidfree (for a very specific task, not very flexible)" and the rest to find out what he /realy/ needs, "image module". If we can show such a person that "image" is the one to go for right away, that would be great. But right now, getting that knowledge requires a lot of effort for people new to Drupal.
We're mixing two (related) things here: 1. Making it easier for users to get insights about a project's health. 2. The need for resources to update important modules -- i.e. to guarantee certain project's health. I think we can fix (1) by adding additional rating metrics and by improving the UI of the project module. However, the original discussion was about (2), which has everything to do with developers, and very little to do with users. -- Dries Buytaert :: http://www.buytaert.net/
On Aug 19, 2006, at 5:08 AM, Bèr Kessels wrote:
Golden stars are -indeed- not going to magically bring me coding ninjas.
here, here. my original post in this thread wasn't directed at golden contrib at all. i think these are basically orthogonal discussions (though there's a tiny-winy bit of overlap)... golden contrib is good for quality control, help sorting through the very large and highly mixed project download listings, etc. basically, most of the stuff ber is talking about. i see it as something to help site admins choose what modules to build their sites on top of, not as something to help our internal development workflow. of course, a gold star isn't the only thing that would help. browsing by download stats (http://drupal.org/node/66013), a project rating/review system (http://drupal.org/node/77976), exposing the kind of end-user-readable data about issue + code activity dries is talking about, etc, etc, can all help with this problem. one possible solution to my original concern about core running too fast for contrib to keep up was the proposal for a longer *freeze* period. i see a few pros to this approach: 1) more time for contrib to catch up. ;) 2) more time to work on hardening, testing, bug fixing for core itself 3) more time to work on documentation 4) more time to work on usability enhancements (so long as they're not major and don't change the API) the downside, of course, is that it would delay the next furious round of changes. however, that might just be a good thing. ;) 2 major releases a year instead of 3 isn't anything to be ashamed of. and, if the extra time means that the folks working on new core API changes have more time to design, get feedback, do initial implementations, etc, etc, it's probably going to speed up the rate at which the patches make it in, since they'll be better patches with more sane APIs in the first place. ;) but, whether or not we have more time to do the work, we still have the human resources problem. i think dries is right about what brings you "coding ninjas" -- people using the stuff, relying on it, and effort spent developing a team. that said, sometimes a "team" (or elements of it) do just fall out of the sky. for example, justin randell (cck in IRC) decided, simply because he wants to, that he's going to help adopt the project issue queue and work on patches. we've discussed some stuff via IRC and email, and i'm about to commit a set of patches from him that will end up resolving about 5 critical bugs. i suppose dries would say the only reason justin decided to do this is b/c i've been so active and vocal in working on project, developing a team, etc, but from my perspective, i did no work at all to get his help -- he just came out of no where as a blessing in my time of need. ;) only justin could really answer for sure, but i certainly didn't spend any effort trying to recruit him for the task... On Aug 18, 2006, at 9:55 AM, Boris Mann wrote:
On 18-Aug-06, at 8:32 AM, Jeremy Epstein wrote:
IMHO, the first project that deserves the "Boris Mann Gold Star" certificate is the project module itself. Great work on this, Derek.
/me leads round of applause for Derek.
/me blushes. thanks for all the love, everyone. ;) of course, i'm only able to do what i'm doing because i'm "standing on the shoulders of giants" -- dries, kjartan, killes, nedjo, and everyone else who wrote, maintained, and kept project.module afloat (not to mention drupal itself(!)), long before i "dropped out of the sky in the time of need". ;) cheers, -dww
Derek Wright wrote:
On Aug 19, 2006, at 5:08 AM, Bèr Kessels wrote:
Golden stars are -indeed- not going to magically bring me coding ninjas.
one possible solution to my original concern about core running too fast for contrib to keep up was the proposal for a longer *freeze* period. i see a few pros to this approach:
1) more time for contrib to catch up. ;)
There seems to be an assumption that people would update modules given enough time. IMHO (and if I am allowed to take myself as a reference) that's not true. I update my modules when /I/ need them to be be updated or if somebody else sends a patch (which typically means that the patch sender needed that module). Also, this usually happens _after_ the release of the new Drupal version because before core is released I have no reason to update the modules as most of my clients would not want me to install beta versions. On occassion I develop a new site with the upcoming release in mind and then I might update modules early. I don't think that this approach is wrong or has to change, btw. Actually, I am angry about myself that I accepted some patches to event.module to keep it cvs compatible. This delays the back-merging of fixes into the stable branch since I need to remove these changes from the diff.
2) more time to work on hardening, testing, bug fixing for core itself 3) more time to work on documentation 4) more time to work on usability enhancements (so long as they're not major and don't change the API)
the downside, of course, is that it would delay the next furious round of changes. however, that might just be a good thing. ;) 2 major releases a year instead of 3 isn't anything to be ashamed of.
I don't see doing us more than 2 releases a year anyway. The catch-up period for 4.7 was long enough and still many module weren't updated before the release. This is just how it works and nothing will change this. Cheers, Gerhard
Although I'm new to the group, I'm not new to programming (since 86), and I'm not new to open source (since 95). I'm just jumping off the drupal cliff (adopting it as my primary development environment for a college), so although I haven't earned a strong voice, I'm really vested in the outcome of the discussion. I thought a fresh perspective/recap might be helpful here. Agile deveopment/project management techniques are also a passion of mine. Here's some questions that the group seems to be trying to answer: 1. Would the success of drupal be improved by a module rating system to inform administrators of the stability level? On this everyone agrees. The golden repository or golden * has been proposed a solution for this too. I think this could dovetail well with the automated comment proposal too. This sounds like a feature request for the project module to me. I think it could be a really great tool for many open source developers. I'd suggest we might consider measuring: * average bug report to patch duration * number of bugs that convert to patches in released code. (that's a bad thing, yes?) * How quickly did the module release after core? * Maybe % of features requests converted to applied patches * number of downloads. * an ability for the project owner to override and say, "my module ain't golden". I don't agree with measuring the size of the community, as that doesn't always equate to stability, or value. It actually seems to discount elegent, simple, effective solutions. 2. Should the status of contributed modules that should hold up the release of Drupal? I haven't heard anyone actually suggest that the status of any one contrib module should hold up release. But some argue the need to have a formal mechanism to identify critical mass. I've been hearing a lot about the project module and flexinode as examples of examples of some such modules. Some are for, some are againts. I think we shouldn't do this. If such modules exist, perhaps they should be in core. It sounds like a flexinode replacement is being slowly rolled into core. It's not featured enough yet to be a complete replacement, I think everyone agreed on that. I often wonder why the project module hasn't been. It's one of the few modules that we actually as a community can't do with out, not because of how much its used, but because its used to maintain drupal. If we ever got more than two versions behind on this would we shut down the drupal.org site :). My point in bringing this up is that project isn't really a good case study for this discussion. It's too important, so the question about what would happen if we released with out it can't be taken seriously. (Oh we could do it once, but then even drupal.org couldn't upgrade) Could anyone think of modules for which there are not core replacements in progress, but that we'd want to consider holding off a release for? Sounds like Dries sent a suggested list once. 3. If so how would we decide which modules would be used as the benchmark. Golden repository has been proposed as a solution here. Some are concerned that it might slow core development or discourage module development. It could work, if we decided to do it. I have a feeling that unless we could automate the process of deciding which modules were "gold starred", that it would be work that takes away from improving drupal. So I'm not real hot on this. The less process the better. Its the "agile" way :). 4. If not how can we make sure that the contrib modules don't fall too far behind? Ideas I've heard are longer freeze periods, and better outreach to people want to contribute. I think the freeze period length increase is a strong idea to helping this speed issue. I also think there could be some improvements in how contributers get recruited.
Op zaterdag 19 augustus 2006 21:13, schreef Metzler, David:
Although I'm new to the group, I'm not new to programming (since 86), and I'm not new to open source (since 95). I'm just jumping off the drupal cliff (adopting it as my primary development environment for a college), so although I haven't earned a strong voice,
I am sure after this mail that has changed :) Welcome!
open source developers. I'd suggest we might consider measuring:
* average bug report to patch duration * number of bugs that convert to patches in released code. (that's a bad thing, yes?) * How quickly did the module release after core? * Maybe % of features requests converted to applied patches * number of downloads. * an ability for the project owner to override and say, "my module ain't golden".
Good points!
I don't agree with measuring the size of the community, as that doesn't always equate to stability, or value. It actually seems to discount elegent, simple, effective solutions.
Also very true. This is my main reason to vote for goldstarred: They would be starred by real people, but based on facts other then simply its popularity. Popularity/downloads say something about a project's ability to a) fill a gap/niche. b) market itself. It tells us nothing about quality. If this was not the case, then Windows would not have its monopoly ;)
I haven't heard anyone actually suggest that the status of any one contrib module should hold up release. But some argue the need to have a formal mechanism to identify critical mass. I've been hearing a lot about the project module and flexinode as examples of examples of some such modules. Some are for, some are againts.
I am sorry about making people think this. I think flexinode is far, far from a module that should hold up any freezes. I used flexinode as an example, because: a) It had a completely horrible transition to 4.7. I took over management because it went unmaintained for a period in which people tagged it 4.7 (the whole system, including files that were not touched since before 4.5), added hacked in, people added features that introduced critical bugs etc. But no-one was co-ordinating and working towards a solid 4.7 release. b) It has been between one of our most popular modules (in download stats). JonBob has told numerous times he never really expected this, and that he really did not design the module for such wide use. Its current quality is low, yet it fills a gap, and somehow marketed itself well. People want it, use it, regardless of its current state. I really hope that I will manage a smoother transition to 4.8 for flexinode :)
I have a feeling that unless we could automate the process of deciding which modules were "gold starred", that it would be work that takes away from improving drupal. So I'm not real hot on this. The less process the better. Its the "agile" way :).
I think that is the main reason why Dries's proposal for more visible stats are what most people seem to like.
4. If not how can we make sure that the contrib modules don't fall too far behind? Ideas I've heard are longer freeze periods, and better outreach to people want to contribute.
A lot of people bring forward the idea that "a popular module will attract improvement anyway". This may, or may not be true. But I haven't seen proof for any of these.
I think the freeze period length increase is a strong idea to helping this speed issue. I also think there could be some improvements in how contributers get recruited.
Is there anyone with stats, or who remembers when people started to upgrade in the last freeze? I have a strong feeling most upgrades started only weeks after the actual release. A longer freeze might then only delay the moment people start upgrading. Bèr
On Saturday 19 August 2006 16:17, Bèr Kessels wrote:
* average bug report to patch duration * number of bugs that convert to patches in released code. (that's a bad thing, yes?) * How quickly did the module release after core? * Maybe % of features requests converted to applied patches * number of downloads. * an ability for the project owner to override and say, "my module ain't golden".
Good points!
I don't agree with measuring the size of the community, as that doesn't always equate to stability, or value. It actually seems to discount elegent, simple, effective solutions.
Also very true. This is my main reason to vote for goldstarred: They would be starred by real people, but based on facts other then simply its popularity.
Popularity/downloads say something about a project's ability to a) fill a gap/niche. b) market itself. It tells us nothing about quality. If this was not the case, then Windows would not have its monopoly ;)
I haven't heard anyone actually suggest that the status of any one contrib module should hold up release. But some argue the need to have a formal mechanism to identify critical mass. I've been hearing a lot about the project module and flexinode as examples of examples of some such modules. Some are for, some are againts.
I am sorry about making people think this. I think flexinode is far, far from a module that should hold up any freezes. I used flexinode as an example, because: a) It had a completely horrible transition to 4.7. I took over management because it went unmaintained for a period in which people tagged it 4.7 (the whole system, including files that were not touched since before 4.5), added hacked in, people added features that introduced critical bugs etc. But no-one was co-ordinating and working towards a solid 4.7 release. b) It has been between one of our most popular modules (in download stats). JonBob has told numerous times he never really expected this, and that he really did not design the module for such wide use. Its current quality is low, yet it fills a gap, and somehow marketed itself well. People want it, use it, regardless of its current state.
I really hope that I will manage a smoother transition to 4.8 for flexinode :)
I have a feeling that unless we could automate the process of deciding which modules were "gold starred", that it would be work that takes away from improving drupal. So I'm not real hot on this. The less process the better. Its the "agile" way :).
I think that is the main reason why Dries's proposal for more visible stats are what most people seem to like.
4. If not how can we make sure that the contrib modules don't fall too far behind? Ideas I've heard are longer freeze periods, and better outreach to people want to contribute.
A lot of people bring forward the idea that "a popular module will attract improvement anyway". This may, or may not be true. But I haven't seen proof for any of these.
I think the freeze period length increase is a strong idea to helping this speed issue. I also think there could be some improvements in how contributers get recruited.
Is there anyone with stats, or who remembers when people started to upgrade in the last freeze? I have a strong feeling most upgrades started only weeks after the actual release. A longer freeze might then only delay the moment people start upgrading.
Bèr
Right then, I'm going to jump back into this can of worms I reopened... First, to clarify (as it seemed there was a bit of confusion earlier on), I was talking about flagging modules, not developers. Although I do recall Chad and I once spending a few hours toying with the idea of a goldstar module of sorts as a gag, like a year ago. :-) I think Ber's picking up on the underlying message I'm trying to get at here. Drupal without contrib is an incomplete blogging system. Core itself has an emphasis on a WordPress++/phpBB type site, but even then is missing a few features. Any of the really interesting things that separate Drupal from those sorts of apps requires using contrib. The Drupal Ecosystem includes large swaths of contrib. I do not believe that placing, say, ecommerce in the same swath as NodeReview (an example I use because it's my own module, so I know it's not a major one nor can I offend anyone else <g>) does Drupal users, developers, or support people any favors. Dries points out that there are two issues involved here: Directing users toward modules that are worth their time and directing developers toward modules that need TLC. He's right, but I believe those lists overlap dramatically. How we determine which modules are "Special", both for users and developers, is open for debate. I don't think that either a "Dries orders by fiat" or "Whatever gets most votes/downloads/closed issues in the project module" method will be adequate. But whatever the method, we need some way to clearly break down contrib and separate the wheat from the chafe, so to speak. -- Larry Garfield AIM: LOLG42 larry@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
On Aug 19, 2006, at 12:13 PM, Metzler, David wrote:
I often wonder why the project module hasn't been [moved into core].
all sorts of reasons: 1) only a tiny % of all drupal sites in the world need a full-blown issue tracking and release management system. if it's in core, *everyone* gets all that code, even if they don't want any of it. 2) up until very recently, project was written almost entirely with drupal.org in mind. since i've taken over, i've put a big emphasis on making it useful to other sites (since i need it for sites i'm building for my day job at a university computer science department). however, this is definitely a work in progress -- there's still a *lot* of work to do to make it really useful in other environments. 3) nothing against the workflow for how patches get into core, but frankly, the pace of development required to fix bugs, add new functionality, and make project useful for other sites is *way* too fast . unless dries & co. wanted to make me a core committer (a responsibility i don't want), i don't see how i could do what i need to do to make this module better. 4) it's frankly huge, and still has a lot of crufty, dark corners that need lots more lovin'. putting that steamy pile of poo into core would be a disservice to the rest of core (well, except maybe the poll.module), and an embarrassment for our otherwise beautiful code. ;) reasons #5 through #10 are left as an exercise for the interested reader... -derek
On Aug 19, 2006, at 8:06 AM, Gerhard Killesreiter wrote:
Actually, I am angry about myself that I accepted some patches to event.module to keep it cvs compatible. This delays the back- merging of fixes into the stable branch since I need to remove these changes from the diff.
i agree. i feel the same way about project.module. :( devel.module is one thing -- i think that's so helpful for folks working on HEAD that it's a good idea to keep it updated with the latest. otherwise, i don't think any modules should start being ported until the code freeze. i've definitely learned this the hard way in this development cycle, and i'll remember it for the future. we should probably document this on the "updating your modules" handbook pages as a best practice, with a short explanation about why it's a bad idea to start porting to HEAD while it's still a moving target. -derek
we should probably document this on the
"updating your modules" handbook pages as a best practice, with a short explanation about why it's a bad idea to start porting to HEAD while it's still a moving target.
thats a personal preference. there is no benefit to us encouraging or discouraging module developers from working with HEAD. the more people work with HEAD the more polished it is when code freeze arrives. it is fine to educate module developers, but i would not use the term 'best practice'.
Spent the last days thinking about this some more (couldn't help it) and summarized my thoughts at: http://buytaert.net/responsible-maintainers -- Dries Buytaert :: http://www.buytaert.net/
Inspired by Dries' essay on maintaining Drupal modules and cultivating the Drupal ecosystem, I've decided that the time to seek a co-maintainer for VotingAPI is right. It's been around for almost a year now, and a healthy group of modules now depend on it -- to the point that keeping it updated and fixing bugs has a nontrivial 'ripple effect' to other dependent projects. For those who don't know, VotingAPI is a centralized system for storing, calculating, and caching vote/rating data. It's designed to be used by multiple modules simultaneously, and to take the pain out of implementing a focused or customized rating solution on your web site. Modules like nmoderation, vote-up-down, loves-and-hates, and user review all use it. Quite a bit of work has gone into tying it to actions.module, for use in workflows, though a clean UI for managing that process hasn't yet been written. Since I wrote VotingAPI I've gotten involved in a number of other projects. I still work on it, but I realize that I am now a single point of failure for close to a dozen other rating projects. That won't work. If there are any other folks interested in working alongside, either in a 'pure maintenance' role testing and applying bug fixes, or in a 'co-developer' role, working on implementing new functionality, drop me a line. Let's talk. :-) --Jeff
On Aug 19, 2006, at 8:06 AM, Gerhard Killesreiter wrote:
I don't see doing us more than 2 releases a year anyway. The catch- up period for 4.7 was long enough and still many module weren't updated before the release. This is just how it works and nothing will change this.
yeah, you're probably right. as i said in my *original* message, i'm not dissatisfied with the status quo, i'm just a little uneasy. core running too fast for (most of) contrib to catch up seems like a lingering problem, but it's not clear what, if anything, we can do to address it. either people are using/depending on the modules, and they either update them themselves, or pay someone else to do it, or the module isn't really that useful and it will eventually become abandoned. we should continue to cultivate more drupal developers in whatever ways we can (recruit your development-savvy friends, folks!) but that's a *completely* separate discussion from core development schedules, "golden contrib", etc. once we're able to tag real releases of contribs with the version of core they work with (which will be explicit in their version numbers, in fact) and stop the madness of calling "cvs" a version of anything, a lot of the confusion and woes will go away. this won't add any more development resources, and it won't automatically make more of contrib updated in a timely manner, but at least crap will be less confusing for everyone involved. ;) modules that people care about *will* be updated eventually, and no one has to upgrade to the latest core just because it's out. especially once contrib authors can maintain stable + dev branches of their modules against each version of the core API, it will be less painful for the entire drupal community to live with the fact that there will be a spread of core versions out there, not every site will upgrade right away (if ever), and yet new features can still be added to contribs that are compatible with older versions of core. dries will probably dislike this, since he'll argue this will just encourage folks to use older versions of core and therefore work on the latest release will slow down (at least, that's what he used to think -- i believe i've at least partially changed his perspective on this). but i think that's backwards. drupal's refusal to remain backwards compatible (which again, i think is great) is what encourages people to remain at older versions of core, not the continued availability of various contribs. people not wanting or being able to upgrade is a fact. we can either accept that and provide ways for people to cope, or not. the "Drupal Version-Module Support Matrix" (http://drupal.org/node/ 63491) will be very handy in all of this. it'll be a way to quickly visualize what modules are in what degree of preparedness for each version of drupal core. if core keeps moving fast, and contrib keeps struggling to keep up, then at least people will be able to easily see what subset of the "drupal ecosystem" exists in each version. in spite of the fact that it seems like nothing's going to change wrt the core development cycle as a result of this thread, i still think the discussion has helped clarify some things. ;) the tangential discussion about "project health" metrics and displays has certainly been useful, and is already generating concrete actions to make things better (thanks dries + webchick). i certainly feel more clear about my unease, and how to cope with it... -derek
basically, most of the stuff ber is talking about. i see it as something to help site admins choose what modules to build their sites on top of,
Hi, if you are developing site without access to cron, you will probably use poormanscron. Because such modules are rather simple, they don't have enough activity. Will you abandon it because it didn't change for past 4 months and has only one developer? I agree we need some gold-stars, but i don't think just statistics will help much. What about some magic number, computed from various stats, showing project activity (like freshmeat.net)? Something like: - how many unresolved issues does the project have? - A points - how long does an issue stays unopened? - B points - is it ready for 4.7? - C points - is it ready for 4.8/5.0/HEAD? - D points - did it have major security issue in past 2 months? - E points - did it have minor security issue in past 2 months? - F points Magic number = A+B+C+D+E+F Points will be calculated from current projects statistics. -- Jakub Suchý <jakub.suchy@logios.cz> GSM: +420 - 777 817 949 LOGIOS s.r.o, V Podhájí 776/30, 400 01 Ústí nad Labem tel.: +420 - 474 745 159, fax: +420 - 474 745 160 e-mail: info@logios.cz, web: http://www.logios.cz
*My* proposal is that the issue get visibility and some sort of mechanism to help make sure temporarily-orphaned but critical modules don't get left behind. There are likely other methods than the golden repo idea. It just seemed that the door to any discussion was being closed.
In an attempt to translate this discussion into some concrete action points, here is a first proposal: http://buytaert.net/temporary/project-information-at-a-glance.png The advantage is that is can be automated (no manual work) and that it promotes active projects over inactive projects, good maintainers over bad maintainers, etc. Also, it provides useful information to user -- something which is important on its own (if you look at Kieran's survey results). *winks at Derek* -- Dries Buytaert :: http://www.buytaert.net/
Dries Buytaert wrote:
*My* proposal is that the issue get visibility and some sort of mechanism to help make sure temporarily-orphaned but critical modules don't get left behind. There are likely other methods than the golden repo idea. It just seemed that the door to any discussion was being closed.
In an attempt to translate this discussion into some concrete action points, here is a first proposal:
http://buytaert.net/temporary/project-information-at-a-glance.png
The advantage is that is can be automated (no manual work) and that it promotes active projects over inactive projects, good maintainers over bad maintainers, etc. Also, it provides useful information to user -- something which is important on its own (if you look at Kieran's survey results).
*winks at Derek*
I sometimes get the impression that people don't know that http://drupal.org/project/issues/statistics exists... It should be easy to add an individual stats page for each project. And I am quite sure Derek accepts patches. .p Cheers, Gerhard
On Aug 19, 2006, at 4:37 AM, Gerhard Killesreiter wrote:
I sometimes get the impression that people don't know that http://drupal.org/project/issues/statistics exists...
It should be easy to add an individual stats page for each project.
i get the impression killes doesn't know about: http://drupal.org/project/issues/statistics/project http://drupal.org/project/issues/statistics/event ... or: http://drupal.org/project/issues/statistics/3238 (event's page by project nid) ;) it'd be trivial to add a link to each project's issue statistics page on the project nodes themselves. that said, i like dries's block proposal to summarize the issue + cvs activity in 1 place, too. those statistics pages are ok, but it's kind of hard to get a sense of the activity in the same way, and i think including commit info in the same summary is important. and yes, i'm definitely accepting patches. ;) thanks, -dww
Derek Wright wrote:
On Aug 19, 2006, at 4:37 AM, Gerhard Killesreiter wrote:
I sometimes get the impression that people don't know that http://drupal.org/project/issues/statistics exists...
It should be easy to add an individual stats page for each project.
i get the impression killes doesn't know about:
http://drupal.org/project/issues/statistics/project http://drupal.org/project/issues/statistics/event ... or: http://drupal.org/project/issues/statistics/3238 (event's page by project nid)
;)
it'd be trivial to add a link to each project's issue statistics page on the project nodes themselves.
I had a gut feeling that these pages existed, but they aren't linked from the project page (and from anywhere else?).
that said, i like dries's block proposal to summarize the issue + cvs activity in 1 place, too. those statistics pages are ok, but it's kind of hard to get a sense of the activity in the same way, and i think including commit info in the same summary is important.
The info could certainly be presented in a better way. Maybe a non-sidebar block is the way to go. Cheers, Gerhard
On Aug 19, 2006, at 6:40 AM, Gerhard Killesreiter wrote:
I had a gut feeling that these pages existed, but they aren't linked from the project page (and from anywhere else?).
if you goto, e.g.: http://drupal.org/project/issues/event the "statistics" link at the top of the page brings you to that project's stats page. i agree this link should be directly visible on the project node. in fact, i think every link on that page should probably be visible on the project node. -dww
Derek Wright wrote:
On Aug 19, 2006, at 6:40 AM, Gerhard Killesreiter wrote:
I had a gut feeling that these pages existed, but they aren't linked from the project page (and from anywhere else?).
if you goto, e.g.:
http://drupal.org/project/issues/event
the "statistics" link at the top of the page brings you to that project's stats page.
Ah. not the most obvious UI. :p
i agree this link should be directly visible on the project node. in fact, i think every link on that page should probably be visible on the project node.
We should spice the project nodes a bit up. They look rather bland with their long lists of links. Cheers, Gerhard
On Aug 19, 2006, at 8:17 AM, Gerhard Killesreiter wrote:
Ah. not the most obvious UI. :p
nope. ;) i've been busy on the critical bugs and totally broken crap, not so much the slickness of the UI (though, if i may say so, the UI is definitely better than it was). ;) someday (hopefully soon), things will settle down a little in the critically broken department, and i'll be able to devote more time/energy into the making it all more sane/clear/slick.
We should spice the project nodes a bit up. They look rather bland with their long lists of links.
true, that. i'm mostly working on the plumbing. if anyone wants to work on attaching nicer faucets to the pipes, by all means, submit your patches. i'll be thrilled to review them and put them in. thanks, -derek
Dries Buytaert wrote:
I'm all for adding ratings, showing information about the project's health, etc. Hence my previous e-mail with the mock-up. I think such information should be auto-generated based on various metrics:
- Number of contributors - Patch queue activity - Security history - Download statistiscs - Usage statistics - Number of commits - ...
Disregarding the constraints of reality, I always liked this idea for a rating. Create a new profile filed *top 5 contrib modules* for every user. Let everyone can make a value judgement (using whatever criteria they like). Then, with each user/module pair, calculate a score based on user info such as "number of posts", "time since last post", "number of commits", "whether they are Dries or not" and allocate these points to the module. Does that make sense? IMO, that would be superkool.
On 19 Aug 2006, at 13:37, Gerhard Killesreiter wrote:
I sometimes get the impression that people don't know that http://drupal.org/project/issues/statistics exists...
It should be easy to add an individual stats page for each project.
Sure but ... the idea is to: 1. Take it a bit further by extending the amount of data we collect (eg. downloads). 2. To make it more visible by showing a summary on the main project page. 3. To make it more accessible to non-developers by avoiding technical lingo. -- Dries Buytaert :: http://www.buytaert.net/
Dries Buytaert wrote:
*My* proposal is that the issue get visibility and some sort of mechanism to help make sure temporarily-orphaned but critical modules don't get left behind. There are likely other methods than the golden repo idea. It just seemed that the door to any discussion was being closed.
In an attempt to translate this discussion into some concrete action points, here is a first proposal:
http://buytaert.net/temporary/project-information-at-a-glance.png
Aaah. Yes please!
On 19-Aug-06, at 7:22 AM, Dries Buytaert wrote:
*My* proposal is that the issue get visibility and some sort of mechanism to help make sure temporarily-orphaned but critical modules don't get left behind. There are likely other methods than the golden repo idea. It just seemed that the door to any discussion was being closed.
In an attempt to translate this discussion into some concrete action points, here is a first proposal:
http://buytaert.net/temporary/project-information-at-a-glance.png
I love this! Let's talk implementation details: http://drupal.org/node/79550
On 18 Aug 2006, at 02:29, Derek Wright wrote:
also, given that CCK in core is basically crippled as it stands (no fields) and yet CCK in contrib doesn't work w/ CCK in core, and flexinode isn't going to be ported to either 4.7 or 4.8 (according to ber), i have serious concerns about freezing. dynamic content types are essential for basically every real drupal site i'm dealing with. if core isn't going to provide fields, we absolutely *must* have a plan for working fields in 4.8 contrib (and further acknowledge that core basically requires contrib to be functional 95% of the time).
Imagine that the CCK was not in core, and that the CCK in contrib would continue to be crippled during the 4.8/5.0 period. That would be an even worse scenario, wouldn't it? It is pretty clear that getting a proper CCK implementation into core is a big task. It might not be apparent to some, but the past two years we've been slowly rewriting Drupal core around the CCK, and we're tackling one CCK hack/workaround after another. It all started with the forms API in Drupal 4.7; being able to extend and validate forms was a requirement for the CCK. Now, in Drupal 4.8/5.0 we'll have structured body arrays, required to properly output CCK node types. We're also shipping with basic (non- extensible) CCK types. Not to mention various of the smaller steps; the ability to rename the 'Title' field to give one example. Just like Drupal 4.7, Drupal 4.8/5.0 will be a huge step in the CCK's direction. We're paving the path and so far we've been good at it. :-) There is a certain irony in the fact that the contrib CCK might be broken. Normally, the size and the complexity of the contrib CCK should shrink and shrink until, ultimately, there is little or nothing left from the contrib CCK. As a result, it should become easier and easier to maintain. That said, I agree that the current situation is not optimal and that we'd greatly benefit from having basic support for CCK fields in core. The reality is that it will probably take another release to get it right, and that it will take several more releases to add polish. Of course, you never know. We still have two weeks left, and there is a lot that one can do in two weeks ... (It wouldn't be the first time this release cycle that Eaton, jaza or chx come forward with a big chunk of CCK code.) It is dangerous to postpone the code freeze in order to get more stuff in core: it takes time to implement this, and as far as I know, no one is currently working on a patch to get basic field support into core. If there was a patch and the commitment/willingness to finish it before the code freeze, the situation might be different depending on the state of such a patch. Right now, there is no code to justify such a decision. -- Dries Buytaert :: http://www.buytaert.net/
Dries Buytaert wrote:
There is a certain irony in the fact that the contrib CCK might be broken. Normally, the size and the complexity of the contrib CCK should shrink and shrink until, ultimately, there is little or nothing left from the contrib CCK. As a result, it should become easier and easier to maintain.
Contrib CCK is working with 4.7. The fact that it doesn't work ith HEAD is due to a table name collission. That's all, as far as I know. Cheers, Gerhard
On 8/18/06, Gerhard Killesreiter <gerhard@killesreiter.de> wrote:
Contrib CCK is working with 4.7. The fact that it doesn't work ith HEAD is due to a table name collission. That's all, as far as I know.
That's the main reason why contrib CCK doesn't work with 4.7. There are (as far as I can think of) 3 other (related) reasons: 1. The 'node_type' table in core HEAD has a somewhat different schema to the 'node_type' table in CCK contrib. 2. User-defined node types (i.e. all CCK node types) no longer need to be defined through hook_node_info(): they only need to have their entry in the 'node_type' table maintained. 3. There is now a UI for adding/editing/deleting node types in node.module. (1) will take a reasonable amount of work to address. Contrib CCK will need to switch from using its own API functions, to using the new API functions provided by node.module, wherever possible. Where not possible, CCK may need to have some of its SQL queries (and dependent code) modified. (2) should be easy to address. Just remove the content_node_info() function. (3) should also be easy to address. Just remove the content type add/edit/delete UI from content.module (since core now provides it), and leave the field add/edit/delete UI. This is just my predictions - I haven't actually investigated updating CCK myself (that's up to the CCK maintainers). Also, I should point out that I know a lot more about the new CCK features in core, than I know about contrib CCK. Cheers, Jaza.
Jeremy Epstein wrote:
On 8/18/06, Gerhard Killesreiter <gerhard@killesreiter.de> wrote:
Contrib CCK is working with 4.7. The fact that it doesn't work ith HEAD is due to a table name collission. That's all, as far as I know.
That's the main reason why contrib CCK doesn't work with 4.7. There are (as far as I can think of) 3 other (related) reasons:
1. The 'node_type' table in core HEAD has a somewhat different schema to the 'node_type' table in CCK contrib. 2. User-defined node types (i.e. all CCK node types) no longer need to be defined through hook_node_info(): they only need to have their entry in the 'node_type' table maintained. 3. There is now a UI for adding/editing/deleting node types in node.module.
(1) will take a reasonable amount of work to address. Contrib CCK will need to switch from using its own API functions, to using the new API functions provided by node.module, wherever possible. Where not possible, CCK may need to have some of its SQL queries (and dependent code) modified.
(2) should be easy to address. Just remove the content_node_info() function.
(3) should also be easy to address. Just remove the content type add/edit/delete UI from content.module (since core now provides it), and leave the field add/edit/delete UI.
This is just my predictions - I haven't actually investigated updating CCK myself (that's up to the CCK maintainers). Also, I should point out that I know a lot more about the new CCK features in core, than I know about contrib CCK.
Cheers, Jaza.
That was my biggest problem with the pave the way for cck patch.. fortunately the update will be simpler than I expected... ;)...
Op vrijdag 18 augustus 2006 11:58, schreef Dries Buytaert:
The reality is that it will probably take another release to get it right, and that it will take several more releases to add polish. Of course, you never know. We still have two weeks left, and there is a lot that one can do in two weeks ... (It wouldn't be the first time this release cycle that Eaton, jaza or chx come forward with a big chunk of CCK code.)
And Derek
and lexinode isn't going to be ported to either 4.7 or 4.8 (according to ber)
flexinode is released for 4.7. But it is a crippled hasty release. I took it over a little too late (it was already branched eventhough nothing worked at all!). All the 4.7 has been about cleaning up this mess, and about getting around FAPI oddnesses. On 4.7.3 Drupal version, flexinode has a new critical bug again. All this to illustrate what I meant with the word "properly". Sure, big chance there will be a 4.8 version of flexinode. Also a big chance the 4.7 issues will be ironed out little more. so there are releases. But I talked about "proper" releases. When people say "cck is released for 4.7" that is about all they can say. Because there is hardly documentation, the code and database-architecture went trough rather big changes in the last months. There are virtually no really usefull fields (all are under development) and the usability of the admin interfaces needs lots of love too. It is simply not ready for production (IMO). What i meant with properly in my previous mails: Making a 4.6 module "work" in 4.7. Upgrading a module from 4.7 to 4.8 is not a lot of work. But doing that *properly*, by using the new core featues, by using better API's and by keeping up standards, often requires an almost complete rewrite. A good flexinode 4.8 would use the core dynamic node features. A good flexinode 4.8 would use views instead of its own private limited views code. Anything else then that, I consider a hack. Yes, it might work, probably be be released for 4.8, but it is certainly not something to be proud of as Drupal community.
It is dangerous to postpone the code freeze in order to get more stuff in core: it takes time to implement this, and as far as I know, no one is currently working on a patch to get basic field support into core.
Yes. In fact, I beleive the only solution is the other way around: Release with less stuff in core. The less changes, the easier it is to keep in pace with all our contribs. And in the same time, put less pressure on upgrading. If stuff (contribs) is not ready, we should not tell people to upgrade. This particular field feature, however requires a big rewrite for CCK, again. If CCK would do it *properly* (see above), it would mean a big rewrite to remove of one of the core concepts in CCK: making nodes. I suspect this might mean a complete rewrite, after all. So this leaves us a long period in 4.8 with 1) a hacked up, patched up flexinode and 2) a heavy under development replacement for it, CCK. None of wich I would advice any (sane) person on his/her production site. Result: another release without a production-ready system for dynamically build (with fields) nodes. I don't see this as a reason for postponing a code freeze. But I do see this as a reason for concern in a more general way. Especially since the problem seems to become structural. with the rapid growth of Drupal one would expect the overal quality, amount and feature-richness of contribs and themes to improve. I don't see this happening ATM! discussion at drupalcon? Bèr
Yes. In fact, I beleive the only solution is the other way around: Release with less stuff in core. The less changes, the easier it is to keep in pace with all our contribs. And in the same time, put less pressure on upgrading. If stuff (contribs) is not ready, we should not tell people to upgrade.
We had this discussion before, and I still disagree. I believe that CCK+view is what the next generation of open source CMSes will look like. They have the potential of being the heart of Drupal. For Drupal to get to the next level, they have to be in core so that everyone can rely on it as well as build on it.
This particular field feature, however requires a big rewrite for CCK, again. If CCK would do it *properly* (see above), it would mean a big rewrite to remove of one of the core concepts in CCK: making nodes. I suspect this might mean a complete rewrite, after all.
Please elaborate. What would you rewrite, and why? What is not properly done in core that is a showstopper for full CCK support?
So this leaves us a long period in 4.8 with 1) a hacked up, patched up flexinode and 2) a heavy under development replacement for it, CCK. None of wich I would advice any (sane) person on his/her production site. Result: another release without a production-ready system for dynamically build (with fields) nodes.
Note that there are 3 systems here: (i) flexinode, (ii) contrib CCK and (iii) core CCK. I can't speak for (i) or (ii) but if they are "hacked up" then their maintainers are to blame -- at least to a certain extend. I can only speak for (iii), and I think you're overly pessimistic about it. 1. We made an almost insane amount of progress since Drupal 4.7, and we might make more progress by the time we freeze the code. (Go folks, go!) 2. The lightweight CCK that is in core is fully functional. Sure, you can't add extra fields yet but there are many valid use cases where you don't need additional fields. 3. It is probably at least another 2 months until Drupal 4.8/5.0 gets released. That means that there is plenty of time left to fix (i) and (ii), and to a lesser extend (iii). It's only 3 months since we released Drupal 4.7, and it is another 2 months until we might release Drupal 4.8/5.0. 4. The work we have done in CVS HEAD should be beneficial for (i) and (ii) so I'd like to believe that these modules become less "hacked up".
I don't see this as a reason for postponing a code freeze. But I do see this as a reason for concern in a more general way. Especially since the problem seems to become structural. with the rapid growth of Drupal one would expect the overal quality, amount and feature-richness of contribs and themes to improve. I don't see this happening ATM! discussion at drupalcon?
I've seen some pretty cool things that would not have been possible with Drupal 4.6. Drupal 4.7 certainly allows more feature-rich modules to be built. I've also seen modules that take advantage of Drupal 4.7 functionality to improve the user experience. As such, I disagree with your point about feature-richness and wrote about it earlier: http://buytaert.net/the-pain-before-the-payoff It's true that certain projects are slow catching up but that is because Drupal 4.7 was such a big change. Drupal 4.8 will be much easier to deal with, and will be less disruptive. Again, I think you're somewhat pessimistic: drupal.org/htdocs/files/projects $ ls -als *-4.6*gz | wc -l 461 drupal.org/htdocs/files/projects $ ls -als *-4.7*gz | wc -l 484 There are more 4.7 projects then there are 4.6 projects (and 4.6 has been around for a much longer time). -- Dries Buytaert :: http://www.buytaert.net/
Please elaborate. What would you rewrite, and why? What is not properly done in core that is a showstopper for full CCK support?
I don't intend to speak for Ber, but as someone who has spent many hours trying to create an import/export/CRUD API for CCK types (not nodes), I'll comment here. The big problem that I see with CCK right now is that it ties a lot of the logic into the form submission process. This is similar to the problems we've seen with programmatically creating nodes. This is a problem for the immediate need of allowing modules to define and import their own content types (a la views). It is also a problem for long term maintenence. There are at least three ways to create a field, all of them tied to a different form. If the data storage mechanism changes (again) that requires picking through three different areas of the code, trying to synchronize the changes. I think this also speaks to the issue of slowing pairing down CCK as core. It's not easy to just drop out an API function and rely on core. I think this speaks to a CCK rewrite (or at least a structured cut 'n' paste). First build the API, then build the forms on top. As an example, think views + viewsui. -M
From: Mark Fredrickson [mailto:mark.m.fredrickson@gmail.com] The big problem that I see with CCK right now is that it ties a lot of the logic into the form submission process. This is similar to the problems we've seen with programmatically creating nodes. This is a problem for the immediate need of allowing modules to define and import their own content types (a la views). It is also a problem for long term maintenence. There are at least three ways to create a field, all of them tied to a different form. If the data storage mechanism changes (again) that requires picking through three different areas of the code, trying to synchronize the changes.
Just a quick note that http://drupal.org/node/77919 is a patch that allows programmatic submission of forms without any user interaction. Get a form array, populate the form values, and process it -- the same validate, submit, and so on calls are executed. That won't solve problems that arise from a lack of clean API, but it WILL make scripting/automating processes that require form interaction much more straightforward in 4.8/5.0. --Jeff
Op vrijdag 18 augustus 2006 16:42, schreef Mark Fredrickson:
The big problem that I see with CCK right now is that it ties a lot of the logic into the form submission process. This is similar to the problems we've seen with programmatically creating nodes. This is a problem for the immediate need of allowing modules to define and import their own content types (a la views). It is also a problem for long term maintenence
Besides this, there are some fundamental design flaws in CCK. And no, my resources are spread too thin, to fix this. Partly because I am still trying to get flexinode stable, partly because I simply don't understand some choices and parts of the CCK code (That after working 5 months full time on a CCK project!). One of my current projects is what I called flexinode2. (though I was told I should not use that name). One of the pleasant surprises is that core node-type-builder allows me to get this off the ground a lot faster, since that is a big part of what I needed, /and/ done right. http://webschuur.com/node/643 is a quickly hacked up ERD, for this. But in very short: use formapi/nodeapi to inject fields into node types. Split out MV and C. (M=Field types, V=theme and NOT code in a field, presentation and data should not live in the objects/enties, C = Field instances) esp the V part is what bothers me in the design of CCK. But the concept of fields/widgets combined with mutiple etc instances makes it far more complex then it should (IMO) be. Compare a flexinode image field (50 lines) and a cck image field (500+ lines), to see what I mean. Not that I mean that flexinode has a better architecture, just that it is better from a very pragmatic pov, because simpler. I am looking for that simplicity, with the normalised architecture of CCK. which i'd love to make flexinode2. Bèr
Dries Buytaert wrote:
Yes. In fact, I beleive the only solution is the other way around: Release with less stuff in core. The less changes, the easier it is to keep in pace with all our contribs. And in the same time, put less pressure on upgrading. If stuff (contribs) is not ready, we should not tell people to upgrade.
We had this discussion before, and I still disagree. I believe that CCK+view is what the next generation of open source CMSes will look like. They have the potential of being the heart of Drupal. For Drupal to get to the next level, they have to be in core so that everyone can rely on it as well as build on it.
This particular field feature, however requires a big rewrite for CCK, again. If CCK would do it *properly* (see above), it would mean a big rewrite to remove of one of the core concepts in CCK: making nodes. I suspect this might mean a complete rewrite, after all.
Please elaborate. What would you rewrite, and why? What is not properly done in core that is a showstopper for full CCK support?
This is what an offhand look at content.module suggest needs to be done to me... 1) Everything done in content.module to date as far as node type creation needs to be stripped out. 2) the field specific menu items needs to be integrated with the new node.module menu. 3) content_node_info, content_access go the way of the dodo, superceeded in node.module 4) integrate content.modules node hooks using hook_nodeapi 5) titles on forms need to be moved into node.module, and out of content type modules.(seems like they already should be but page.module sets $form['title'] along with the other node type modules. There a no show stoppers here, except maybe removing title fields from the forms in node type modules since they are handled by hook_node_info && node.module sets the label accordingly.
So this leaves us a long period in 4.8 with 1) a hacked up, patched up flexinode and 2) a heavy under development replacement for it, CCK. None of wich I would advice any (sane) person on his/her production site. Result: another release without a production-ready system for dynamically build (with fields) nodes.
Note that there are 3 systems here: (i) flexinode, (ii) contrib CCK and (iii) core CCK.
I can't speak for (i) or (ii) but if they are "hacked up" then their maintainers are to blame -- at least to a certain extend. I can only speak for (iii), and I think you're overly pessimistic about it.
1. We made an almost insane amount of progress since Drupal 4.7, and we might make more progress by the time we freeze the code. (Go folks, go!)
2. The lightweight CCK that is in core is fully functional. Sure, you can't add extra fields yet but there are many valid use cases where you don't need additional fields.
the important part of cck is that you can have fields... right now you just have flexible node naming and node type creation.
3. It is probably at least another 2 months until Drupal 4.8/5.0 gets released. That means that there is plenty of time left to fix (i) and (ii), and to a lesser extend (iii). It's only 3 months since we released Drupal 4.7, and it is another 2 months until we might release Drupal 4.8/5.0. maybe fields.module will be working by then... I'll see if I can get a head ready field.module together today if JonBob hasn't already.
4. The work we have done in CVS HEAD should be beneficial for (i) and (ii) so I'd like to believe that these modules become less "hacked up". I don't think there was enough public communication between the people working on cck and cck's inclusion in core, to allay FUD. I had a lot of it until I just dug into content.module to see how the changed in core actually affected it, and how hard they would be in to intgrate, and its not as bad as I suspected.. There still remains a question of whether we modify node_load to contain content.modules node hooks, or do it through nodeapi.... integrating it all into node, would make core a bit fatter, but would get rid of a layer of inner loops. My personal opinion is let field.module live on its own using node api until field type modules mature. We can look at moving the rest into core after the next release if it's deemed a good idea.
I don't see this as a reason for postponing a code freeze. But I do see this as a reason for concern in a more general way. Especially since the problem seems to become structural. with the rapid growth of Drupal one would expect the overal quality, amount and feature-richness of contribs and themes to improve. I don't see this happening ATM! discussion at drupalcon? Its no reason to stop the code freeze, but some 'improvements' may appear to be hinderances. Especially since no one to date has taken the time to express to the community as a whole how simple the modifications required to content.module to create field.module really are.
.darrel.
Op vrijdag 18 augustus 2006 15:32, schreef Dries Buytaert:
Note that there are 3 systems here: (i) flexinode, (ii) contrib CCK and (iii) core CCK.
I can't speak for (i) or (ii) but if they are "hacked up" then their maintainers are to blame -- at least to a certain extend. I can only speak for (iii), and I think you're overly pessimistic about it.
My idea is that, if core releases as it is now then (i) and (ii) should use (III) as API, or for the heavy lifting. Especially since iii is done very nice. Since core does the node-type handling different from CCK-contrib node type handling, these two conflict right now. Two options: Rip out the node-type handling from CCK-contrib. Which, if done right, is a near-full-rewrite. Same goes for flexinode. Having both flexinode and CCK in head is very confusing, for a starters because there are two nearly similar "content type" interfaces which even share a menu-path! And yes: Metadata-based content is the way of the future. My whole point is that right *now* we (flexinode and CCK) are getting rather close to something that is *almost* production safe. Flexinode in its current hacked up state, CCK in its 4.7 branch (where slowlly some fields are released). But both *are* not ready. And if upgrading both to 4,8 pulls out all resources again, there will be no stable CCK/flexinode for a long time again. Not for 4.7 nor for a long period in 4.8. I am not talking about what-would-be-cool-for-core. When I am talking about building sites Now. Today. Yesterday. Bèr
Derek Wright wrote:
On Aug 17, 2006, at 2:02 PM, Bèr Kessels wrote:
The good news is that that means more people using, developing testing and investing in older versions: these versions simply stay alive longer.
yet another example of why we need separate stable and dev branches for contrib for *each* version/branch of the drupal core API. ;) http://drupal.org/node/77562
that said, i have similar concerns with a lot of what ber raised. i've got 6 modules i personally maintain and there are about 4 others i've got commit access to and help out with. a few (dba and diff) still aren't ported to 4.7. it's going to be a lot of work to port the rest to HEAD. i've got tons of functionality i want to add to these modules, but i simply don't have the time to do it all, try to keep my eye on core development and help out where i can, be the resident CVS guru, *and* port all my modules to the latest core API every 3 months...
i'm honestly torn. on the one hand, it's great to have new stable releases with useful improvements frequently, so that more sites at least have *access* to the latest functionality if they want it. however, given a) the rapid pace, b) the utter disregard for backwards compatibility (which is great!), c) the therefore very real cost in developer hours to keep contrib/themes/translations up to date with the latest core, and d) our relatively limited development resources (horsepower to write/review/test all the code involved), i wonder if aiming for releases every 3-4 months is too short. drupal core is great and all, but show me a drupal site *anywhere* that doesn't use at least *something* from crontrib. ;) therefore, i know it's painful to admit, but we really do have to be concerned about not having core run off far in advance of contrib.
either i can keep all 10 modules up to date with HEAD all the time, or i can make them better, but, given the other constraints on my time, i can't really do much of both. maybe the problem is that i'm trying to maintain too many things, but i don't see anyone else volunteering to take over any of these contribs. ;)
also, given that CCK in core is basically crippled as it stands (no fields) and yet CCK in contrib doesn't work w/ CCK in core, and flexinode isn't going to be ported to either 4.7 or 4.8 (according to ber), i have serious concerns about freezing. dynamic content types are essential for basically every real drupal site i'm dealing with. if core isn't going to provide fields, we absolutely *must* have a plan for working fields in 4.8 contrib (and further acknowledge that core basically requires contrib to be functional 95% of the time).
i don't have a concrete proposal, but, since dries is fishing for "zeitgeist", i just wanted to register my unease (not dissatisfaction).
thanks, -dww
cck will be easy... There isn't a whole lot to do with it.... as for translations/contrib and the release cycle.. maybe a longer freeze period would be nice... Get the devs chomping at the bit again for when head reopens. force some planning... give everyone time to catch up... and maybe get a more stable core at the end of it all... Might also encourage everyone to work really hard on getting stuff in now if they know they're gonna have 3 months of freeze to wait before they can submit new features....
participants (23)
-
Angela Byron -
Boris Mann -
Bèr Kessels -
Chris Johnson -
Darrel -
Darrel O'Pry -
Derek Wright -
Dries Buytaert -
Farsheed -
Gabor Hojtsy -
Gerhard Killesreiter -
Jakub Suchy -
Jeff Eaton -
Jeremy Epstein -
karoly@negyesi.net -
Khalid B -
Larry Garfield -
Mark Fredrickson -
Metzler, David -
Moshe Weitzman -
Richard Archer -
Sammy Spets -
sime