Creating Drupal distribution - still a hard task
I really wanted to create a proper Drupal distribution. Nothing fancy - a basic Drupal 6, a nice responsive design theme, and some "mobile related" modules (Services, Rules, etc.).
The presentation from Chicago DrupalCon by Dmitri about Features, Profiler and Drush Make was very useful as a basis, and using the Profiler Builder made it even simpler. It was a bit hard to gasp the idea of recursive make files and the different naming of them, but in the end I got something that by itself seems to work - as long as I "drush make" it myself...
Even before hitting into the main problems, my first disappointment from the Profiler library was bug #1596056 - profiles does not really have an option to be based on another profile, at least for now. So, in order to properly get all of the "default" content types, for example, I need to add them in my own code. In the end, it means that I had to forget all about the Profiler library, while still using the Features capabilities.
So now my "distribution" seems to work !
I "drush make" it myself, add it to my aegir - and it actually works ! I get a working Drupal site, with all my beloved "features" ready-made !
Now what ? Well, I thought all I need is "just" to take it out of the sandbox and it will work...
So, what went wrong ?
- Make files naming - here you can read about managing the files, but it is not all of it.
- Drupal.org distribution packaging requirements - read it all and you will understand that not everything you can do in the sandbox can be done out of it.
- Specifically - Services REST server requires external library called Spyc, which is not allowed to be part of the d.o. code, due to licensing issues. I found out I am not alone in this problem, but this solution was actually a workaround that solves nothing in d.o., and the real solution - using the libraries module - is still out of the recommended releases, so I didn't want it in "my" distribution - I really wanted a "clean" distribution, only with releases regular Drupal site builders tend to use.
- Sandbox modules - while the idea of sandbox was welcomed into d.o., I think that in the end it made lots of "garbage" into the system, and when I say "garbage" I don't mean the code is bad or not useful - on the contrary. Like before, I find myself solving 99% of my problems using other people's solutions/modules, but nowadays lots of those solutions stays in their sandboxes, and users tend to leave them there (we all know it takes time and effort to pass the coding standards of d.o. in order to release a module. I am not against it, but it just takes resources many don't have).
Well, I think those are the main reasons that made me waste my time (while learning a lot, but taking me away from my focus).
So, how can we do it better, as a Drupal community ? I don't really know, I believe many people invest a lot in order to make it a simpler process.
How will I do it better ? I mean - how will I make my users (the people I hoped to reach by developing this distribution) ?
I can't tell them "drush make" it - they don't know drush. Hell, most of them don't know what SSH is - and they still my audience, all of those Drupal site developers who actually just download the latest distribution, upload it via FTP, and install their new site.
Guess that for now my solution will be to "drush make" it myself, put it somewhere, and link it to the distribution project on d.o..
I don't think it is the best solution, I really wanted to use the releases capabilities of d.o., but while trying to do my best in the last week or so, even for me it is a waste of resources I can't waste any more.
Do you (whoever you are) have any other recommendations ?
Thanks,
Shushu
Ralates to: Drupal Planet