Решение "" - платное коммерческое решение на базе бесплатной платформы "", обладающее не только эксклюзивным оформлением и интересной историей, помогающей продавать, но это ещё и интересный эксклюзивный функционал, а так же особый процесс сборки дистрибутивов, позволяющий избавиться от возможных ошибок и делающий продукт максимально гибким.
В этой статье мы слегка приоткроем дверь на производственную кухню, оказаться же на ней в живую (т.е. получить доступ к нашему производственному циклу) смогут партнёры, активно продающие решение. Это ещё один стимул (помимо партнёрских скидок и самого решения) для того, чтобы сотрудничать с нами.
Итак, на момент написания статьи проект живёт в приватном репозитории на BitBucket и его главная страница выглядит следующим образом:
Как видим, уже на главной странице репозитория (фактически в README.md) имеется полное описание продукта, репозитория, а так же краткая справка по документации (которая будет в дальнейшем постоянно пополняться в рамках цикла "Маленькие Хитрости"
.
Обратите внимание на структуру репозитория, которая имеет 4 основных ветки:

Приношу извинения всем апологетам свободного программного обеспечения и маководам - как некоторые знают, я заядлый виндузятник...
На картинке выше вы можете обратить внимание, что репозитории разделены на 2 группы:
Во-первых, это позволяет не запутаться. Нет нужды переключаться между ветками. Ты всегда знаешь где что ДОЛЖНО находиться и строишь свою работу в соответствии с этим.
Во-вторых, это позволяет в любой момент времени обратиться к соответствующему направлению без риска утери данных в другом. При необходимости проверки бага в стабильной ветке UTF-8 сайта процесс сборки дистрибутива в ветке дистрибутива просто останавливается. Ничто никуда не теряется.
Для достижения максимального порядка в этих 4 ветках построен и рабочий процесс, наиболее наглядно который иллюстрирует схема коммитов/веток в Bitbucket:

Взглянем на схему цикла чуть внимательнее:

Производственный цикл по шагам
Шаг 1 - Альфа Версия
Разработка начинается в веб-окружении на сайте в Win-1251 кодировке. Это связано с требованием Маркета к кодировке проекта. Весь новый функционал реализуется на сайте, как на обычном клиентском ресурсе (компоненты, шаблон, файлы публичной части, инфоблоки, веб-формы). Никаких Мастеров и Модулей установки! Естественно разработка по возможности ведётся на идентичном окружении, поэтому зачастую начало производственного цикла приходится и на создание нового веб-окружения! Чтобы ID инфоблоков и веб-форм (а так же все остальные критичные данные, которые на реальном проекте заменит клиент) были идентичны и не влияли на историю репозитория.
В результате мы получаем коммит v #Номер_Релиза# ALFA в ветку site_1251.
Это полноценный функционал! Но он не содержит модуля установки!
Шаг 2 - Модуль
Фактически это то, что лежит в папке /bitrix/modules/denisoft.selexcellence/Модуль собирается вручную. Другой способ лично мне не известен.Тестируется как правило рядом на отдельном веб-окружении в кодировке Win-1251 до тех пор пока результат работы мастера не приведёт к созданию сайта идентичного шагу 1 (допускается только отклонение в папке /bitrix/wizards/, поскольку на шаге 1 мастер установки не создавался, а так же другие ID инфоблоков/веб-форм).
Поскольку дистрибутив с недавних пор лежит в корне репозитория, то его можно подключать в качестве субмодуля. Важно помнить о кодировке! Ни в коем случае нельзя подключать эту ветку на проектах в UTF-8 кодировке! Помните, что submodule - для опытных администраторов и разработчиков!
В результате мы получаем коммит v #Номер_Релиза# в ветку master.
Шаг 3 - сайт в Win1251
Успешным завершением предыдущей стадии фактически является обновление сайта в веб-окружении до стабильной версии обновление (напомним, что в результате шага 1 мы уже получили все компоненты, шаблоны и файлы публички, а теперь добавили мастер установки и модуль).
В результате мы получаем коммит v #Номер_Релиза# в ветку site_1251.
Шаг 4 - Дистрибутив
Возможно я вновь вызову бурю негодования. На сей раз сторонников замечательного решения Дениса Шаромова для создания дистрибутива из модуля.
Дело в том, что система контроля версий GIT показывает нам чем отличается предыдущая версия модуля от нынешней. Фактически остаётся только взять эти файлы и метки master и сложить в ветку distr. Дистрибутивы лежат не в корне папки, а в папке с именем версии, например 1.0.3.
Это сделано потому, что мы просто запаковываем потом этот архив и отправляем в маркет как есть. Увы, система контроля версий теряет свою основную роль в связи с этим и просто превращается в хранилище версий. Однако, это не страшно, поскольку дистрибутивы в чистом виде не нужны никому кроме мастера.
В результате мы получаем коммит v #Номер_Релиза# в ветку distr.
Шаг 5 - сайт в UTF-8
Фактически это просто веб окружение в которое мы ставим свежую версию модуля. Поскольку из платные решения из маркета можно устанавливать только на коммерческие ключи (даже с купоном решения) и нельзя на DEMO установки, то мы обновляем до альфа версии онлайн площадку, после чего копируем оттуда модуль и разворачиваем решение.
Решение проходит ряд проверок, аналогичных тестам веб-окружению Win-1251 в целях поиска багов и недоделок. После чего коммитится полный слепок сайта: файлы публичной части, шаблон, модуль, мастер установки (мы стараемся приводить ID к единому виду и коммитить свеже развёрнутое по новому кругу решение, чтобы эти ID не смущали нас и истории GIT).
В результате мы получаем коммит v #Номер_Релиза# в ветку site_utf8.
На этом проозводственный цикл завершается, а свежая версия решения "Лендинг Косметики и Парфюмерии" переводится из альфа версии в стабильную.
Приятные бонусы
Трекер задач - Issue

Замечательный инструмент Issue уже многим знаком. В частности он используется для сбора пожеланий по доработке решения "Простой Адаптивный Лединг" в моём репозитории на GitHub - .
Однако в случае с коммерческим решением мы готовы дать партнёрам немного больше, чем просто список возможно реализуемых задач. Активным партнёрам, которые продают наше решение мы готовы дать доступ к репозиторию с целью постановки нам ЗАДАЧ по доработке и развитию решения.
Как можно заметить на примере все задачи были поставлены мною, хотя основание для некоторых из них стала обратная связь с вами, коллеги! Фактически приоритет задач и сроки их реализации (а так же то в каких релизах будет реализовано то или иное issue) определялось произвольно нами. У вас есть неплохая возможность повлиять на это.
Мы понимаем, что те кто продают, ближе к реальным потребностям клиентов и готовы идти им навстречу, чтобы совместно развивать решение и увеличивать продажи.
Кроме того, вы первыми узнаете о грядущих обновлениях и планах, сможете спланировать свою работу, сформировав предложение для новых клиентов о покупке или для старых о внедрении и кастомизации функционала.
Доступ к репозиторию для партнёров
Мы прекрасно отдаём себе отчёт в том, что имея доступ к исходным кодам можно скопировать решение на такое количество сайтов, на какое пожелаете.
Так же мы прекрасно понимаем, что купив лендинг для 1 сайта можно клонировать его на любое количество при желании и должной сноровке.
Однако, мы так же понимаем какие преимущества даёт система контроля версий и набор центральных приватных репозиториев для развития проекта! Именно поэтому мы создали ветки для UTF-8 и WIN-1251 сайтов! У нас нет объективной потребности в контроле версий площадок веб-окружения для тестирования.
Но у нас есть потребность в контроле версий типовых проектов для того чтобы вы могли этим воспользоваться. Чтобы вы могли спокойно изменять страницы, кастомизировать шаблоны, компоненты, мастер и даже сам модуль по своему желанию! Для того, чтобы вы не боялись обновиться через систему обновлений 1С-Битрикс! Для того, чтобы вы могли посмотреть чем отличается ваш нынешний сайт (не только модуль, но сайт целиком, включая публичную часть) и при необходимости обновиться, совместив наши обновления со своими правками!
Ну и конечно для того, чтобы вы при желании смогли использовать этот центральный канал, этот концентратор информации для публикации своих правок:
В этой статье мы слегка приоткроем дверь на производственную кухню, оказаться же на ней в живую (т.е. получить доступ к нашему производственному циклу) смогут партнёры, активно продающие решение. Это ещё один стимул (помимо партнёрских скидок и самого решения) для того, чтобы сотрудничать с нами.
Итак, на момент написания статьи проект живёт в приватном репозитории на BitBucket и его главная страница выглядит следующим образом:
Как видим, уже на главной странице репозитория (фактически в README.md) имеется полное описание продукта, репозитория, а так же краткая справка по документации (которая будет в дальнейшем постоянно пополняться в рамках цикла "Маленькие Хитрости"
.Обратите внимание на структуру репозитория, которая имеет 4 основных ветки:
- Мастер Установки - полноценный Модуль с мастером установки в Win1251 кодировке
- Архив Дистрибутивов - набор дистрибутивов, который для загрузки в Маркет
- Пример сайта в кодировке Win-1251 - готовый сайт (публичная часть, модуль, мастер, компоненты, шаблон)
- Пример сайта в кодировке UTF-8 - готовый сайт (публичная часть, модуль, мастер, компоненты, шаблон)

Приношу извинения всем апологетам свободного программного обеспечения и маководам - как некоторые знают, я заядлый виндузятник...
На картинке выше вы можете обратить внимание, что репозитории разделены на 2 группы:
- сборки:
- дистрибутивы
- полный модуль
- дистрибутивы
- веб-окружения:
- сайт в Win-1251
- сайт в UTF-8
- сайт в Win-1251
Во-первых, это позволяет не запутаться. Нет нужды переключаться между ветками. Ты всегда знаешь где что ДОЛЖНО находиться и строишь свою работу в соответствии с этим.
Во-вторых, это позволяет в любой момент времени обратиться к соответствующему направлению без риска утери данных в другом. При необходимости проверки бага в стабильной ветке UTF-8 сайта процесс сборки дистрибутива в ветке дистрибутива просто останавливается. Ничто никуда не теряется.
Для достижения максимального порядка в этих 4 ветках построен и рабочий процесс, наиболее наглядно который иллюстрирует схема коммитов/веток в Bitbucket:

Взглянем на схему цикла чуть внимательнее:

Производственный цикл по шагам
Шаг 1 - Альфа Версия
Разработка начинается в веб-окружении на сайте в Win-1251 кодировке. Это связано с требованием Маркета к кодировке проекта. Весь новый функционал реализуется на сайте, как на обычном клиентском ресурсе (компоненты, шаблон, файлы публичной части, инфоблоки, веб-формы). Никаких Мастеров и Модулей установки! Естественно разработка по возможности ведётся на идентичном окружении, поэтому зачастую начало производственного цикла приходится и на создание нового веб-окружения! Чтобы ID инфоблоков и веб-форм (а так же все остальные критичные данные, которые на реальном проекте заменит клиент) были идентичны и не влияли на историю репозитория.
В результате мы получаем коммит v #Номер_Релиза# ALFA в ветку site_1251.
Это полноценный функционал! Но он не содержит модуля установки!
Шаг 2 - Модуль
Фактически это то, что лежит в папке /bitrix/modules/denisoft.selexcellence/Модуль собирается вручную. Другой способ лично мне не известен.Тестируется как правило рядом на отдельном веб-окружении в кодировке Win-1251 до тех пор пока результат работы мастера не приведёт к созданию сайта идентичного шагу 1 (допускается только отклонение в папке /bitrix/wizards/, поскольку на шаге 1 мастер установки не создавался, а так же другие ID инфоблоков/веб-форм).
Поскольку дистрибутив с недавних пор лежит в корне репозитория, то его можно подключать в качестве субмодуля. Важно помнить о кодировке! Ни в коем случае нельзя подключать эту ветку на проектах в UTF-8 кодировке! Помните, что submodule - для опытных администраторов и разработчиков!
В результате мы получаем коммит v #Номер_Релиза# в ветку master.
Шаг 3 - сайт в Win1251
Успешным завершением предыдущей стадии фактически является обновление сайта в веб-окружении до стабильной версии обновление (напомним, что в результате шага 1 мы уже получили все компоненты, шаблоны и файлы публички, а теперь добавили мастер установки и модуль).
В результате мы получаем коммит v #Номер_Релиза# в ветку site_1251.
Шаг 4 - Дистрибутив
Возможно я вновь вызову бурю негодования. На сей раз сторонников замечательного решения Дениса Шаромова для создания дистрибутива из модуля.
Дело в том, что система контроля версий GIT показывает нам чем отличается предыдущая версия модуля от нынешней. Фактически остаётся только взять эти файлы и метки master и сложить в ветку distr. Дистрибутивы лежат не в корне папки, а в папке с именем версии, например 1.0.3.
Это сделано потому, что мы просто запаковываем потом этот архив и отправляем в маркет как есть. Увы, система контроля версий теряет свою основную роль в связи с этим и просто превращается в хранилище версий. Однако, это не страшно, поскольку дистрибутивы в чистом виде не нужны никому кроме мастера.
В результате мы получаем коммит v #Номер_Релиза# в ветку distr.
Шаг 5 - сайт в UTF-8
Фактически это просто веб окружение в которое мы ставим свежую версию модуля. Поскольку из платные решения из маркета можно устанавливать только на коммерческие ключи (даже с купоном решения) и нельзя на DEMO установки, то мы обновляем до альфа версии онлайн площадку, после чего копируем оттуда модуль и разворачиваем решение.
Решение проходит ряд проверок, аналогичных тестам веб-окружению Win-1251 в целях поиска багов и недоделок. После чего коммитится полный слепок сайта: файлы публичной части, шаблон, модуль, мастер установки (мы стараемся приводить ID к единому виду и коммитить свеже развёрнутое по новому кругу решение, чтобы эти ID не смущали нас и истории GIT).
В результате мы получаем коммит v #Номер_Релиза# в ветку site_utf8.
На этом проозводственный цикл завершается, а свежая версия решения "Лендинг Косметики и Парфюмерии" переводится из альфа версии в стабильную.
Приятные бонусы
Трекер задач - Issue

Замечательный инструмент Issue уже многим знаком. В частности он используется для сбора пожеланий по доработке решения "Простой Адаптивный Лединг" в моём репозитории на GitHub - .
Однако в случае с коммерческим решением мы готовы дать партнёрам немного больше, чем просто список возможно реализуемых задач. Активным партнёрам, которые продают наше решение мы готовы дать доступ к репозиторию с целью постановки нам ЗАДАЧ по доработке и развитию решения.
Как можно заметить на примере все задачи были поставлены мною, хотя основание для некоторых из них стала обратная связь с вами, коллеги! Фактически приоритет задач и сроки их реализации (а так же то в каких релизах будет реализовано то или иное issue) определялось произвольно нами. У вас есть неплохая возможность повлиять на это.
Мы понимаем, что те кто продают, ближе к реальным потребностям клиентов и готовы идти им навстречу, чтобы совместно развивать решение и увеличивать продажи.
Кроме того, вы первыми узнаете о грядущих обновлениях и планах, сможете спланировать свою работу, сформировав предложение для новых клиентов о покупке или для старых о внедрении и кастомизации функционала.
Доступ к репозиторию для партнёров
Мы прекрасно отдаём себе отчёт в том, что имея доступ к исходным кодам можно скопировать решение на такое количество сайтов, на какое пожелаете.
Так же мы прекрасно понимаем, что купив лендинг для 1 сайта можно клонировать его на любое количество при желании и должной сноровке.
Однако, мы так же понимаем какие преимущества даёт система контроля версий и набор центральных приватных репозиториев для развития проекта! Именно поэтому мы создали ветки для UTF-8 и WIN-1251 сайтов! У нас нет объективной потребности в контроле версий площадок веб-окружения для тестирования.
Но у нас есть потребность в контроле версий типовых проектов для того чтобы вы могли этим воспользоваться. Чтобы вы могли спокойно изменять страницы, кастомизировать шаблоны, компоненты, мастер и даже сам модуль по своему желанию! Для того, чтобы вы не боялись обновиться через систему обновлений 1С-Битрикс! Для того, чтобы вы могли посмотреть чем отличается ваш нынешний сайт (не только модуль, но сайт целиком, включая публичную часть) и при необходимости обновиться, совместив наши обновления со своими правками!
Ну и конечно для того, чтобы вы при желании смогли использовать этот центральный канал, этот концентратор информации для публикации своих правок:
- Вы купили N лицензий, улучшили какой-то функционал и хотите накатить его на остальные свои проекты - система контроля версий GIT и наш с вами общий репозиторий в bitbucket позволят сделать это, избежав потенциальных ошибок из-за человеческого фактора.
- Вы решили увековечить своё имя и поделиться улучшением (исправлением ошибки) - Pull request поможет нам!