Вы здесь

Сборки Друпала

Следующая версия, Друпал 5.0, будет лучше поддерживать создание сборок. Каждая сборка может содержать набор тем оформления и модулей, которые помещены в пакет вместе с ядром Друпала, может поддерживать свои шаги при установке, документацию и так далее. Например, можно было бы создать сборку с названием «Друпал для образования», которая бы содержала преднастроенные роли и права для учителей и учеников, распространялась бы с дополнительными модулями, которые позволяют публиковать он-лайн курсы и проводить тестирование.

Новые рынки

Сборки позволяют людям создавать готовые скачиваемые пакеты, разработанные для определённых целей. Это позволит занять Друпалу новые рынки. Например, сборка «Друпал для образования» могла бы конкурировать с такими системами управления курсами как Moodle и Blackboard.

Сборки позволят Друпалу не только выйти на существующие рынки, но и позволят людям создавать новые рынки. Например, кто-нибудь может сделать сборку «Друпал для студенческих организаций» и тотчас стать №1 на этом рынке. Количество возможностей и вертикалей не ограничено. Разделяй и властвуй.

Хотя возможности безграничны, это накладывает ряд ограничений.

Сотрудничество, а не соперничество

Важно, чтобы над сборками велась совместная работа и не было соревнования между ними. Чтобы так сделать, мы должны обеспечить среду совместной работы, которая позволяет специализироваться (например в области документации и поддержки) без создания несовместимости, к которой ведёт конкуренция.

Хорошие новости заключаются в том, что мы знаем как это сделать. Мы это уже проходили с CivicSpace (ранее DeanSpace) — сборки для управления он-лайн кампаниями. Они быстро поняли, что успех сборки CivicSpace основан на успехе ядра Друпала и наоборот. Поэтому они решили не делать форков ядра при разработке. Вместо этого, в CivicSpace решили сделать всю разработку на основе инфраструктуры drupal.org, чтобы синхронизировать версии, улучшать общую работу общими патчами, централизировать сообщения об ошибках и сделать документацию общей во всех местах, в которых это возможно. Сотрудничество, а не соперничество.

Плохая новость заключается в том, что это трудно. Люди найдут, что создание сборок это весёлое и простое занятие, но что делать с ответственностью в области поддержки, которая не так весела. Кто захочет отслеживать изменения, писать документацию, поддерживать модули, реализовывать пути обновления, управлять версиями и предоставлять поддержку на годы?

Так как же мы может поддержать сотрудничество и как мы можем избежать оставление пользователей на старых версиях Друпала, потому что сборки не поддерживаются? Помните сборку «Друпал для блогеров»? У сотен пользователей не было пути обновления и они застряли с небезопасным форком Друпала. Автор решил соревноваться вместо сотрудничества и ввёл различные несовместимости, которые, в конечно итоге, негативно сказались на пользователях. Это хороший пример того, чего мы хотим избежать.

Итак, здесь есть простое правило: не создавайте сборки только потому, что вы можете их создавать. Создавайте сборки потому, что вы хотите предоставить пользователям сервис. Если вы не хотите совместной работы или вы не можете предоставлять сервис для своей сборки, это принесёт больше вреда чем пользы.

Мы также хотим заметить, что никогда не будет лучшего решения. Даже если сборка хорошо поддерживается, посмотрите на простой факт: нет сборок, которые предоставляют своевременного исправления ошибок и не важно что вы делаете, пользователи всегда будут сетовать на то, что это занимает слишком много времени и новые версии с исправлениями выходят недостаточно быстро.

Как именно будет выглядеть решение я не знаю, но я думаю, что кратким ответом может быть такой: ответственность сообщества. Мы не можем сделать техническое решение для этого, потому что это социальный вопрос. Это вопрос для сообщества, который нуждается в решении сообщества.

Как сообщество, мы не должны одобрять сборки, разработчики которых не хотят сотрудничества, которые не дают возможность полагать, что будут их долго поддерживать или которые создают риск блокирования пользователей в своих сборках. Этот вопрос будет связан с болезнями роста, но до сих пор, мы успешно их преодолевали — и это отражается в нашем здоровом росте.

Фрагментация и естественный отбор

Есть более неуловимые вещи. Даже если мы сотрудничаем и все сборки строятся на одном ядре, по-прежнему будет несовместимость в области документации, поддержки и взглядов. В конце концов, большинство сборок будут вынуждены предоставлять специализированную документацию и поддержку.

Эти несовместимости создают стимул для соревнования. Посмотрите, что происходит с Дебиан и Убунту. Убунту начался как форк Дебиана с целью регулярного выпуска версий на базе кода Дебиана. Теперь они всё больше и больше расходятся из-за возникающей несовместимости и в результате, Дебиан рискует быть вытесненным. Подобное происходит с Мамбой и Джумлой, NetBSD и FreeBSD, уже случилось с ЮНИКСом и Линуком и может случиться с RedHat и Oracle.

Если мы не будем осторожны, Друпал рискует повторить этот путь: распасться на несколько соревнующихся сборок. Это медленный процесс и часто занимает многие годы (и таким образом часто игнорируется теми людьми, которые слишком вовлечены в разработку). Хорошие новости тут заключаются в том, что это не обязательно плохая вещь, потому что в конечном счёте выиграет большее количество людей. Это то, что в природе называется мутацией и естественным отбором.

Тем не менее, нам нужно осуждать сборки, которые создаются из-за недовольства возможностями системы (например, «Друпал для профессионалов» или «Друпал для новичков»). Разница между сборкой и форком может быть неуловима. Прислушивание к нашим пользователям и изменение работы, должны быть более предпочтительным ответом на расстройство пользователей. Как сказал Дарвин, выигрывают не самые сильные организмы, а самые приспособленные к изменениям.

Сборки Друпала

Заключение

Факт поддержки Друпалом 5 сборок очень значителен, но большинство людей ещё не видят его потенциала. Я не думаю, что какой-либо другой подобный проект делал раньше что-то подобное или по крайней мере не в таких масштабах, в которых это делаем мы. Время покажет. Это захватывающее изменение и я уверен, что у нас будет возможность реализации невероятного потенциала.

Но как сообщество, мы должны взять на себя ответственность, что основой будет сотрудничество, а не соперничество. Мы также не должны одобрять сборки, которые плохо поддерживаются. Ответственность сообщества будет очень важна в этом приключении и я надеюсь, что всё сработает.