Skip to content

Remove trailing slashes and update redirected Ultralytics URLs - #48

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

Canonicalizes every Ultralytics URL in the repo to its no-trailing-slash form and refreshes one stale redirect.

Changes

Trailing slashes — 72 URLs across 15 files

Removed the terminating path slash from every ultralytics.com / *.ultralytics.com URL. Only slashes that terminate a path were touched; path separators were never affected.

Area Fixed Examples
Model READMEs (9 dirs) 58 https://docs.ultralytics.com/ → https://docs.ultralytics.com, .../models/yoloe/ → .../models/yoloe
replicate_metadata.py 9 all nine paper_url SPECS entries (/tasks/segment/ → /tasks/segment)
.github/ISSUE_TEMPLATE/* 6 config.yml Docs/Forum contact links, minimum-reproducible-example/ → ...-example
Root README.md 1 logo <a href> and Forums badge target

All rewritten destinations were verified live and return HTTP 200 with no redirect.

Redirect refresh — 1 accepted, 0 rejected

  • https://reddit.com/r/ultralytics → https://www.reddit.com/r/ultralytics/ (root README Reddit badge). Permanent host canonicalization, and it matches the form already used in all nine model READMEs. This is the only URL in the repo where the scan proposed a change; the other 116 unique URLs resolved cleanly.

No dead links were reported by the scan.

Judgment calls (deliberately left unchanged)

  • https://ultralytics.com/discord in .github/ISSUE_TEMPLATE/config.yml — vanity shortlink meant to stay a redirect (its target is an expiring invite); it carries no trailing slash anyway.
  • server=https%3A%2F%2Fcommunity.ultralytics.com inside the shields.io Forums badge — URL-encoded parameter, kept byte-identical; only the badge's link target was de-slashed.
  • https://ultralytics.com/license file headers — bot-owned strings written by Ultralytics Actions; already slash-free.
  • https://ultralytics.com/images/bus.jpg in the CLI examples — a file path, not a directory terminator.
  • Non-Ultralytics hosts (cocodataset.org/, pytorch.org/get-started/locally/, pypi.org/project/ultralytics/) are out of scope for the slash sweep and were left as-is.
  • .github/workflows/push.yml is flagged by Prettier as unformatted, but that is pre-existing and untouched by this PR.

Validation

  • Fixer regex was self-tested on 47 positive/negative cases before running: subdomains, protocol-relative and bare-host forms, /#fragment and /?query, sentence-final com/. and com/!, markdown/HTML/backtick delimiters, and negatives for github.com/ultralytics/..., emails, notultralytics.com, %3A%2F%2F-encoded params, {placeholder} templates, f-strings, and the ellipsis /....
  • Re-verified after the redirect pass: zero Ultralytics URLs retain a terminating slash.
  • python -m py_compile on both scripts, replicate_metadata.py --dry-run (all nine models), YAML parse of every cog.yaml and .github/**/*.yml, ruff format --check + ruff check clean, prettier@3.8.5 --print-width 120 --check clean on every changed file.

The diff is URL text only — no logic, formatting, or content changes.

🛠️ PR Summary

Made with ❤️ by Ultralytics Actions

🌟 Summary

Canonicalized 72 Ultralytics URLs across 15 files by removing trailing slashes and updated the root README Reddit link to its www canonical URL.

📊 Key Changes

  • Removed trailing slashes from Ultralytics links in nine model READMEs, including documentation, forum, and model-page links.
  • Updated all nine paper_url entries in replicate_metadata.py to slash-free documentation paths.
  • Canonicalized documentation and forum links in .github/ISSUE_TEMPLATE files and the root README.md.
  • Changed the root README Reddit badge target from reddit.com/r/ultralytics to www.reddit.com/r/ultralytics/.
  • The changed Ultralytics destinations were verified to return HTTP 200 without redirects; no dead links were reported.

🎯 Purpose & Impact

  • Links now use consistent canonical URL forms and avoid redirects where verified.
  • No user-facing change to model, inference, metadata-generation, or workflow logic; only link targets and URL text were modified.

@UltralyticsAssistant UltralyticsAssistant added documentation Improvements or additions to documentation fixed Bug has been resolved labels Aug 20, 2026
@UltralyticsAssistant

Copy link
Copy Markdown
Member

👋 Hello @pderrenger, thank you for submitting a ultralytics/replicate 🚀 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/replicate 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

Reviewed all 15 changed files and the full URL-only diff. The changes are limited to canonicalizing Ultralytics URLs and updating the Reddit redirect without altering runtime logic, metadata structure, or workflow behavior. No concrete bugs or regressions found. LGTM.

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

Copy link
Copy Markdown
Member

🎉 Thank you, @pderrenger, and congratulations on the merged PR!

“Well done is better than well said.” — Benjamin Franklin

This PR puts that principle into practice by canonicalizing 72 Ultralytics URLs across 15 files, reducing redirects and keeping links consistent without changing model or workflow logic.

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

Labels

documentation Improvements or additions to documentation fixed Bug has been resolved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants