Set Development Status classifier to Production/Stable

Merged
MA
4mo ago
+1-4

Sets the Development Status trove classifier to 5 - Production/Stable and removes the per-stage classifier-flip step from RELEASE.md. Reverts the classifier portion of #2831.

Motivation and Context

#2831 set this to 3 - Alpha on the basis that we're publishing alphas. After looking into it more, the ecosystem convention is overwhelmingly to treat this classifier as project maturity, not the pre-release stage of a given artifact:

  • Of 22 major projects surveyed, only Django flips it per release stage; the other 19 (pip, setuptools, numpy, pandas, scipy, scikit-learn, matplotlib, Flask, FastAPI, aiohttp, SQLAlchemy, pydantic, httpx, anyio, attrs, hatch, etc.) keep it constant across pre-releases and finals.
  • The closest analogues to our v2 — major-version rewrites of foundational libraries — all shipped pre-releases as 5 - Production/Stable: pydantic 2.0a1, aiohttp 4.0.0a1, SQLAlchemy 2.1.0b2.
  • No installer or resolver (pip, uv, poetry, pdm, flit, hatch) reads this classifier; PyPI uses it only as a search-filter facet. The per-artifact stability signal is already carried by the PEP 440 version segment (a1 → excluded without --pre) and PyPI's pre-release banner.
  • Our release process is otherwise tag-only (dynamic = ["version"] via uv-dynamic-versioning); flipping the classifier per stage was the one remaining manual source edit.

PEP 792 does note that trove classifiers are mechanically per-distribution rather than project-wide — but treats that as a limitation, which is why it introduced project-status-markers as the replacement mechanism.

Companion: #2976 bumps v1.x that branch from 4 - Beta (unchanged since Nov 2024) to 5 - Production/Stable as well.

How Has This Been Tested?

n/a — metadata only.

Breaking Changes

None.

Types of changes

  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling — n/a
  • I have added or updated documentation as needed

Additional context

AI Disclaimer