|
| 1 | +title: Dropping support for Subversion, Mercurial, and Bazaar |
| 2 | +date: 2024-02-22 |
| 3 | +category: Changelog |
| 4 | +tags: builders, deprecation |
| 5 | +authors: Manuel Kaufmann |
| 6 | +status: published |
| 7 | +image: /images/drop-support-for-subversion-mercurial-bazaar.jpg |
| 8 | +image_credit: Photo by <a href="https://unsplash.com/@redmirror?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Red Mirror</a> on <a href="https://unsplash.com/photos/wall-with-paints-f303VzauP6w?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a> |
| 9 | + |
| 10 | + |
| 11 | +We are announcing the deprecation of support for Bazaar, Mercurial, and Subversion version control systems starting on **Monday, June 3rd, 2024**. |
| 12 | +After this date, only Git repositories will be continue to be supported by our application. |
| 13 | + |
| 14 | +We've made this hard decision because [99% of our projects](https://github.com/readthedocs/readthedocs.org/issues/8840) use Git |
| 15 | +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. |
| 16 | +Our platform has long had fewer features for VCS systems other than Git, |
| 17 | +slowly adding confusion to our product, |
| 18 | +and slowing down the features we could build for the vast majority of our users on Git. |
| 19 | + |
| 20 | +## Deprecation timeline |
| 21 | + |
| 22 | +We understand this change will affect some of our users, so we have a timeline to communicate this deprecation to our users effectively. |
| 23 | + |
| 24 | +* **Monday, April 1, 2024**: Do the first brownout (temporarily enforce this deprecation) for 12 hours: 00:01 PDT to 11:59 PDT (noon) |
| 25 | +* **Monday, May 6, 2024**: Do a second brownout (temporarily enforce this deprecation) for 24 hours: 00:01 PDT to 23:59 PDT (midnight) |
| 26 | +* **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) |
| 27 | +* **Monday, June 3, 2024**: Fully remove support for building documentation using Subversion, Mercurial or Bazaar VCSs. |
| 28 | + |
| 29 | + |
| 30 | +## Possible workarounds |
| 31 | + |
| 32 | +To continue building your project, you could consider one of the following options: |
| 33 | + |
| 34 | + |
| 35 | +### Convert your repository to Git |
| 36 | + |
| 37 | +You could convert your Subversion or Mercurial repository to Git and then connect the Git repository to your project to continue building your docs. |
| 38 | +GitHub has some guides to help you in this process: |
| 39 | + |
| 40 | + * [Import your Subversion repository](https://docs.github.com/en/migrations/importing-source-code/using-the-command-line-to-import-source-code/importing-a-subversion-repository) |
| 41 | + * [Import your Mercurial repository](https://docs.github.com/en/migrations/importing-source-code/using-the-command-line-to-import-source-code/importing-a-mercurial-repository) |
| 42 | + |
| 43 | + |
| 44 | +### Create an intermediate Git repository only for initial clone |
| 45 | + |
| 46 | + |
| 47 | +If you cannot use Git for your documentation repository, |
| 48 | +an intermediate Git repository could at least allow your project to build. |
| 49 | +Understand however that this is not a supported configuration and |
| 50 | +many of our features may not work (e.g. versions) or might require extra setup steps. |
| 51 | + |
| 52 | +This intermediate repository should contain a `.readthedocs.yaml` file |
| 53 | +that clones your original repository and builds your project's documentation. |
| 54 | + |
| 55 | +Here you have a small example using Mercurial to clone the original repository. |
| 56 | +*Make sure to adapt this example to your needs* |
| 57 | + |
| 58 | +```yaml |
| 59 | +version: 2 |
| 60 | + |
| 61 | +build: |
| 62 | + os: ubuntu-22.04 |
| 63 | + tools: |
| 64 | + python: "3.12" |
| 65 | + jobs: |
| 66 | + post_checkout: |
| 67 | + - hg clone https://original.mercurial.vcs/respository/ . |
| 68 | + |
| 69 | +sphinx: |
| 70 | + configuration: docs/conf.py |
| 71 | +``` |
| 72 | +
|
| 73 | +This could be a starting point, but note that you will also need to configure the incoming webhooks manually on the original repository, |
| 74 | +if you want to trigger a build each time a push is done to the original repository. |
| 75 | +[Follow this guide](https://docs.readthedocs.io/en/stable/guides/setup/git-repo-manual.html) to achieve this. |
| 76 | +
|
| 77 | +
|
| 78 | +## Contact us |
| 79 | +
|
| 80 | +[Contact us](https://readthedocs.org/support/) if you have any questions, |
| 81 | +and let us know any inconvenient you may have with this change. |
0 commit comments