Udržovatel systému řízení verzí shrnutí prací na převodu projektu z Pythonu 2 na Python 3. Ačkoliv první pokusy o portování byly podniknuty již v roce 2008, a v urychleném režimu začala adaptace pro práci s Pythonem 3 v roce 2015, plnohodnotná možnost používání Pythonu 3 byla realizována až v poslední větvi Mercurial 5.2.
Očekávání ohledně stability portu pro Python 3 nejsou příznivá. Vzhledem k tomu, že se předpokládá, že v kódu se několik let budou vyskytovat náhodné chyby, jelikož testy nepokryjí 100 % kódové základny a mnohé problémy zůstanou nepovšimnuty při statické analýze a projeví se až během běhu. Kromě toho zůstává mnoho externích doplňků a rozšíření nepřevedených na Python 3.
Jelikož bylo při portování přijato rozhodnutí postupně adaptovat kód pro Python 3, zatímco se zachovala podpora Pythonu 2, kód byl zatížen mnoha hacky pro soužití Pythonu 2 a 3, které bude nutné po ukončení podpory Pythonu 2 odstranit.
Komentující situaci s Pythonem 3, udržovatel Mercurialu považuje rozhodnutí prosazovat lámající kompatibilitu Pythonu 3 a vnucovat ho jako nový, lepší jazyk, bez dostupných průlomových vylepšení pro vývojáře, za velkou chybu, která způsobila značnou škodu komunitě a je příkladem toho, jak se nemají velké projekty chovat. Místo postupného zvyšování funkcionality a poskytování možnosti inkrementální adaptace aplikací, byli vývojáři při vydání Pythonu 3 nuceni přepisovat kód a vynakládat prostředky na udržování oddělených větví pro Python 2 a Python 3. Až sedm let po vydání Pythonu 3.0 byly v Pythonu 3.5 implementovány možnosti, které usnadnily proces přechodu a zajistily funkcionalitu jedné kódové základny s Pythonem 2 a Pythonem 3.
Zdroj: opennet.ru
