Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
53 lines (37 sloc) 5.96 KB

For contributors

Текст от 20 сентября 2012.

Содержание репозитория

src/csscomb.php — сама библиотека с алгоритмом сортировки + дефолтный список сортировки

src/cli.php — обвязка для CLI-версии

src/plugins/ — исходный код плагинов. Там нет библиотеки CSScomb, которая копируется туда при построении проекта (см. построение проекта). Это не готовые к использованию плагины, это исходники.

www/ — код CSScomb.com. Оттуда, так же как и из плагинов, откушена библиотека CSScomb, чтобы избежать копипасты. Для работоспособности требуется построение проекта.

build/ — готовые к использованию версии CSScomb (плагины, CLI). Содержимое в этой директории получается в результате построения проекта.

Построение проекта

Если вы совсем не знакомы с make, то вот всё, что вам нужно знать: make позволяет избавиться от copy-paste кода CSScomb + позволяет быстро и легко пропихивать изменения в CSScomb во все использующие его сущности: плагины, сайт и т.д.

Для построения проекта нужно иметь установленный make. На OS X 10.8, например, его нет по умолчанию, но он доступен в наборе Command Line Tools.

Код ядра CSScomb находится в src/csscomb.php. Его нужно положить во все плагины, в CLI-версию и веб. Чтобы не делать это руками, я использую make.

После чекаута репозитория нужно выполнить в корне репозитория команду: make

Автоматически соберутся:

  • CLI-версия: build/cli/
  • Плагины: build/plugin/
  • Сайт: www/
    • обновится ядро CSScomb,
    • причешутся, пожмутся и сконкатенируются CSS и JS файлы (при помощи YUI Compressor и самой CSScomb). Результат положится в _css/ и _js/ соответственно. Подробнее см. цель buildWww в Makefile.

Как править ядро

  1. Если проблема связана с сортировкой, нужно выделить минимальный участок кода, на котором воспроизводится проблема. Пойти в Issues и посмотреть нет ли там открытого таска на эту тему. Или закрытого. Создать/переоткрыть таск. Желательно с англоязычным описанием, чтобы смысл был доступен всем.
  2. Форкнуть проект.
  3. Счекаутить.
  4. Построить проект. Вам потребуется файл yuicompressor-2.4.7.jar из YUICcompressor. Он должен лежать в корне репозитория, на одном уровне с Makefile.
  5. Добавить падающий тест в www/tests/cases.php.
  6. Внести правки в src/csscomb.php.
  7. Построить проект: выполнить команду make в корне репозитория. При этом все изменения в библиотеке попадут во все нужные места.
  8. Убедится, что тесты, которые раньше проходились, не падают, и что свежий тест, из-за которого вся затея, тоже проходится успешно.
  9. Закоммитить с упоминанием номера таска в комментарии к коммиту. Например: 'Fix issue #33: support LESS variables on test #test-id'.
  10. Отправить Pull request.

Цикл разработки

В последнее время я выработал следующий цикл разработки:

  • Все коммиты связываются с Issue.
  • Вся публичная деятельность только на английском.
  • Новые версии планируются через Milestones. Каждая следующая формируется из набора наиболее актуальных открытых Issue. Название Milestone содержит номер мажорной и минорной версии.
  • При закрытии очередного Milestone создается tag в git.
Something went wrong with that request. Please try again.