[development] D7 contrib module development

Marcel Partap mpartap at gmx.net
Sun Mar 8 03:26:19 UTC 2009


On 08/03/09 03:57, Daniel F. Kudwien wrote:
>>  Several problems just keep coming up:
>>  - modules spamming the watchdog table with E_ALL warnings
>>  - modules ignoring the style/documentation guide lines
>>  - applied insane programming(TM) techniques
> Go ahead and create patches for those modules.  That's the only way to fix
> 'em.
Dude i've been wasting my whole summer on that. Cleaning up afterwards 
is a hell lot of more unrewarding work than preventing the shit from 
hitting the fan.

>>  but by far the most serious one is
>>  - duplication (partial feature overlap with existing modules).
> Bad habit of module authors.  Slap them, but create a patch to remove what
> has been duplicated afterwards.
Yeah like i even have multiple days each day - sorry i simply can not 
fix stuff beyond the needs of my NGO site.
If the development process allows module authors to have bad habits - 
well maybe its not tightly regulated enough.

>>  There might be different perspectives on this but IMHO
>>  specifically for D7 this is not a good way to go. An example
>>  for this mess is the huge number of competing
>>  notification/subscription modules for D6 - each with a
>>  destinct feature set and of course incompatible to all
>>  others.
>
> The reason for that is that someone thought he/she could write something
> better, wrote it, and ended up with something that already exists.  From
> then on, happy developers continued to improve the pre-existing thingy,
> while some others installed the duplicated thingy and advanced on that.  The
> end result is: two parties that think either approach is wrong and a massive
> croud of users that thinks "And this is why Drupal sucks.(tm)"
>
> Removing the duplication requires that those module maintainers (finally)
> come to that conclusion.
That seems far less realistic than setting up a strict regulatory 
bottleneck for every line of official core/contrib D7 code. Take a 
look at how extremely discerning the benevolent dictator of the Wine 
project - Alexandre Julliard - handles the many code submissions from 
wine-patches - and at the resulting quality. There's a reason he skips 
committing 30% of patches.

>>  One possible
>>  option could be to go some steps towards the linux model, in
>>  which all patches have to be signed off by a small team of
>>  core developers.
>
> Core developers are already buried with core development.  Take a look at
> issue queues of "sub-core" modules like Views and you'll understand that
> each project needs its own code-guards.
That very well i know. Maybe we can all improve the process and 
optimize the obligatory set of tools?


>>  Drupal would not have to choose an official
>>  team of reviewers though - patches could be confirmed by a
>>  simple voting system, in combination with the already working
>>  automatic testing. The issue tracking system could be
>>  optimized for reviewing/auto testing/auto committing patches
>>  (more code centric).
> Machines can not (yet) replace the complex thoughts and decisions of a
> human.  If a patch passes some (human-created) tests, that only means a) it
> passed an expected behavior (which still can be wrong or outdated) and b) it
> passed coding-style tests (if there were some) - but there still has to be a
> gate-keeper who tells you about logic errors and the future of Drupal.
Of course not - but if the automated tests pass, AND 10 registered 
Drupal developers okay the patch by voting RTBC - for sure a commit 
bot can take the decision to just do it?
My guess: swarm intelligence + sophisticated tools outperform stressed 
individual core developers.

>>  However the specific details: the point of that change would
>>  be to shift responsibility (=power) from individual module
>>  creators to the coding swarm of contributors. This would
>>  significantly lower the odds of b(rainde)ad code getting in
>>  and hopefully drastically cut down on duplication.
> False assumption: Duplication is caused by braindead code.  Also by
> developers who a) are unable to search or b) really want to get another
> project on their list to raise their ego.  Cooperation and collaboration
> with maintainers of existing projects is the key (which still requires that
> you are competent enough to search).
Well of course it is the key, and the docs have been endorsing it 
since years. In reality.. well uhem http://drupal.org/node/197093 
cough cough..
Ok fine maybe it is more practical to set up an development algorithm 
*for D7* (not D6, everyone can still go bonkers there) that leaves 
less freedom for 'stuff' (communication, decisions) to 'go wrong'.

>>  Especially because of the to-be-expected great API changes in
>>  D7 and the resulting amount of code rewriting that has to be
>>  done, wouldn't it be a great point in time to get our act
>>  together and come up with a single bind-them-all notification
>>  framework? _One_ cleverly designed poll/decision extension?
>>  Merging/standardizing the various e-payment modules? Imho
>>  taking this direction in the long run will result in more
>>  coherent code and enable easier adaption to core API changes,
>>  also cutting down on user confusion - furthermore increasing overall
>>  D7 r0xorn3ss!
> This mostly depends on the maintainers of those modules.  Because if you
> would want to remove the duplication you would have to create yet another
> duplicated project.
You can call it duplication - i'd prefer talking about rewriting and 
merging. Key focus should be on clean design, flexibility and code 
efficiency - just the values that are relevant to D7 core development.

>>  What's your view on this?
> Somebody circle stomp those developers.
Will that make the problem vanish? Or maybe it'll just annihilate 
precious programming talent.. X)


-- 
  "Obstacles are those frightful things you see when you take
   your eyes off your goal."         -- Henry Ford (1863-1947)

   Change the world! Vote: http://hfopi.org/vote-future


More information about the development mailing list