Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
Рутинные операции тестирования, сборки и развёртывания заставляют в нервном ожидании толстеть на кофепоинте, а частый релизный цикл создаёт лёгкое головокружение? Чтобы помочь вам сохранить тело подтянутым, а голову светлой, я расскажу об организации и особенностях непрерывной интеграции в Python-проектах на примере популярных инструментов.
Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
Рутинные операции тестирования, сборки и развёртывания заставляют в нервном ожидании толстеть на кофепоинте, а частый релизный цикл создаёт лёгкое головокружение? Чтобы помочь вам сохранить тело подтянутым, а голову светлой, я расскажу об организации и особенностях непрерывной интеграции в Python-проектах на примере популярных инструментов.
Презентация методологии git-flow для стабильной разработки
Текстовая версия: https://medium.com/ruopsdev/git-flow-presentation-b80643390888
Скачать презентацию в формате pptx: https://docs.google.com/presentation/d/1Bgx5GP9ykGYKUnAaD53Y0YIpPpHHSbvT/edit?usp=sharing&ouid=106302903983671723423&rtpof=true&sd=true
Вместе с Алексеем Ашурком мы расскажем о том, как проект «Фламп» релизится по 2n раз в неделю и комфортно себя при этом чувствует:
— Ветки - это хорошо или о переходе с SVN на Git.
— Чем плоха «классическая» модель релизов.
— Что такое модель пофичных релизов, в чём её плюсы и минусы.
— Почему она подходит для веб-сервисов.
— Как идти в ногу со временем или частые деплои.
— Как ловить ошибки и минимизировать их число.
Видео доклада: http://devday.2gis.ru/report/15
«JSSDK: Начало» Когда использовать готовые решения, а когда писать самим. Какие шаги нужно сделать, чтобы ваша работа не оказалась напрасной и принесла пользу окружающим. Все эти нюансы будут рассмотрены на примере внутреннего фреймворка, который возник вследствие необходимости объединения кодовой базы двух проектов.
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...ScrumTrek
Работаете над проектом втроем (вчетвером, впятером, вдесятером и тд) и у вас постоянные конфликты в системе контроля версий? - В спешке пытаетесь собрать проект, но не можете найти рабочую версию, а клиент просит здесь и сейчас? - Процесс тестирования и выпуск новой версии - стресс для вас и вашей команды? Решить эти и другие проблемы поможет git-flow. Вы узнаете, как git-flow связан с процессом непрерывной интеграции, как это поможет быстро доставлять вашим клиентам исправления критических ошибок и как эти изменения автоматически попадут в текущую версию продукта. Приходите, если даже просто интересно, причем тут git и подойдет ли SVN, Hg или TFS?
Enterprise-инфраструктура менеджмента php-пакетов в рамках компанииEvgeny Fomin
Symfoniacs #8 ( 02.06.2016 ) - Алексей Медведев
В своем докладе расскажу, как мы в Альпари разворачивали локальную систему менеджмента пакетов на базе Composer, Packagist и git-фронтенда Gitweb; а также
как работаем с приватными пакетами и почему при сборке наших приложений зависимости никогда не выкачиваются напрямую с github.
Кроме того будет несколько слов о том, что находится под капотом у Packagist, когда, как и зачем его разворачивать у себя в компании, какую магию с ним можно творить,
какие вообще есть альтернативные Composer-репозитории пакетов и в каких случаях их удобно использовать.
Основы Docker. История проекта, OpenContainer Initiative, архитектура, пример композиции контейнеров на примере поискового движка YASEn, используемого для поиска билетов в Aviasales.ru.
Зачем нужен и что такое докер. Чем он отличается от виртуальных машин. Как создать, сохранить и запустить свой докер-контейнер.
Обновленная презентация с шестого 4front митапа в Минске.
Linux Control Groups (Контрольные группы) -- механизм, позволяющий управлять группами процессов в Linux и их ресурсами. Это мощный инструмент о котором знают далеко не все. Презентация дает краткий обзор.
Презентация методологии git-flow для стабильной разработки
Текстовая версия: https://medium.com/ruopsdev/git-flow-presentation-b80643390888
Скачать презентацию в формате pptx: https://docs.google.com/presentation/d/1Bgx5GP9ykGYKUnAaD53Y0YIpPpHHSbvT/edit?usp=sharing&ouid=106302903983671723423&rtpof=true&sd=true
Вместе с Алексеем Ашурком мы расскажем о том, как проект «Фламп» релизится по 2n раз в неделю и комфортно себя при этом чувствует:
— Ветки - это хорошо или о переходе с SVN на Git.
— Чем плоха «классическая» модель релизов.
— Что такое модель пофичных релизов, в чём её плюсы и минусы.
— Почему она подходит для веб-сервисов.
— Как идти в ногу со временем или частые деплои.
— Как ловить ошибки и минимизировать их число.
Видео доклада: http://devday.2gis.ru/report/15
«JSSDK: Начало» Когда использовать готовые решения, а когда писать самим. Какие шаги нужно сделать, чтобы ваша работа не оказалась напрасной и принесла пользу окружающим. Все эти нюансы будут рассмотрены на примере внутреннего фреймворка, который возник вследствие необходимости объединения кодовой базы двух проектов.
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...ScrumTrek
Работаете над проектом втроем (вчетвером, впятером, вдесятером и тд) и у вас постоянные конфликты в системе контроля версий? - В спешке пытаетесь собрать проект, но не можете найти рабочую версию, а клиент просит здесь и сейчас? - Процесс тестирования и выпуск новой версии - стресс для вас и вашей команды? Решить эти и другие проблемы поможет git-flow. Вы узнаете, как git-flow связан с процессом непрерывной интеграции, как это поможет быстро доставлять вашим клиентам исправления критических ошибок и как эти изменения автоматически попадут в текущую версию продукта. Приходите, если даже просто интересно, причем тут git и подойдет ли SVN, Hg или TFS?
Enterprise-инфраструктура менеджмента php-пакетов в рамках компанииEvgeny Fomin
Symfoniacs #8 ( 02.06.2016 ) - Алексей Медведев
В своем докладе расскажу, как мы в Альпари разворачивали локальную систему менеджмента пакетов на базе Composer, Packagist и git-фронтенда Gitweb; а также
как работаем с приватными пакетами и почему при сборке наших приложений зависимости никогда не выкачиваются напрямую с github.
Кроме того будет несколько слов о том, что находится под капотом у Packagist, когда, как и зачем его разворачивать у себя в компании, какую магию с ним можно творить,
какие вообще есть альтернативные Composer-репозитории пакетов и в каких случаях их удобно использовать.
Основы Docker. История проекта, OpenContainer Initiative, архитектура, пример композиции контейнеров на примере поискового движка YASEn, используемого для поиска билетов в Aviasales.ru.
Зачем нужен и что такое докер. Чем он отличается от виртуальных машин. Как создать, сохранить и запустить свой докер-контейнер.
Обновленная презентация с шестого 4front митапа в Минске.
Linux Control Groups (Контрольные группы) -- механизм, позволяющий управлять группами процессов в Linux и их ресурсами. Это мощный инструмент о котором знают далеко не все. Презентация дает краткий обзор.
Никита Шультайс. "Система управления версиями git"Egor Stremousov
Основные тезисы выступления:
- организация репозитория,
- ветвление,
- базовые команды,
- работа в одиночку и в команде.
После выступления прошла бурная дискуссия, обмен опытом и приятное общение с профессионалами.
Гит, несмотря на то, что все им пользуются, напоминает айсберг и огромная часть его функционала загадочна для большинства разработчиков. Я попытаюсь дать обзор правильных практик работы с гитом в применении к Друпал-проектам, осветить некоторые тёмные, но интересные закоулки, предостеречь от ошибок, которые сам совершал.
Небольшое введение в систему контроля версий Git и началу работы с ней, в частности регистрация на сервисе Bitbucket, настройка среды Visul Studio и приложение Source Tree для удобной работы с репозиториями на локальном компьютере.
Платформа: Windows.
Слайды с одноименного доклада на IT Global Meetup 2015, прошедшего в Санкт-Петербурге 6 июля.
Тезисы:
* Контроль за качеством кода - это необходимая процедура при работе нескольких человек в одной команде над продуктом из более чем сотни строк. Зачем это нужно? Каждый пишет код по-своему, ожидает понимания от остальных участников команды, но в жизни этого не происходит.
* Недостатки разнобоя в стиле написанного кода: увеличивается время ревью, усложняется внесение правок кем-либо кроме автора кода, увеличивается вероятность пропустить глазами ошибку.
* Основные шаги к решению этой проблемы: создание единого свода правил по оформлению кода (style guide), согласование процедуры разрешения конфликтных ситуаций относительно разночтений этих правил, устранение человеческого фактора в процессе оценки через автоматизацию.
* Что из экосистемы Питона может помочь? При составлении style guide можно взять за основу PEP8 и PEP257, дополнив их принятыми в команде конвенциями (какие кавычки использовать для строк и докстрингов, и т.д. и т.п.). Автоматизировать проверки можно как с помощью уже готовых утилит (pep8, flake8, pylint), так и написав свои с помощью встроенного в язык инструментария (модули ast, tokenizer, сторонние библиотеки для работы с кодом).
* Где производить проверки? Есть несколько возможных этапов:
- IDE разработчика
- Локальная VCS (working copy)
- Общая VCS
- Сервер Continous Integration.
В идеале проверки должны быть на каждом этапе, но при этом как можно меньше затруднять обычный рабочий процесс. Здесь стоит задуматься, какая комбинация из этих этапов лучше всего впишется в стиль разработчки команды.
* Если же нет достаточных ресурсов или проект находится
Как не подавиться большим старым проектомAndrey Karpov
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019corehard_by
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
The document discusses MODX's open source contributions including tools like Quickstart Buttons and Scheduler. It launched MODX.today and a Slack channel for MODX. Premium extras include Redactor, a rich text editor, SimpleAB, MoreGallery, and ContentBlocks. ContentBlocks allows for multi-column modular content and full control over output, reducing the need for templates. A new e-commerce solution called Commerce is coming in 2016 along with free development licenses for all extras.
This document discusses MODX, an open source content management system. It announces that MODX 3 will be released in Q1 2016 and MODX Next will be released in Q3 2016. It lists several open job positions and ways for people to get involved with MODX, such as translating addons, helping with design, or becoming a developer.
9. Gitify
Основная задача Gitify – это собрать элементы действующего сайта в
понятный человеку формат, сохранить в файлы и точно так же
восстановить сайт из файлов, но уже в другом месте (на боевом
сервере, например). Важное в этом процессе — читаемый формат и то,
что версиями этих файлов можно управлять посредством git.
9
11. Историческая справка
• Первый коммит 1 июня 2014 года
• Анонс на MODX Weekend в сентябре 2014
• Документация на русском летом 2015
• 11 минорных версий, стабильная 1.0 на подходе
11
12. gitify init
Установка
Для начала нужно установить Composer – менеджер пакетов для PHP.
git clone https://github.com/modmore/Gitify.git gitify
cd gitify
compser install
chmod +x Gitify
Можно настроить alias в .bashrc или .bash_profile
01.
02.
03.
04.
05.
12
13. Настройка и конфигурация
Вся конфигурация сайта хранится в файле .gitify в формате YAML.
data_directory: _data/
data:
templates:
class: modTemplate
primary: templatename
extension: .html
01.
02.
03.
04.
05.
06.
13
18. Как быть с одинаковыми ID?
Объект, ID которого уже существует, временно сохраняется в памяти.
После полного завершения остальной сборки, включая очистку, gitify
пытается разрешить конфликт. В случае перемещения или
переименования объекта, после очистки "старый" объект будет удален,
а новый будет вставлен правильно. Если же конфликт на самом деле
есть, сохраненный в памяти объект будет вставлен с новым ID и для
него будет запущена команда gitify extract .
18
19. Автоочистка
Удаляются все ресурсы, которым на найдено соответствие в файлах.
Очистку в момент сборки можно отключить передав параметр --no-
cleanup .
19
20. Где применять?
• Работа над проектом из IDE + code review
• Работа над проектом в команде: N*dev, M*stage, production
• Установка и обновление MODX
• Установка и обновление пакетов
• Создание резервных копий через backup/restore или через git
20
23. Планы по развитию
• Доработать управление пакетами: установка локальных, добавить
параметр --save, добавить сохранение в конфигурацию уже
установленных пакетов
• Доработать существующие функции и исправить баги
• Добавить работу со схемами БД для более аккуратной работы с
данными
• Улучшить документацию
23