There are two particular re-organizations I want to see, and if done they should be done at the same time.

First, a few days ago I debugged a problem. The short version of this problem is that a theme was being lazy and excluding all .css files that came from '/modules/*' and a user misunderstood and put contrib modules in /modules rather than /sites/all/modules. This caused the module in question to break rather badly. Now yes, the theme was lazy, but it hilights a second problem:

If new users put their modules in the wrong place, upgrading becomes harder because it is difficult ot JUST delete core files.

Therefore, I propose two re-orgs:

1) Break up /misc into /css, /js and /images -- this is pretty standard across contrib as far as I've seen, and would better organize what's in /misc which is too cluttered in my opinion. This one is relatively easy (and a patch should be able to easily rereference everything using /misc quite easily.)

2) Move everything not at the top level and not in /sites to a directory named /core. The directory structure would then look like this:

.htaccess
CHANGELOG.txt
core/
  css/
  images/
  includes/
  js/
  modules/
  scripts/
  themes/
index.php
install.php
INSTALL.txt
README.txt
sites/
  all/
  default/
update.php

(I alphabetized manually so forgive me if I got something out of order)

When updating Drupal manually (which I expect we'll still have to do in 7), it then becomes a matter of 'rm -rf core' and then unpacking the new tarball into place. This guarantees removed files are properly removed.

Now, this re-org will invalidate every patch ever in the entire queue, so I believe that if we go through with it, it should be done right after code freeze, since that will be the time with the fewest patches in the queue that will need rerolls. We should also do it with a fair bit of warning to those maintaining patches.

Comments

lilou’s picture

Damien Tournoud’s picture

Status: Active » Closed (duplicate)
merlinofchaos’s picture

Given the intent and suggestions in that issue are fairly different, I'm not sure this is really a mere duplicate.

merlinofchaos’s picture

.htaccess
CHANGELOG.txt
core/
  css/
  images/
  includes/
  js/
  modules/
  scripts/
  themes/
index.php
install.php
INSTALL.txt
README.txt
sites/
  all/
  default/
update.php

I am in foavor of leaving the *.txt files at the top level where they will be easy to find.

IMO we should consider this strongly as an early entry into D8 so that we can get it done and out of the way while there are still few patches against D8 (since it will invalidate, oh, every patch. And then some).