Skip to content

[codex] Add duplicate submission URL validation#1101

Draft
TSS99 wants to merge 1 commit into
Qiskit:mainfrom
TSS99:codex/validate-website-duplicates
Draft

[codex] Add duplicate submission URL validation#1101
TSS99 wants to merge 1 commit into
Qiskit:mainfrom
TSS99:codex/validate-website-duplicates

Conversation

@TSS99
Copy link
Copy Markdown

@TSS99 TSS99 commented Apr 17, 2026

Summary

  • add a checker implementation for existing check 011 so duplicate submission URLs are flagged
  • recurse through package and PyPI URLs when validating submission URLs
  • add unit tests covering duplicated website URLs and nested URL collection

Root cause

Check 011 already existed in resources/checks.toml, but it had no checker attached, so repeated submission URLs were never enforced. On top of that, the URL collector in ecosystem/validation/test_url.py only looked at shallow top-level fields, which meant package and PyPI URLs were skipped entirely.

Fix

  • implement duplicate URL detection in ecosystem/validation/test_url.py
  • normalize URLs before comparison so trivial formatting differences like trailing slashes do not bypass the check
  • include member.pypi.*.url in check 011 metadata
  • add focused unit tests for GitHub/PyPI duplicate website cases and nested package/PyPI URL traversal

Tests

  • python -m pytest tests/test_validation_url.py -q
  • python -m pylint ecosystem/validation/test_url.py tests/test_validation_url.py
  • python -m black --check ecosystem/validation/test_url.py tests/test_validation_url.py
  • inline validate_member() sanity check showing the duplicate-URL case fails on test_url.py::TestURLs::test_duplicate_urls while a distinct-URL case passes cleanly

Notes or limitations

  • I did not run the full repository test suite because upstream tests/test_check.py currently has a syntax error on main, unrelated to this patch.
  • The targeted pytest runs emit a local requests dependency warning about the installed urllib3/chardet combination, but it did not affect the checks above.
  • AI assistance disclosure: OpenAI Codex (GPT-5) was used to help prepare this contribution.

Fixes #1087

@1ucian0 1ucian0 added the stale? If a PR/issue has this label, it will be closed after 30 days of inactivity label May 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale? If a PR/issue has this label, it will be closed after 30 days of inactivity

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add new checkup: validate that website is not just a link to github repo or to pypi package site

2 participants