Это может быть моей личной причудой, но мне нравится держать код в актуальных проектах в актуальном состоянии - включая библиотеки / фреймворки, которые они используют. Отчасти это то, что я считаю, что веб-приложение более безопасно, если оно полностью исправлено и обновлено. Частично это просто прикосновение навязчивой компульсивности с моей стороны.
За последние семь месяцев мы сделали большую переписку нашего программного обеспечения. Мы отбросили фреймворк Xaraya, который был медленным и практически мертвым как продукт, и преобразовали в Cake PHP. (Мы выбрали Cake, потому что он дал нам возможность очень быстро переписать наше программное обеспечение и достаточно повысить производительность по сравнению с Xaraya, чтобы оно того стоило.)
Мы реализовали модульное тестирование с помощью SimpleTest и следовали всем соглашениям об именах файлов и баз данных и т. Д.
Торт сейчас обновляется до 2.0. И, кажется, нет жизнеспособного пути миграции для обновления. Соглашения об именах файлов радикально изменились, и они отказались от SimpleTest в пользу PHPUnit.
Это в значительной степени заставит нас остаться в ветке 1.3, потому что, если нет какого-то инструмента конвертации, будет невозможно обновить Cake, а затем постепенно улучшать наш унаследованный код, чтобы воспользоваться преимуществами новой платформы Cake. , Итак, как обычно, мы собираемся в конечном итоге использовать старый фреймворк в нашем репозитории Subversion и просто исправлять его сами по мере необходимости.
И это то, что заводит меня каждый раз. Многие продукты с открытым исходным кодом не позволяют достаточно просто поддерживать проекты на их основе в актуальном состоянии. Когда разработчики начнут играть с новой блестящей игрушкой, будет сделано несколько критических исправлений для старых веток, но большая часть их внимания будет сосредоточена на новой базе кода.
Как вы справляетесь с радикальными изменениями в проектах с открытым исходным кодом, которые вы используете? И, если вы разрабатываете продукт с открытым исходным кодом, учитываете ли вы пути обновления при разработке новых версий?