zlacker

[parent] [thread] 3 comments
1. LexiMa+(OP)[view] [source] 2025-11-19 22:14:49
I will never forget Mercurial's postmortem on their experience with the Python 3 transition. They had very few kind words to say about the process.

https://gregoryszorc.com/blog/2020/01/13/mercurial's-journey...

Part of me even wonders if the transition had any role to play in why Mercurial gradually lost whatever foothold it had in the DVCS ecosystem.

replies(3): >>tacker+U8 >>nyrikk+gm >>defen+oL
2. tacker+U8[view] [source] 2025-11-19 23:13:38
>>LexiMa+(OP)
Very interesting article.

I too was rather upset about the Python 2->3 shenanigans and I was working on much smaller projects.

3. nyrikk+gm[view] [source] 2025-11-20 00:58:42
>>LexiMa+(OP)
For the crowd I ran in the lack of real branching and the need to use DirState or Queues for selective commits made Mercurial feel too much like p4, where git felt so freeing, especially with spikes etc...which would be forever in the repo with Mercurial etc...

> This ground rule meant that a mass insertion of b'' prefixes everywhere was not desirable, as that would require developers to think about whether a type was a bytes or str, a distinction they didn't have to worry about on Python 2 because we practically never used the Unicode-based string type in Mercurial.

> In addition, there were some other practical issues with doing a bulk b'' prefix insertion. One was that the added b characters would cause a lot of lines to grow beyond our length limits and we'd have to reformat code.

I wonder if their line length was arbitrarily 80chars or some silly serial terminal like limit.

> It is now 2020 and Python 2 support is now officially dead from the perspective of the Python language maintainers. Linux distributions are starting to rip out Python 2. Packages are dropping Python 2 support in new versions. The world is moving to Python 3 only. But Mercurial still officially supports Python 2

To me it doesn't matter what pain points there were between 2/3, or that it was even python.

That is just the classic way any modernization effort fails. IMHO those failures are almost completely tool agnostic and are cultural failures.

4. defen+oL[view] [source] 2025-11-20 04:35:22
>>LexiMa+(OP)
Hindsight is 20/20 but that article definitely makes me question the technical leadership of the project. They chose to write a source transformer (which introduced its own set of issues) rather than update string literals to use b'' syntax because they didn't want contributors to have to learn how to use python 3? And because they didn't want lines to be too long? And because it would break change attribution for the lines in question? None of those reasons sound compelling to me at all, but the author presents them as the correct decision.
[go to top]