Skip to content

Investigation into "canonical" link for a PyPI repo link #11

Open
@hugovk

Description

@hugovk

Summary: use Source


In addition to url (alias homepage), packages on PyPI can have this metadata:

project_urls

An arbitrary map of URL names to hyperlinks, allowing more extensible documentation of where various resources can be found than the simple url and download_url options provide.

The url homepage is added into project_urls as homepage. For example, Pillow doesn't use define any project_urls but does have url="http://python-pillow.org",, and https://pypi.org/pypi/Pillow/json includes:

"home_page": "http://python-pillow.org",
"project_urls": {
    "Homepage": "http://python-pillow.org"
},

Many projects have a link to their GitHub (or GitLab or Bitbucket etc.) repos as the homepage. For those that include an arbitrary link to a source repo, what is the most common one, when not the homepage?

Checking the current top 5,000 packages, here is the project_url key where a source repo was found (defined as a URL containing one of github.com, gitlab.com, bitbucket.org or bitbucket.com):

Counter({'Homepage': 3711,
         None: 1047,
         'Source': 95,
         'Download': 63,
         'Source Code': 38,
         'Code': 14,
         'Issue Tracker': 5,
         'Repository': 5,
         'GitHub: issues': 4,
         'Github': 3,
         'Bug Tracker': 3,
         'Bug Reports': 2,
         'Issue tracker': 2,
         'Source code': 2,
         'Twine source': 1,
         'Issues': 1,
         'Github repo': 1,
         'Change log': 1,
         'Changelog': 1,
         'GitHub': 1})

Some of these are specific things, like links to tarball downloads, or issue trackers. But the most common ones for a repo homepage are Source, Source Code and Code.

  • I'll use Source for adding new ones.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions