Поддръжник на системата за управление на версии обобщи от работата по прехвърлянето на проекта от Python 2 на Python 3. Въпреки че първите опити за портване бяха направени още през 2008 г., а адаптацията за работа с Python 3 започна в ускорен режим през 2015 г., пълната поддръжка на Python 3 беше реализирана само в последната версия на Mercurial 5.2.
Прогнозите за стабилността на порта за Python 3 са неутешителни. По-специално, предполага се, че в течение на няколко години в кода ще се появяват случайни грешки, тъй като тестовете не покриват 100% от кодовата база, а много проблеми остават незабелязани при статичен анализ и се проявяват само по време на изпълнение. Освен това, много странични добавки и разширения не са преведени на Python 3.
Тъй като при портването беше взето решение постепенно да се адаптира кодът за Python 3, запазвайки поддръжката за Python 2, кодът натрупа множество хакове за съвместимост между Python 2 и 3, които след прекратяване на поддръжката на Python 2 ще трябва да бъдат премахнати.
Коментари по ситуацията с Python 3 от поддръжника на Mercurial показват, че решението за насилствено преминаване към несъвместимата версия Python 3, при отсъствие на значителни подобрения от значение за разработчиците, беше голяма грешка, която нанесе сериозна вреда на общността и е пример за това как не трябва да действат големите проекти. Вместо да се увеличава постепенно функционалността и да се осигурява възможност за инкрементална адаптация на приложенията, излизането на Python 3 накара разработчиците да пренапишат кода и да инвестират ресурси в поддържането на отделни версии за Python 2 и Python 3. Само седем години след пускането на Python 3.0, в Python 3.5 бяха реализирани възможности, които улесниха прехода и осигуриха работа с една кодова база за Python 2 и Python 3.
Източник: opennet.ru
