ansible-documentation icon indicating copy to clipboard operation
ansible-documentation copied to clipboard

Extension for Ansible redirects

Open oraNod opened this issue 9 months ago β€’ 1 comments

Fixes #2147 and supercedes https://github.com/ansible/ansible-documentation/pull/2266

This PR extends the Sphinx reredirects extension to load redirects for Ansible documentation from a toml file. The purpose is to replace the httpd mod_rewrite rules in https://github.com/ansible/docsite/blob/main/ansible/11/.htaccess and https://github.com/ansible/docsite/blob/main/.htaccess in a way that is compatible with ReadTheDocs.

If this PR is accepted and merged, there are two follow on actions:

  • Create a robots.txt file to stop crawlers from indexing the generated HTML files. We can put the robots.txt file in the ansible/docsite repo and copy it across as part of the ReadTheDocs build.
  • Remove all the existing stub files from this repository. For example, all the files under the docs/docsite/rst/user_guide folder.

oraNod avatar Feb 14 '25 20:02 oraNod

@webknjaz / @felixfontein / @gotmax23 Could we please get another round of reviews here? I've added all the redirects to the ReadTheDocs project and this PR is one of the last hurdles in the way of the docs.ansible.com migration. Thanks.

oraNod avatar Apr 22 '25 11:04 oraNod

Backport to stable-2.18: πŸ’” cherry-picking failed β€” conflicts found

❌ Failed to cleanly apply 6d4338a9234b1c60283c49eb1a00150753e9d085 on top of patchback/backports/stable-2.18/6d4338a9234b1c60283c49eb1a00150753e9d085/pr-2418

Backporting merged PR #2418 into devel

  1. Ensure you have a local repo clone of your fork. Unless you cloned it from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these instructions you'll refer to it by the name upstream. If you don't have it, here's how you can add it:
    $ git remote add upstream https://github.com/ansible/ansible-documentation.git
    
  3. Ensure you have the latest copy of upstream and prepare a branch that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/stable-2.18/6d4338a9234b1c60283c49eb1a00150753e9d085/pr-2418 upstream/stable-2.18
    
  4. Now, cherry-pick PR #2418 contents into that branch:
    $ git cherry-pick -x 6d4338a9234b1c60283c49eb1a00150753e9d085
    
    If it'll yell at you with something like fatal: Commit 6d4338a9234b1c60283c49eb1a00150753e9d085 is a merge but no -m option was given., add -m 1 as follows instead:
    $ git cherry-pick -m1 -x 6d4338a9234b1c60283c49eb1a00150753e9d085
    
  5. At this point, you'll probably encounter some merge conflicts. You must resolve them in to preserve the patch from PR #2418 as close to the original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/stable-2.18/6d4338a9234b1c60283c49eb1a00150753e9d085/pr-2418
    
  7. Create a PR, ensure that the CI is green. If it's not β€” update it so that the tests and any other checks pass. This is it! Now relax and wait for the maintainers to process your pull request when they have some cycles to do reviews. Don't worry β€” they'll tell you if any improvements are necessary when the time comes!

πŸ€– @patchback I'm built with octomachinery and my source is open β€” https://github.com/sanitizers/patchback-github-app.

patchback[bot] avatar Jun 03 '25 19:06 patchback[bot]

Backport to stable-2.19: πŸ’” cherry-picking failed β€” conflicts found

❌ Failed to cleanly apply 6d4338a9234b1c60283c49eb1a00150753e9d085 on top of patchback/backports/stable-2.19/6d4338a9234b1c60283c49eb1a00150753e9d085/pr-2418

Backporting merged PR #2418 into devel

  1. Ensure you have a local repo clone of your fork. Unless you cloned it from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these instructions you'll refer to it by the name upstream. If you don't have it, here's how you can add it:
    $ git remote add upstream https://github.com/ansible/ansible-documentation.git
    
  3. Ensure you have the latest copy of upstream and prepare a branch that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/stable-2.19/6d4338a9234b1c60283c49eb1a00150753e9d085/pr-2418 upstream/stable-2.19
    
  4. Now, cherry-pick PR #2418 contents into that branch:
    $ git cherry-pick -x 6d4338a9234b1c60283c49eb1a00150753e9d085
    
    If it'll yell at you with something like fatal: Commit 6d4338a9234b1c60283c49eb1a00150753e9d085 is a merge but no -m option was given., add -m 1 as follows instead:
    $ git cherry-pick -m1 -x 6d4338a9234b1c60283c49eb1a00150753e9d085
    
  5. At this point, you'll probably encounter some merge conflicts. You must resolve them in to preserve the patch from PR #2418 as close to the original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/stable-2.19/6d4338a9234b1c60283c49eb1a00150753e9d085/pr-2418
    
  7. Create a PR, ensure that the CI is green. If it's not β€” update it so that the tests and any other checks pass. This is it! Now relax and wait for the maintainers to process your pull request when they have some cycles to do reviews. Don't worry β€” they'll tell you if any improvements are necessary when the time comes!

πŸ€– @patchback I'm built with octomachinery and my source is open β€” https://github.com/sanitizers/patchback-github-app.

patchback[bot] avatar Jun 03 '25 19:06 patchback[bot]

Flip, I should have guessed the backports wouldn't get cherry-picked cleanly. Can't blame a dude for trying though.

Edit: PTO brain is a real thing. This doesn't need a backport at all. The publishing workflows are on devel only. :face_in_clouds:

oraNod avatar Jun 03 '25 19:06 oraNod

This doesn't need a backport at all. The publishing workflows are on devel only. πŸ˜Άβ€πŸŒ«οΈ

I tend to still backport supporting configs/automations because this usually helps with future backports layered on top.

webknjaz avatar Jun 03 '25 23:06 webknjaz

This doesn't need a backport at all. The publishing workflows are on devel only. πŸ˜Άβ€πŸŒ«οΈ

I tend to still backport supporting configs/automations because this usually helps with future backports layered on top.

Added a manual backport with https://github.com/ansible/ansible-documentation/pull/2691

oraNod avatar Jun 05 '25 08:06 oraNod