docs: def update_fluent_cached_urls(item, dry_run=False):
      """
      Regenerate the cached URLs for an item's translations. This is a fiddly
      business: we use "hidden" methods instead of the public ones to avoid
      unnecessary and unwanted slug changes to ensure uniqueness, the logic for
      which doesn't work with our publishing.
      """
      change_report = []
      if hasattr(item, 'translations'):
          for translation in item.translations.all():
              old_url = translation._cached_url
              item._update_cached_url(translation)
              change_report.append(
                  (translation, '_cached_url', old_url, translation._cached_url))
              if not dry_run:
                  translation.save()
          if not dry_run:
              item._expire_url_caches()
          # Also process all the item's children, in case changes to this item
          # affect the URL that should be cached for the children. We process
          # only draft-or-published children, according to the item's status.
          if item.is_draft:
              children = [child for child in item.children.all()
                          if child.is_draft]
          else:
              children = [child for child in item.get_draft().children.all()
                          if child.is_published]
          for child in children:
              update_fluent_cached_urls(child, dry_run=dry_run)
  
      return change_report