Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use a version-controlled file as source of truth for Read the Docs redirects #1408

Open
pradyunsg opened this issue Nov 18, 2023 · 12 comments
Open
Labels
type: discussion Discussion of general ideas, design, etc.

Comments

@pradyunsg
Copy link
Member

The idea is basically the same as that of pypa/pip#11652.

The proposal is that we adopt the same here. This serves to move the ability to add redirects to everyone with the ability to commit to this repository, and makes it possible to ensure that the actually-configured redirects are more generally visibke/accessible.

The details of how it'd work are in the commit messages in the aforementioned PR.

@pradyunsg pradyunsg added the type: discussion Discussion of general ideas, design, etc. label Nov 18, 2023
@pradyunsg
Copy link
Member Author

If we decide that we want this, I think it makes sense to make this into a chunk of reusable code -- and, I'd like to have co-maintainer(s) on that code as well to avoid having a bus factor of 1 as well as avoiding the need to fix multiple places if any of the relevant platforms (GitHub Actions, RtD) evolve. 😅

@pradyunsg
Copy link
Member Author

X-ref #1397 where some of this was discussed.

X-ref #1401 which is likely where most of this discussion will take place.

@jeanas
Copy link
Contributor

jeanas commented Nov 29, 2023

Is it important to keep using RTD's HTTP redirects, as opposed to HTML redirects (that we can create with sphinx-reredirects or similar)?

@pradyunsg
Copy link
Member Author

Is it important to keep using RTD's HTTP redirects, as opposed to HTML redirects (that we can create with sphinx-reredirects or similar)?

Let's discuss this in #1401, to avoid splitting the discussion.

@jeanas
Copy link
Contributor

jeanas commented Dec 5, 2023

Oh, sorry, I had missed some of your comments there.

@jeanas
Copy link
Contributor

jeanas commented Dec 5, 2023

There's also https://pypi.org/project/readthedocs-cli/

@jeanas
Copy link
Contributor

jeanas commented Dec 17, 2023

I'm working on this. @webknjaz @di @ewdurbin Could one of you please post a screenshot of the current redirects so that I can initialize the new file with them? They should be on

https://readthedocs.org/dashboard/python-packaging-user-guide/redirects/

@jeanas
Copy link
Contributor

jeanas commented Dec 17, 2023

(Or you could add @pradyunsg as maintainer on RTD, since he seems interested in this...)

@ewdurbin
Copy link
Member

ewdurbin commented Dec 17, 2023

{
  "count": 55,
  "next": null,
  "previous": null,
  "results": [
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/21919/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2023-12-06T20:17:57.062443Z",
      "from_url": "/specifications/declaring-build-dependencies/",
      "modified": "2023-12-06T20:20:47.137238Z",
      "pk": 21919,
      "project": "python-packaging-user-guide",
      "to_url": "/specifications/pyproject-toml/",
      "type": "page"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/21920/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2023-12-06T20:18:14.370974Z",
      "from_url": "/specifications/declaring-project-metadata/",
      "modified": "2023-12-06T20:20:42.522878Z",
      "pk": 21920,
      "project": "python-packaging-user-guide",
      "to_url": "/specifications/pyproject-toml/",
      "type": "page"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16011/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:44.286551Z",
      "from_url": "/tutorials/distributing-packages/",
      "modified": "2021-12-13T14:27:44.286573Z",
      "pk": 16011,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials/packaging-projects",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16010/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:44.134924Z",
      "from_url": "/current.html",
      "modified": "2021-12-13T14:27:44.134939Z",
      "pk": 16010,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/tool-recommendations",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16009/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:44.032108Z",
      "from_url": "/current/",
      "modified": "2021-12-13T14:27:44.032130Z",
      "pk": 16009,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/tool-recommendations",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16008/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:43.888092Z",
      "from_url": "/appveyor/",
      "modified": "2021-12-13T14:27:43.888108Z",
      "pk": 16008,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/supporting-windows-using-appveyor",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16007/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:43.751788Z",
      "from_url": "/multiple_python_versions/",
      "modified": "2021-12-13T14:27:43.751809Z",
      "pk": 16007,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/supporting-multiple-python-versions",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16006/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:43.580865Z",
      "from_url": "/single_source_version/",
      "modified": "2021-12-13T14:27:43.580886Z",
      "pk": 16006,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/single-sourcing-package-version",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16005/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:43.436730Z",
      "from_url": "/namespace_packages/",
      "modified": "2021-12-13T14:27:43.436750Z",
      "pk": 16005,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/packaging-namespace-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16004/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:43.319275Z",
      "from_url": "/extensions/",
      "modified": "2021-12-13T14:27:43.319296Z",
      "pk": 16004,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/packaging-binary-extensions",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16003/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:43.087530Z",
      "from_url": "/multi_version_install/",
      "modified": "2021-12-13T14:27:43.087554Z",
      "pk": 16003,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/multi-version-installs",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16002/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:42.954186Z",
      "from_url": "/install_requirements_linux/",
      "modified": "2021-12-13T14:27:42.954202Z",
      "pk": 16002,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/installing-using-linux-tools",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16001/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:42.818005Z",
      "from_url": "/science/",
      "modified": "2021-12-13T14:27:42.818022Z",
      "pk": 16001,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/installing-scientific-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/16000/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:42.673861Z",
      "from_url": "/mirrors/",
      "modified": "2021-12-13T14:27:42.673877Z",
      "pk": 16000,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/index-mirrors-and-caches",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15999/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:42.576390Z",
      "from_url": "/self_hosted_repository/",
      "modified": "2021-12-13T14:27:42.576405Z",
      "pk": 15999,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/creating-and-discovering-plugins",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15998/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:42.469316Z",
      "from_url": "/plugin_discovery/",
      "modified": "2021-12-13T14:27:42.469339Z",
      "pk": 15998,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/creating-and-discovering-plugins",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15997/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:42.336146Z",
      "from_url": "/wheel_egg/",
      "modified": "2021-12-13T14:27:42.336161Z",
      "pk": 15997,
      "project": "python-packaging-user-guide",
      "to_url": "/discussions/wheel-vs-egg",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15996/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:42.229119Z",
      "from_url": "/pip_easy_install/",
      "modified": "2021-12-13T14:27:42.229136Z",
      "pk": 15996,
      "project": "python-packaging-user-guide",
      "to_url": "/discussions/pip-vs-easy-install",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15995/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:42.082369Z",
      "from_url": "/requirements/",
      "modified": "2021-12-13T14:27:42.082386Z",
      "pk": 15995,
      "project": "python-packaging-user-guide",
      "to_url": "/discussions/install-requires-vs-requirements",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15994/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:41.949133Z",
      "from_url": "/deployment/",
      "modified": "2021-12-13T14:27:41.949154Z",
      "pk": 15994,
      "project": "python-packaging-user-guide",
      "to_url": "/discussions/deploying-python-applications",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15993/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:41.815877Z",
      "from_url": "/installing/",
      "modified": "2021-12-13T14:27:41.815900Z",
      "pk": 15993,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials/installing-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15992/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:41.546589Z",
      "from_url": "/tutorial/",
      "modified": "2021-12-13T14:27:41.546606Z",
      "pk": 15992,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15991/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:41.408904Z",
      "from_url": "/platforms/",
      "modified": "2021-12-13T14:27:41.408923Z",
      "pk": 15991,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/installing-scientific-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15990/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:41.312802Z",
      "from_url": "/quickstart/",
      "modified": "2021-12-13T14:27:41.312824Z",
      "pk": 15990,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15989/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:41.162358Z",
      "from_url": "/additional/",
      "modified": "2021-12-13T14:27:41.162379Z",
      "pk": 15989,
      "project": "python-packaging-user-guide",
      "to_url": "/guides",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15988/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:41.003168Z",
      "from_url": "/installing/",
      "modified": "2021-12-13T14:27:41.003188Z",
      "pk": 15988,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials/installing-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15987/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:40.825754Z",
      "from_url": "/installing",
      "modified": "2021-12-13T14:27:40.825771Z",
      "pk": 15987,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials/installing-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15986/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:40.680519Z",
      "from_url": "/current",
      "modified": "2021-12-13T14:27:40.680536Z",
      "pk": 15986,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/tool-recommendations",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15985/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:40.515722Z",
      "from_url": "/appveyor",
      "modified": "2021-12-13T14:27:40.515743Z",
      "pk": 15985,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/supporting-windows-using-appveyor",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15984/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:40.361674Z",
      "from_url": "/multiple_python_versions",
      "modified": "2021-12-13T14:27:40.361696Z",
      "pk": 15984,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/supporting-multiple-python-versions",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15983/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:40.214306Z",
      "from_url": "/single_source_version",
      "modified": "2021-12-13T14:27:40.214329Z",
      "pk": 15983,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/single-sourcing-package-version",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15982/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:40.071016Z",
      "from_url": "/namespace_packages",
      "modified": "2021-12-13T14:27:40.071036Z",
      "pk": 15982,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/packaging-namespace-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15981/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:39.920751Z",
      "from_url": "/extensions",
      "modified": "2021-12-13T14:27:39.920775Z",
      "pk": 15981,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/packaging-binary-extensions",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15980/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:39.775094Z",
      "from_url": "/multi_version_install",
      "modified": "2021-12-13T14:27:39.775111Z",
      "pk": 15980,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/multi-version-installs",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15979/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:39.633554Z",
      "from_url": "/install_requirements_linux",
      "modified": "2021-12-13T14:27:39.633570Z",
      "pk": 15979,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/installing-using-linux-tools",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15978/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:39.497045Z",
      "from_url": "/science",
      "modified": "2021-12-13T14:27:39.497061Z",
      "pk": 15978,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/installing-scientific-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15977/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:39.350923Z",
      "from_url": "/mirrors",
      "modified": "2021-12-13T14:27:39.350940Z",
      "pk": 15977,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/index-mirrors-and-caches",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15976/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:39.214184Z",
      "from_url": "/self_hosted_repository",
      "modified": "2021-12-13T14:27:39.214204Z",
      "pk": 15976,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/hosting-your-own-index",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15975/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:39.073554Z",
      "from_url": "/plugin_discovery",
      "modified": "2021-12-13T14:27:39.073571Z",
      "pk": 15975,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/creating-and-discovering-plugins",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15974/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:38.940918Z",
      "from_url": "/wheel_egg",
      "modified": "2021-12-13T14:27:38.940935Z",
      "pk": 15974,
      "project": "python-packaging-user-guide",
      "to_url": "/discussions/wheel-vs-egg",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15973/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:38.811564Z",
      "from_url": "/pip_easy_install",
      "modified": "2021-12-13T14:27:38.811584Z",
      "pk": 15973,
      "project": "python-packaging-user-guide",
      "to_url": "/discussions/pip-vs-easy-install",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15972/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:38.674693Z",
      "from_url": "/requirements",
      "modified": "2021-12-13T14:27:38.674709Z",
      "pk": 15972,
      "project": "python-packaging-user-guide",
      "to_url": "/discussions/install-requires-vs-requirements",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15971/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:38.526501Z",
      "from_url": "/deployment",
      "modified": "2021-12-13T14:27:38.526516Z",
      "pk": 15971,
      "project": "python-packaging-user-guide",
      "to_url": "/discussions/deploying-python-applications",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15970/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:38.391418Z",
      "from_url": "/installing",
      "modified": "2021-12-13T14:27:38.391434Z",
      "pk": 15970,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials/installing-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15969/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:38.250574Z",
      "from_url": "/tutorial",
      "modified": "2021-12-13T14:27:38.250589Z",
      "pk": 15969,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15968/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:38.104899Z",
      "from_url": "/platforms",
      "modified": "2021-12-13T14:27:38.104916Z",
      "pk": 15968,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/installing-scientific-packages",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15967/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:37.953545Z",
      "from_url": "/quickstart",
      "modified": "2021-12-13T14:27:37.953562Z",
      "pk": 15967,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15966/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:37.799867Z",
      "from_url": "/additional",
      "modified": "2021-12-13T14:27:37.799889Z",
      "pk": 15966,
      "project": "python-packaging-user-guide",
      "to_url": "/guides",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15965/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:27:37.655080Z",
      "from_url": "/guides/installing-using-pip-and-virtualenv",
      "modified": "2021-12-13T14:27:37.655100Z",
      "pk": 15965,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/installing-using-pip-and-virtual-environments/",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15964/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:23:28.549642Z",
      "from_url": "/distributing",
      "modified": "2021-12-13T14:23:28.549659Z",
      "pk": 15964,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials/packaging-projects",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15963/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-13T14:22:44.130455Z",
      "from_url": "/distributing/",
      "modified": "2021-12-13T14:22:44.130478Z",
      "pk": 15963,
      "project": "python-packaging-user-guide",
      "to_url": "/tutorials/packaging-projects/",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15922/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-07T14:02:52.697363Z",
      "from_url": "/tutorials/distributing-packages/",
      "modified": "2021-12-07T14:02:52.697385Z",
      "pk": 15922,
      "project": "python-packaging-user-guide",
      "to_url": "/en/latest/tutorials/packaging-projects",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/15891/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2021-12-06T16:51:22.589201Z",
      "from_url": null,
      "modified": "2021-12-06T16:51:22.589217Z",
      "pk": 15891,
      "project": "python-packaging-user-guide",
      "to_url": null,
      "type": "prefix"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/6097/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2019-04-23T17:24:23.469262Z",
      "from_url": "/guides/installing-using-pip-and-virtualenv/",
      "modified": "2019-04-23T17:24:23.469286Z",
      "pk": 6097,
      "project": "python-packaging-user-guide",
      "to_url": "/guides/installing-using-pip-and-virtual-environments/",
      "type": "exact"
    },
    {
      "_links": {
        "_self": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/redirects/1988/",
        "project": "https://readthedocs.org/api/v3/projects/python-packaging-user-guide/"
      },
      "created": "2018-08-28T05:44:16.094298Z",
      "from_url": null,
      "modified": "2018-08-28T05:44:16.094310Z",
      "pk": 1988,
      "project": "python-packaging-user-guide",
      "to_url": null,
      "type": "sphinx_htmldir"
    }
  ]
}

@jeanas
Copy link
Contributor

jeanas commented Dec 17, 2023

That was quick, thank you!

@webknjaz
Copy link
Member

(Or you could add @pradyunsg as maintainer on RTD, since he seems interested in this...)

Invited Pradyun on RTD. He should have access regardless...

jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
jeanas added a commit to jeanas/packaging.python.org that referenced this issue Dec 19, 2023
@jeanas
Copy link
Contributor

jeanas commented Dec 19, 2023

I did some experiments, and unfortunately, I hit a bug in RTD that's going to complicate our lives here: readthedocs/readthedocs.org#10963.

There is some problem that I don't yet fully understand, where RTD is sensitive to the order between redirects, with earlier redirects trumping later ones. readthedocs-cli takes care to only create redirects that have been added (for efficiency), so the order is going to be essentially arbitrary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: discussion Discussion of general ideas, design, etc.
Projects
None yet
Development

No branches or pull requests

4 participants