Tell me if I get annoying, okay? But here is how Ruby on rails does it. Again, I think RoR Just Got It Right. The idea comes from three things: 1: Revision control. it must at all means map 1-1 to a complete project SVN (or somthing alike it) repository. 2: Security. On your production environment you never (ever) want anyone to be able to access any of your code or scripts. Even if you can disallow this with .htaccess. (for fun: get out there, google for ?q=node urls, and open up theurl.com/modules) 3: Development. have all your development tools and unit testing stuff at hand. Here is the tree. below tahat, I present a simplified version that could do for drupal.That is an exerpt from my work on drupalCOM. (I still have to figure out how to map it to cvs tracking, hence I did not work it out completely) . |-- README |-- Rakefile |-- app | |-- controllers | | |-- admin_controller.rb | | |-- application.rb | | `-- store_controller.rb | |-- create.sql | |-- helpers | | |-- admin_helper.rb | | |-- application_helper.rb | | `-- store_helper.rb | |-- models | | |-- cart.rb | | |-- line_item.rb | | `-- product.rb | `-- views | |-- admin | | |-- _form.rhtml | | |-- edit.rhtml | | |-- list.rhtml | | |-- new.rhtml | | `-- show.rhtml | |-- layouts | | |-- admin.rhtml | | `-- store.rhtml | `-- store | |-- display_cart.rhtml | `-- index.rhtml |-- components |-- config | |-- boot.rb | |-- database.yml | |-- environment.rb | |-- environments | | |-- development.rb | | |-- production.rb | | `-- test.rb | `-- routes.rb |-- db | `-- create.sql |-- doc | `-- README_FOR_APP |-- lib | `-- tasks |-- log | |-- development.log | |-- production.log | |-- server.log | `-- test.log |-- public | |-- 404.html | |-- 500.html | |-- dispatch.cgi | |-- dispatch.fcgi | |-- dispatch.rb | |-- favicon.ico | |-- images | | `-- rails.png | |-- index.html | |-- javascripts | | |-- controls.js | | |-- dragdrop.js | | |-- effects.js | | `-- prototype.js | |-- robots.txt | `-- stylesheets | |-- depot.css | `-- scaffold.css |-- script | |-- about | |-- breakpointer | |-- console | |-- destroy | |-- generate | |-- performance | | |-- benchmarker | | `-- profiler | |-- plugin | |-- process | | |-- reaper | | |-- spawner | | `-- spinner | |-- runner | `-- server |-- test | |-- fixtures | | |-- line_items.yml | | `-- products.yml | |-- functional | | |-- admin_controller_test.rb | | `-- store_controller_test.rb | |-- mocks | | |-- development | | `-- test | |-- test_helper.rb | `-- unit | |-- line_item_test.rb | `-- product_test.rb `-- vendor `-- plugins ******** drupal ********* . |-- README |-- |-- app | |-- modules | | |-- aggregator.modle | | |-- etc | | `-- watchdog.module | |-- theme-engines | | `-- phptemplate | `-- themes |-- sites | |-- site1.com | `-- site2.com |-- database | `-- create.mysql etc (also update.inc) |-- doc | `-- INSTALL etc |-- includes |-- public | |-- index.php | |-- favicon.ico | |-- images | | `-- druplicon.png | |-- index.html | |-- javascripts | | |-- controls.js | | |-- dragdrop.js | | |-- effects.js | | `-- prototype.js | |-- robots.txt | `-- stylesheets | |-- depot.css | `-- scaffold.css |-- script | |-- install.sh | |-- generate_module.sh | |-- environment_change.sh | `-- generate_theme.sh `-- vendor `-- plugins Hope it helps :) Bèr -- PGP ber@webschuur.com http://www.webschuur.com/sites/webschuur.com/files/ber_webschuur.asc PGP berkessels@gmx.net http://www.webschuur.com/sites/webschuur.com/files/ber_gmx.asc