Operations 5 min read

Why PyPy Switched from Mercurial to GitHub—and What It Means for Open‑Source Projects

The PyPy team migrated its main codebase and issue tracker from Mercurial to GitHub, citing better visibility, CI integration, and community workflow compatibility, while reflecting on past migrations and the trade‑offs between Mercurial and Git for open‑source development.

21CTO
21CTO
21CTO
Why PyPy Switched from Mercurial to GitHub—and What It Means for Open‑Source Projects

Recently the PyPy team moved its main code repository and issue tracker from Mercurial to Microsoft‑owned GitHub.

PyPy is a Python implementation created by developers to enable more flexible and experimental hacking of Python; compared with the CPython interpreter, it aims to be more adaptable and easier to trim for various projects.

In typical workloads PyPy runs about 4.2 times faster than CPython.

Core contributor Matti Picus wrote in his blog that they still consider Mercurial a superior version‑control system because of its named‑branch model and user interface.

Nevertheless, he added that open‑source has become synonymous with GitHub, and the PyPy project is too small to change that reality.

Reluctant double migration

This is not the first move: in 2010 the project placed its code on Atlassian Bitbucket, and a decade later it migrated to a Mercurial instance hosted by Heptapod.

An earlier FAQ entry argued that Git lacks a counterpart to Mercurial’s named branches, making the migration seem like a thin justification.

Picus now explains that not moving to GitHub would hinder contributions and issue reporting.

Specifically, the Heptapod repository suffered from poor search‑engine indexing, spam‑filtering of new issues, and the inability to add continuous‑integration tasks, whereas GitHub’s richer platform allows adding CI jobs to replace legacy build‑bot infrastructure.

Migration inevitable, project seeks higher participation

Although continuing with Mercurial remains possible, contributors must now use standard Git workflows—forking the repository and submitting pull requests—since Heptapod does not permit personal forks.

The move is largely seen as unavoidable and is hoped to attract more contributors, despite some comments preferring GitLab.

Editor: 万能的大雄 Reference: https://devclass.com/2024/01/02/pypy-moves-from-mercurial-says-open-source-has-become-synonymous-with-github/
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

GitHubVersion ControlMercurialPyPyrepository migration
21CTO
Written by

21CTO

21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.