Maintainer i sistemit të menaxhimit të versioneve pati e punës për përkthimin e projektit nga Python 2 në Python 3. Megjithëse përpjekjet e para për portimin u ndërmorën që në vitin 2008, dhe në mënyrë të detyruar adaptimi për punën me Python 3 filloi në vitin 2015, mundësia e plotë për t'u përdorur Python 3 u realizua vetëm në degën e fundit Mercurial 5.2.
Parashikimet për stabilitetin e portit për Python 3 janë të pakënaqshme. Në veçanti, supozohet se për disa vjet në kod do të shfaqen gabime rastësore, pasi testet nuk mbulojnë 100% të bazës së kodit, dhe shumë probleme janë të pa dukshme gjatë analizës statike dhe shfaqen vetëm gjatë ekzekutimit. Për më tepër, shumë shtesa dhe zgjerime të jashtme mbeten të pa përkthyera në Python 3.
Duke pasur parasysh se gjatë portimit u mor vendimi për të përshtatur gradualisht kodin në Python 3, duke mbajtur mbështetje për Python 2, kodi u mbush me një sërë hack-ësh për të përputhur Python 2 dhe 3, të cilat pas ndërprerjes së mbështetjes për Python 2 do të duhet të pastrohen.
Duke komentuar situatën me Python 3, maintainer i Mercurial mendon se vendimi për të promovuar përmbysjen e përputhshmërisë Python 3 dhe për ta imponuar atë si një gjuhë më të saktë, në mungesë të përmirësimeve revolucionare aktuale për zhvilluesit, ishte një gabim i madh, që i shkaktoi dëm të madh komunitetit dhe është një shembull i se si nuk duhet vepruar nga projektet e mëdha. Në vend që të rritet gradualisht funksionaliteti dhe të ofrohet mundësia për përshtatje inkrementale të aplikacioneve, me lëshimin e Python 3, zhvilluesit u detyruan të shkruanin përsëri kodin dhe të shpenzonin burime për të mbajtur degë të ndara për Python 2 dhe Python 3. Vetëm shtatë vjet pas lëshimit të Python 3.0, në Python 3.5 u realizuan mundësitë që lejuan të zbuteshin procesi i kalimit dhe të sigurohej puna e një baze kodi me Python 2 dhe Python 3.
Burimi: opennet.ru
