packaging.python.org
packaging.python.org copied to clipboard
Use a version-controlled file as source of truth for Read the Docs redirects
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.
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. 😅
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.
Is it important to keep using RTD's HTTP redirects, as opposed to HTML redirects (that we can create with sphinx-reredirects or similar)?
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.
Oh, sorry, I had missed some of your comments there.
There's also https://pypi.org/project/readthedocs-cli/
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/
(Or you could add @pradyunsg as maintainer on RTD, since he seems interested in this...)
{
"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"
}
]
}
That was quick, thank you!
(Or you could add @pradyunsg as maintainer on RTD, since he seems interested in this...)
Invited Pradyun on RTD. He should have access regardless...
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.