По мотивам
Предпосылки
в августе прошлого года один человек которого я очень уважаю вернулся из армии, в которой скажем так ситуация была такова что можно было и не вернутся, навел меня на мысль о том что планы это очень круто, но жизнь может их изменить самым координальным образом.
в октябре прошлого года другой человек которого я очень уважаю умер. Внезапно. Оставив после себя самую лучшую заметку о холиварах в OpenSource https://github.com/awa15/SadMood/blob/master/Есть%20ли%20тесты.md
Проблематика
по состоянию на 2017 год сложилась парадоксальная ситуация
- в xUnit4 и vb1 накопилось огромное количество ишузов.
- сборка xUnit шла нерегулярно
- контрибьютинг в vb был болью
Сами продукта xUnit и vanessaBehavior были стабильны и активно использовались пользователями и эволюционно развивались, но содержали в себе родовые травмы.
Технический долг в xUnit составляет около 180 человекодней, в vb - около 290 дней. И не уменьшался.
Точка кипения
в ноябре 2017 года нам (в Пуле) наконец-то удалось заключить первый контракт на поддержку с SLA по OpenSource инструментарию - и есть первые результаты: сроки реакции и т.д… В марте этого года возник второй контракт. Можно кстати поздравить - раньше движуха в openSource субсидировалась из другой зоны, а теперь субсидии целевые.
Стало понятно: 180-290 человекодней технического долга это очень много - техническая поддержка таких продуктов будет золотой.
Дополнительно
- выход EDT и его развитие хотя он еще сырой в перспективе потребуют быстрой доработки и xUnit и VB - учитывая количество дней технического долга это будет сделать невозможно
- на проектах по имплементации инженерных практик используются оба продукта и VB и Xunit - очень неудобно одновременно дорабатывать оба репозитория
- в VSTS расширении (Vanessa Tools for VSTS) используются оба продукта и VB и Xunit - очень неудобно одновременно дорабатывать оба репозитория
Выводы
- жизнь коротка - 400+ дней технического долга надо успеть отдать
- архитектурные проблемы необходимо решать - а не только ишузы закрывать и кнопочки добавлять
- когда клиентов по поддержке станет больше чем 2 - они этого бардака не поймут и предъявят обоснованные претензии
Решение
- донести позицию публично
- сгруппировать vb+xunit в отдельном репозитории ADD
- сделать инструкию для удобного контрибьютинга
- отрефакторить ядро vb и вычленить функциональность в модули (как в xUnit4)
- обеспечить обратную совместимость фич и тестов
- презентовать на Хакатоне https://isthisdesign.org/shedule#day1
Лицензия
- лицензию стоит изменить с Apache на улучшенную MPL по причинам
- в oscript.io применяется MPL - нужно привести к единым стандартам все репозитории где есть распространяемый исходный код. MPL накладывает условие нераспространение с закрытыми исходными кодами
- в xUnit применена apache, в Vanessa Behavior - bsd v3 - их объединение даёт MPL
MPL также открытая лицензия - ничего особо не меняется, просто наводится порядок.