Dropping support for Subversion, Mercurial, and Bazaar
Photo by Red Mirror on Unsplash

Photo by Red Mirror on Unsplash

We are announcing the deprecation of support for Bazaar, Mercurial, and Subversion version control systems starting on Monday, June 3rd, 2024. After this date, only Git repositories will be continue to be supported by our application.

We've made this hard decision because 99% of our projects use Git and we can't cover the product complexity, documentation complexity, and maintenance cost we were spending on Bazaar, Mercurial and Subversion for a small number of projects. Our platform has long had fewer features for VCS systems other than Git, slowly adding confusion to our product, and slowing down the features we could build for the vast majority of our users on Git.

Deprecation timeline

We understand this change will affect some of our users, so we have a timeline to communicate this deprecation to our users effectively.

  • Monday, April 1, 2024: Do the first brownout (temporarily enforce this deprecation) for 12 hours: 00:01 PDT to 11:59 PDT (noon)
  • Monday, May 6, 2024: Do a second brownout (temporarily enforce this deprecation) for 24 hours: 00:01 PDT to 23:59 PDT (midnight)
  • Monday, May 20, 2024: Do a third and final brownout (temporarily enforce this deprecation) for 48 hours: 00:01 PDT to May 21, 2024 23:59 PDT (midnight)
  • Monday, June 3, 2024: Fully remove support for building documentation using Subversion, Mercurial or Bazaar VCSs.

Possible workarounds

To continue building your project, you could consider one of the following options:

Convert your repository to Git

You could convert your Subversion or Mercurial repository to Git and then connect the Git repository to your project to continue building your docs. GitHub has some guides to help you in this process:

Create an intermediate Git repository only for initial clone

If you cannot use Git for your documentation repository, an intermediate Git repository could at least allow your project to build. Understand however that this is not a supported configuration and many of our features may not work (e.g. versions) or might require extra setup steps.

This intermediate repository should contain a .readthedocs.yaml file that clones your original repository and builds your project's documentation.

Here you have a small example using Mercurial to clone the original repository. Make sure to adapt this example to your needs

version: 2

build:
  os: ubuntu-22.04
  tools:
    python: "3.12"
  jobs:
    post_checkout:
      - hg clone https://original.mercurial.vcs/respository/ .

sphinx:
  configuration: docs/conf.py

This could be a starting point, but note that you will also need to configure the incoming webhooks manually on the original repository, if you want to trigger a build each time a push is done to the original repository. Follow this guide to achieve this.

Contact us

Contact us if you have any questions, and let us know any inconvenient you may have with this change.