Skip to content

Commit

Permalink
Post: deprecate old VCS support (#264)
Browse files Browse the repository at this point in the history
* Post: deprecate old VCS support

Blog post to communicate our users about the deprecation of old VCS support:

- clear date on final removal
- clear brownout dates
- possible workarounds

Related readthedocs/readthedocs.org#8840

* Bold dates

* Apply suggestions from code review

Co-authored-by: Anthony <[email protected]>

* Minor updates

* Add "product complexity" as reason for deprecation

* Add image

* Update content/posts/drop-support-for-subversion-mercurial-bazaar.md

Co-authored-by: Anthony <[email protected]>

* Updates from review

* Apply suggestions from code review

Co-authored-by: Eric Holscher <[email protected]>

* Apply suggestions from code review

---------

Co-authored-by: Anthony <[email protected]>
Co-authored-by: Eric Holscher <[email protected]>
  • Loading branch information
3 people authored Feb 22, 2024
1 parent 4a6bd0f commit 37b938f
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 0 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
81 changes: 81 additions & 0 deletions content/posts/drop-support-for-subversion-mercurial-bazaar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
title: Dropping support for Subversion, Mercurial, and Bazaar
date: 2024-02-22
category: Changelog
tags: builders, deprecation
authors: Manuel Kaufmann
status: published
image: /images/drop-support-for-subversion-mercurial-bazaar.jpg
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>


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](https://github.com/readthedocs/readthedocs.org/issues/8840) 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:

* [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)
* [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)


### 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*

```yaml
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](https://docs.readthedocs.io/en/stable/guides/setup/git-repo-manual.html) to achieve this.
## Contact us
[Contact us](https://readthedocs.org/support/) if you have any questions,
and let us know any inconvenient you may have with this change.

0 comments on commit 37b938f

Please sign in to comment.