@@ -22,14 +22,14 @@ Rationale and Motivation
2222========================
2323
2424The "status" of a project is an important piece of metadata, made more important
25- by growth in both the breadth and depth of the Python packaging ecosystem.
25+ by growth in both the size and complexity of the Python packaging ecosystem.
2626Project status (or proxies such as recent activity) is useful to know in
2727determining whether a project is maintained or otherwise suitable for consumption.
2828
2929Python packaging has at least three different mechanisms for communicating
3030the "status" of a project:
3131
32- 1. Distributions can include *trove classifiers * in their metadata, as
32+ 1. Distribution packages can include *trove classifiers * in their metadata, as
3333 originally specified in :pep: `301 `. The list of supported classifiers is
3434 `maintained by the PyPA <https://github.com/pypa/trove-classifiers >`_,
3535 and includes the ``Development Status `` hierarchy. For example, a
@@ -77,17 +77,17 @@ the "status" of a project:
7777
7878In summary, there are multiple ways to communicate the "status" of a project in
7979Python packaging. However, none of them satisfy the four characteristics we desire.
80- There is no current project status indicator that is machine-readable, general,
80+ There is no current project status indicator that is machine-readable, general,
8181index-agnostic, and applies to the entire project, instead of per-release or
8282per-distribution.
8383
84- ================= ================ ======= ============== ============
85- Mechanism Machine-readable General Index-agnostic Project-wide
86- ================= ================ ======= ============== ============
87- Trove classifiers ✅ ✅ ✅ ❌
88- Yanking ✅ ❌ ✅ ✅
89- Project statuses ✅ ✅ ❌ ✅
90- ================= ================ ======= ============== ============
84+ ===================== ================ ======= ============== ============
85+ Mechanism Machine-readable General Index-agnostic Project-wide
86+ ===================== ================ ======= ============== ============
87+ Trove classifiers ✅ ✅ ✅ ❌
88+ Yanking ✅ ❌ ✅ ✅
89+ PyPI project statuses ✅ ✅ ❌ ✅
90+ ===================== ================ ======= ============== ============
9191
9292This PEP proposes adopting PyPI's project statuses as an index-agnostic
9393mechanism, satisfying all four conditions.
@@ -103,7 +103,8 @@ Project status markers
103103
104104This PEP proposes the following project status markers.
105105
106- A project **MUST ** have exactly one project status marker at any given time.
106+ A project always has exactly one status. If no status is explicitly noted,
107+ then the project is considered to be in the ``active `` state.
107108
108109Indices **MAY ** implement any subset of the status markers specified in this
109110PEP, as applicable.
@@ -113,7 +114,11 @@ PEP, as applicable.
113114
114115Description: The project is active. This is the default status for a project.
115116
116- Index semantics: none.
117+ Index semantics:
118+
119+ * The index hosting the project **MUST ** allow uploads of new distributions to
120+ the project.
121+ * The index **MUST ** offer existing distributions of the project for download.
117122
118123Installer semantics: none.
119124
@@ -158,9 +163,7 @@ by another project.
158163
159164Index semantics:
160165
161- * The index hosting the project **MUST ** allow uploads of new distributions to
162- the project.
163- * The index **MUST ** offer existing distributions of the project for download.
166+ * This status shares the same semantics as ``active ``.
164167
165168Installer semantics:
166169
0 commit comments