Хостинг для программ

Вас осенила блестящая идея проекта свободного ПО. Вы написали код, истребили ошибки, разработали броские логотипы и готовы одарить мир своими результатами. Единственная проблема – где это все поместить? Наскоро сляпать web-страницу и закинуть ее в сеть может каждый, но современные пользователи ожидают большего. Им подавай интерактивные сайты, где можно поместить сообщение
на форум и где есть системы отслеживания ошибок. Они рассчитывают на wiki, чтобы читать и обновлять документацию по программе, и на систему контроля версий, чтобы быть всегда на переднем крае вашего кода. Если вы хотите завлечь в свой проект других разработчиков, предусмотрите разные варианты участия. К счастью, возможностей для размещения вашей работы в сети немеряно и если вы любите делать все самостоятельно, то проще купить unix хостинг от CityHost. Но, как и при выборе дистрибутива, это разнообразие может поначалу сбить с толку. Поэтому в нашем Сравнении мы возьмем пять самых популярных сервисов хостинга проектов и рассмотрим, что они предлагают, насколько просты в использовании и для каких проектов подходят. Требования небольшого любительского клиента IRC, например, существенно отличаются от требований к ядру операционной системы, так что мы будем оценивать еще и гибкость этих сервисов.

Настройка и web-хостинг. Насколько просто заставить ваш проект работать?

Легко ли создать проект? Google Code позволяет создать сайт с минимумом действий – всего лишь укажите имя, краткое описание и лицензию. После завершения процесса вы получите простоватый с виду сайт со ссылками на обновление статуса, скачивание и wiki. В плане индивидуальной настройки особо не размахнешься, и большинство проектов Google Code выглядят как из одного стручка, но есть и свои плюсы: навигация по этим сайтам действительно простая, и на главной странице посетители видят рейтинг активности, позволяющий судить о посещаемости и популярности проекта. URL проекта выглядит следующим образом: http://code.google.com/p/mvproject.
Создать сайт в BerliOS будет посложнее: придется прочесть изрядное количество текста и пройти через юридические соглашения. Но главная помеха – необходимость ждать (обычно 24 часа) разрешения от человека на начало работы над проектом. Это, конечно, уменьшает на BerliOS свалки ненужного хлама и число отдающих фантастикой заявок «я та-акое напишу!», но все же является ограничивающим фактором. Получив разрешение, загружайте на сайт HTML и изображения через SCP, но на вашей главной странице должен быть логотип BerliOS со ссылкой на главный сайт. URL имеют вид http://mvproiect.berlios.de.
SourceForge предлагает завлекательный процесс подписки, который сразу же демонстрирует имеющиеся функции – wiki, блог, форумы, SVN и прочее – в сопровождении изображений. Можно отметить галочкой нужные опции, и хотя обдумывать все это при подписке отчасти и преждевременно, нам нравится такое информирование на ранней стадии. За один щелчок вы окажетесь на странице Administration (о ней мы поговорим позже). Затем продолжайте, загружая HTML и выбранные изображения. Все это взаправду быстро, а в использовании – проще не бывает.
GitHub предоставляет бесплатный хостинг для проектов с открытым кодом (ценовые предложения зависят от желаемого количества репозиториев) – вам нужно только указать имя своего проекта, и репозиторий Git создастся автоматически. Соломки непосвященным здесь никто не подстилает- после регистрации вы просто получите список команд Git для ввода. Основное внимание web-интерфейса отдается просмотру репозитория, но можно также загружать страницы HTML.
Savannah нас помучила, отказавшись принимать наш пароль (11-символьная комбинация заглавных и строчных букв и цифр ей не угодила) и заставив расшифровать контрольное изображение. Требования к хосту строги: в процессе регистрации просят подтвердить наличие у всех ваших исходных файлов действующих уведомлений об авторских правах, наличие копии лицензий в tar-архивах, и т.п. Нужно также предоставить ссылку на tar-архив, чтобы администраторы Savannah могли проверить, все ли в порядке; и документация гласит, что в описании следует говорить «GNU/Linux», а не просто «Linux», если вы хотите получить разрешение сразу. После этого загружайте HTML и получайте сайт на www.nonanu.org/mvproject.

Администрирование

Насколько прост и эффективен в использовании интерфейс?
Как главный разработчик своего проекта, львиную долю своего времени вы будете проводить в web-интерфейсе Administration: загружать новые релизы, добавлять скриншоты, отвечать на отчеты об ошибках или разрешать споры на форумах. Здесь красота функцией не является: неважно, сколько в интерфейсе забавных CSS-эффектов, вам просто надо сделать свое дело за минимум щелчков мыши (или нажатий клавиш, фанаты Ratpoison). Мы оценили удобство и эффективность отдельных функций, а здесь сконцентрируемся на общем впечатлении от интерфейса: простоте навигации, скорости отклика и наличии раздражающих факторов. Отметим, что у многих наших провайдеров есть инструменты для автоматизации предоставления релизов: например, (http://www.catb.org/~esr/shipper/) позволяет создавать новые релизы в SourceForge из командной строки.

BerliOS ????

Хотя интерфейс BerliOS насыщен текстом, и порой от него рябит в глазах, разобраться с ним не так уж сложно. Доступ к основным функциям осуществляется через список в верхней части, и для большинства функций имеется очевидная ссылка Admin, дающая доступ к настройке. Однако наше главное нарекание на BerliOS-то, что здесь не сохраняется статус нахождения в системе для многократных браузерных сессий. Иначе говоря, при каждом закрытии и повторном открытии браузера для получения доступа к функциям администратора нужно снова входить в систему. Это не всемирная катастрофа, потому что большинство современных браузеров позволяют сохранять данные, но добавляет лишнее действие каждый раз, когда вы решите запустить Firefox и поработать с последними отчетами об ошибках. Однако в целом это достойная попытка.

 

GitHub ???

Для GitHub репозиторий – это все, и web-интерфейс Dashboard в основном направлен на взаимодействие с ним. Пользователи могут просматривать дерево последнего исходного кода, видеть, кто вносит изменения, и «наблюдать» за обновлением проекта, когда кто-то загружает новый код. Можно также просматривать ответвления кода и узнать, подойдут ли заплатки к основному древу. Очень помогают полезные экранные снимки и руководства, содержащие команды и объясняющие, как управлять репозиториями и устранять проблемы; они разделены по категориям для разного уровня пользователей (Начинающий – Beginner, Средний – Intermediate и Продвинутый – Advanced). Есть даже примитивненький проект “Hello World”, его можно применять для тестирования. В целом, интерфейс хороший и профессиональный, и делает исходный код приоритетом – хороший дизайн для совместных проектов.

Контроль версий. Управление изменениями.

В некоторых проектах, особенно с малым количеством участников, использование системы контроля версий выглядит перебором. Но это хороший способ отслеживать даже минимальные изменения в древе кода и в экстренном случае вернуться к рабочей версии.
По умолчанию SourceForge активирует доступ Git для проектов, но через панель Admin можно также активировать Mercurial и Subversion, если вы предпочитаете их. Очень удобно, что web-интерфейс позволяет генерировать команды
оболочки для доступа к репозиториям Git по различным протоколам (например, SSH и HTTPS), и внесенные коды можно просматривать через сайт. BerliOS на шаг обогнал соперников, предлагая поддержку CVS в дополнение к трем имеющимся в SourceForge – она активируется флажками в разделе Administration на сайте. Нас особенно порадовало, что BerliOS предлагает разные способы просмотра древа исходного кода через сеть – например, ViewCV и WebSVN для репозиториев Subversion и GitWeb и CGit для репозиториев Git. Если у вас возникли трудности с одним интерфейсом, можете переключиться на другой.
В GitHub просто есть Git, но с привлекательным web-интерфейсом для просмотра репозиториев (включая файлы исходного кода с выделением синтаксиса). В Google Code тоже Git, плюс Mercurial и Subversion в качестве опций и незатейливый web-браузер кода; a Savannah предлагает все три эти опции вместе с GNU Arch (но вам придется порыться по документам, чтобы его настроить).