Skip to content

Commit c1dffa9

Browse files
DarkaMaulwoodruffwdi
authored
Documentation on Project-Urls (#16513)
* Update services recognized in detail.html * Add documentation on Project-URLs * Update documentation * Apply suggestions from code review Co-authored-by: William Woodruff <[email protected]> Co-authored-by: Dustin Ingram <[email protected]> * Update documentation. * Apply suggestions from code review --------- Co-authored-by: William Woodruff <[email protected]> Co-authored-by: Dustin Ingram <[email protected]>
1 parent a66646d commit c1dffa9

File tree

5 files changed

+125
-0
lines changed

5 files changed

+125
-0
lines changed

docs/mkdocs-user-docs.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,24 @@ plugins:
1010
j2_variable_end_string: "]]-->"
1111
markdown_extensions:
1212
- admonition
13+
- attr_list
1314
- pymdownx.details
1415
- pymdownx.superfences
1516
- pymdownx.tabbed:
1617
alternate_style: true
1718
slugify: !!python/object/apply:pymdownx.slugs.slugify {kwds: {case: lower}}
1819
- tables
20+
- pymdownx.emoji:
21+
emoji_index: !!python/name:material.extensions.emoji.twemoji
22+
emoji_generator: !!python/name:material.extensions.emoji.to_svg
1923
theme:
2024
name: material
2125
logo: assets/logo.png
2226
favicon: assets/favicon.ico
2327
homepage: https://pypi.org
2428
features:
2529
- content.action.edit
30+
- content.tooltips
2631
palette:
2732
- scheme: default
2833
media: "(prefers-color-scheme: light)"
@@ -66,3 +71,4 @@ nav:
6671
- "trusted-publishers/security-model.md"
6772
- "trusted-publishers/troubleshooting.md"
6873
- "trusted-publishers/internals.md"
74+
- "project_metadata.md"
10.1 KB
Loading

docs/user/assets/verified_details.png

11.7 KB
Loading

docs/user/project_metadata.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Project Metadata
2+
3+
Python packages can include additional metadata to provide more information
4+
about the project. This document outlines the specific behaviors
5+
implemented by PyPI to display project metadata and other details. The
6+
comprehensive list of metadata fields is available in the [Python Packaging
7+
User Guide].
8+
9+
[Python Packaging User Guide]: https://packaging.python.org/en/latest/specifications/core-metadata/#core-metadata-specifications
10+
11+
12+
## Project URLs
13+
14+
Packages owners can specify various URLs related to their project using
15+
the [`[project.urls]` table](https://packaging.python.org/en/latest/specifications/pyproject-toml/#urls) in the package's `pyproject.toml`.
16+
17+
PyPI renders these URLs on the project page and splits them into `verified` and
18+
`unverified` subgroups. They are also available using the
19+
[JSON API](https://warehouse.pypa.io/api-reference/json.html).
20+
21+
### Verified details
22+
23+
![Verified details](assets/verified_details.png){ loading=lazy }
24+
25+
PyPI currently supports several ways of verifying project URLs. When a URL is verified, PyPI highlights it using a green checkmark (:fontawesome-solid-circle-check:{ .checked }).
26+
27+
!!! warning
28+
29+
An URL being verified only attests that the URL is under control of the
30+
PyPI package owner, and does not imply any additional safety about that
31+
URL or any other relationship to the project in question.
32+
33+
### Self-links
34+
35+
Any URL to the project on PyPI will be considered verified.
36+
37+
### Via Trusted Publishing
38+
39+
[Trusted Publishing](trusted-publishers/index.md) allows PyPI to attest that the
40+
publishing workflow for a package is coming from a verified source.
41+
42+
PyPI supports the following OIDC Publishers:
43+
44+
- [GitHub Actions][gh-action-tab]
45+
- [Google Cloud][gc-tab]
46+
- [ActiveState][active-tab]
47+
- [GitLab CI/CD][gitlab-tab]
48+
49+
[gh-action-tab]: trusted-publishers/creating-a-project-through-oidc.md#github-actions
50+
[gc-tab]: trusted-publishers/creating-a-project-through-oidc.md#google-cloud
51+
[active-tab]: trusted-publishers/creating-a-project-through-oidc.md#activestate
52+
[gitlab-tab]: trusted-publishers/creating-a-project-through-oidc.md#gitlab-cicd
53+
54+
55+
### Icons
56+
57+
![Unverified details](assets/unverified_details.png){ loading=lazy }
58+
59+
While the labels can be arbitrary, PyPI recognizes the ones from the
60+
lists below and changes the default icon from
61+
:fontawesome-solid-square-up-right: to a customized one.
62+
63+
#### General URL
64+
65+
| Icon | Name | Description | Aliases |
66+
|:------------------------------------------|:--------------|:--------------------------|:--------------------------|
67+
| :fontawesome-solid-house-chimney: | Homepage | For the project homepage | |
68+
| :fontawesome-solid-cloud: | Download | A download link | |
69+
| :fontawesome-solid-scroll: | Changelog | Changelog information | |
70+
| :fontawesome-solid-book: | Documentation | Project documentation | Docs |
71+
| :fontawesome-solid-bug: | Bug | Bug/Issue report location | Issue, Tracker, Report |
72+
| :fontawesome-solid-circle-dollar-to-slot: | Funding | Sponsoring information | Sponsor, Donation, Donate |
73+
74+
75+
#### Hosting Platforms
76+
77+
| Icon | Name |
78+
|:-------------------------------|:----------|
79+
| :fontawesome-brands-github: | GitHub |
80+
| :fontawesome-brands-gitlab: | GitLab |
81+
| :fontawesome-brands-bitbucket: | Bitbucket |
82+
| :fontawesome-brands-google: | Google |
83+
84+
85+
#### Social Medias Platforms
86+
87+
| Icon | Name |
88+
|:----------------------------------|:---------|
89+
| :fontawesome-brands-gitter: | Gitter |
90+
| :fontawesome-brands-discord: | Discord |
91+
| :fontawesome-brands-reddit-alien: | Reddit |
92+
| :fontawesome-brands-slack: | Slack |
93+
| :fontawesome-brands-twitter: | Twitter |
94+
| :fontawesome-brands-youtube: | Youtube |
95+
| :fontawesome-brands-mastodon: | Mastodon |
96+
97+
#### Continuous Integration Services
98+
99+
| Icon | Name |
100+
|:-------------------------------|:----------|
101+
| :fontawesome-solid-list-check: | AppVeyor |
102+
| :fontawesome-solid-list-check: | CircleCI |
103+
| :fontawesome-solid-list-check: | Codecov |
104+
| :fontawesome-solid-list-check: | Coveralls |
105+
| :fontawesome-solid-list-check: | Travis CI |
106+
107+
#### Python Ecosystem
108+
109+
| Icon | Name | Alias |
110+
|:----------------------------|:-------|:-----------|
111+
| :fontawesome-solid-cube: | PyPI | Cheeseshop |
112+
| :fontawesome-brands-python: | Python | |
113+

docs/user/stylesheets/extra.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,9 @@
1111
}
1212

1313
readthedocs-flyout { display: none; }
14+
15+
16+
/* From warehouse/static/sass/blocks/_verified.scss */
17+
.checked {
18+
color: #148024;
19+
}

0 commit comments

Comments
 (0)