Skip to content

Remove trailing slashes and update redirected Ultralytics URLs - #1325

Merged
pderrenger merged 1 commit into
mainfrom
no-trailing-slash-urls
Aug 20, 2026
Merged

pderrenger merged 1 commit into
mainfrom
no-trailing-slash-urls

Conversation

@pderrenger

@pderrenger pderrenger commented Aug 20, 2026

Copy link
Copy Markdown
Member

Normalizes Ultralytics link hygiene across the historical HUB repository: no URL on ultralytics.com or any *.ultralytics.com subdomain keeps a terminating path slash, and links that permanently moved now point at their current destination.

Trailing slashes (29 across 12 files)

Removed the terminating path slash only — path separators, %2F-encoded URLs, and fragments/queries are untouched. Applied with a regex fixer validated against 17 positive and 19 negative cases before it ran (subdomains, protocol-relative, bare-host, fragment/query, sentence-final punctuation, markdown/HTML/backtick delimiters; negatives: github.com/ultralytics/..., emails, notultralytics.com, https%3A%2F%2F badge params, {placeholder} templates, /... ellipsis, and .../ultralytics.com/... inside another host's path).

Representative changes:

  • https://docs.ultralytics.com/platform/ -> https://docs.ultralytics.com/platform (four issue templates)
  • https://platform.ultralytics.com/ and https://community.ultralytics.com/ contact links in config.yml
  • <a href="https://www.ultralytics.com/"> logo anchors in all five example_datasets/*/README.md
  • https://docs.ultralytics.com/datasets/obb/dota8/ in dota8.yaml
  • https://docs.ultralytics.com/help/minimum-reproducible-example/ in bug-report.yml

Post-run verification re-scanned every tracked text file: zero Ultralytics URLs retain a terminating slash.

Redirect refresh (1 accepted, 0 rejected of the proposals)

  • https://www.ultralytics.com/solutions/ai-in-automotive -> https://www.ultralytics.com/solutions/computer-vision-in-automotive — verified 308 permanent, destination 200, same host, no locale/tracking/auth params.

Deliberately left unchanged after review:

  • https://ultralytics.com/license (AGENTS.md) — Ultralytics Actions owns this header string; rewriting it to www. would desync the tool from its own output.
  • https://ultralytics.com/discord (config.yml) — vanity shortlink whose target is an expiring invite.
  • https://reddit.com/r/ultralytics — canonicalizes to https://www.reddit.com/r/ultralytics/, which re-adds a trailing slash.
  • https://github.com/ultralytics/assets/raw/main/social/*.png/raw/ image srcs are a durable GitHub alias; resolving them to raw.githubusercontent.com changes the role the URL plays.
  • shields.io badge URLs — the server=https%3A%2F%2Fcommunity.ultralytics.com parameter and the Chinese badge labels must stay byte-identical; only percent-encoding differs on resolution.
  • lychee release asset in links.yml — resolves to an expiring signed release-assets.githubusercontent.com URL.

Dead links flagged (not changed, need a human)

Both are pre-existing and unrelated to this diff:

  1. https://docs.ultralytics.com/datasets/human in example_datasets/coco8-human/coco8-human.yaml returns 404. No direct successor exists (/datasets/detect/coco8-human and /tasks/human are also 404); only /datasets resolves, which would be an index collapse, so the link is left as-is for a correct target.
  2. Page: https://hub.ultralytics.com/models in bug-report.yml returns 404 and forwards to https://platform.ultralytics.com/models, which is itself 404 for anonymous requests. It is a placeholder example inside the historical HUB bug-report form, so the HUB-specific deep link is left in place rather than rewritten to a Platform route that does not serve.

Validation

  • npx prettier@3.8.5 --check --print-width 120 "**/*.{md,yml,yaml,json}" — clean.
  • All eight .yml/.yaml files re-parsed successfully.
  • Serial (non-parallel) status check of all 100 URLs in the repository: only the two dead links above.
  • Full diff reviewed line by line: every hunk is URL text only, no prose or structural edits.

🛠️ PR Summary

Made with ❤️ by Ultralytics Actions

🌟 Summary

Normalized Ultralytics URLs across repository documentation and configuration by removing trailing slashes and updating one permanently redirected automotive solutions link.

📊 Key Changes

  • Removed trailing slashes from Ultralytics URLs in issue templates, issue configuration, README files, example dataset documentation, and dota8.yaml.
  • Updated https://www.ultralytics.com/solutions/ai-in-automotive to https://www.ultralytics.com/solutions/computer-vision-in-automotive.
  • Preserved URLs that require their existing form, including the ultralytics.com/license header, Discord vanity link, Reddit URL, GitHub raw asset URLs, badge parameters, and the signed release asset link.
  • Left two pre-existing dead links unchanged: the COCO8-human documentation URL and the historical HUB models placeholder.

🎯 Purpose & Impact

  • Ultralytics links now use consistent trailing-slash formatting, and the automotive solutions link points to its current permanent destination.
  • No functional code or repository structure changed; the remaining dead links require separate manual target decisions.

@UltralyticsAssistant UltralyticsAssistant added devops GitHub Devops or MLops documentation Improvements or additions to documentation labels Aug 20, 2026
@UltralyticsAssistant

Copy link
Copy Markdown
Member

👋 Hello @pderrenger, thank you for submitting a ultralytics/hub 🚀 PR! This automated message confirms your contribution was received, and an Ultralytics engineer will assist with the review. To ensure a seamless integration of your work, please review the following checklist:

  • Define a Purpose: Clearly explain the purpose of your fix or feature in your PR description, and link to any relevant issues. Ensure your commit messages are clear, concise, and adhere to the project's conventions.
  • Synchronize with Source: Confirm your PR is synchronized with the ultralytics/hub main branch. If it's behind, update it by clicking the 'Update branch' button or by running git pull and git merge main locally.
  • Ensure CI Checks Pass: Verify all Ultralytics Continuous Integration (CI) checks are passing. If any checks fail, please address the issues.
  • Update Documentation: Update the relevant documentation for any new or modified features.
  • Add Tests: If applicable, include or update tests to cover your changes, and confirm that all tests are passing.
  • Sign the CLA: Please ensure you have signed our Contributor License Agreement if this is your first Ultralytics PR by writing "I have read the CLA Document and I sign the CLA" in a new message.
  • Minimize Changes: Limit your changes to the minimum necessary for your bug fix or feature addition. "It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is." — Bruce Lee

For more guidance, please refer to our Contributing Guide. Don't hesitate to leave a comment if you have any questions. Thank you for contributing to Ultralytics! 🚀

@UltralyticsAssistant UltralyticsAssistant left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 PR Review

Made with ❤️ by Ultralytics Actions

LGTM. Reviewed all 12 changed files and the URL-only edits; no concrete bugs, compatibility regressions, or behavioral issues identified.

@pderrenger
pderrenger merged commit 26b81b1 into main Aug 20, 2026
5 checks passed
@pderrenger
pderrenger deleted the no-trailing-slash-urls branch August 20, 2026 19:49
@UltralyticsAssistant

Copy link
Copy Markdown
Member

🎉 PR #1325 has been successfully merged—thank you, @pderrenger!

“Great things are done by a series of small things brought together.” — Vincent van Gogh

Your careful URL normalization and automotive solutions link update bring consistent formatting across the documentation and configuration while preserving URLs that require their existing forms. 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops GitHub Devops or MLops documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants