packaging.python.org icon indicating copy to clipboard operation
packaging.python.org copied to clipboard

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

Open pradyunsg opened this issue 2 years ago • 12 comments

The idea is basically the same as that of https://github.com/pypa/pip/pull/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 avatar Nov 18 '23 10:11 pradyunsg

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 avatar Nov 18 '23 10:11 pradyunsg

X-ref https://github.com/pypa/packaging.python.org/pull/1397 where some of this was discussed.

X-ref https://github.com/pypa/packaging.python.org/issues/1401 which is likely where most of this discussion will take place.

pradyunsg avatar Nov 18 '23 13:11 pradyunsg

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

jeanas avatar Nov 29 '23 19:11 jeanas

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 https://github.com/pypa/packaging.python.org/issues/1401, to avoid splitting the discussion.

pradyunsg avatar Dec 05 '23 21:12 pradyunsg

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

jeanas avatar Dec 05 '23 21:12 jeanas

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

jeanas avatar Dec 05 '23 23:12 jeanas

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 avatar Dec 17 '23 17:12 jeanas

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

jeanas avatar Dec 17 '23 17:12 jeanas

{
  "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"
    }
  ]
}

ewdurbin avatar Dec 17 '23 17:12 ewdurbin

That was quick, thank you!

jeanas avatar Dec 17 '23 17:12 jeanas

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

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

webknjaz avatar Dec 17 '23 19:12 webknjaz

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.

jeanas avatar Dec 19 '23 20:12 jeanas