From c70d51d901d3c7237a06b932bb385b162dcf7db8 Mon Sep 17 00:00:00 2001 From: Max Isbey <224885523+maxisbey@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:37:40 +0000 Subject: [PATCH] Set Development Status classifier to Production/Stable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The classifier reflects project maturity, not the pre-release stage of a given version — that's what the PEP 440 version segment (a1/b1/rc1) is for. This matches the convention followed by pydantic, aiohttp, SQLAlchemy, numpy, pip, etc., and removes a manual per-stage edit from the release process (which is otherwise tag-only via uv-dynamic-versioning). Reverts the classifier portion of #2831 and removes the corresponding release-checklist step. --- RELEASE.md | 3 --- pyproject.toml | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index dce346b27a..ea46ebdb41 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -49,6 +49,3 @@ for alphas, later `bN`/`rcN` for betas and release candidates. Yanking doesn't stop `==` pins from installing the broken version, so set the yank reason (and edit the GitHub release notes) to point at the replacement version. -5. When the line moves to a new stage (first beta, first release candidate, - stable), update the `Development Status` classifier in `pyproject.toml` - before tagging — PyPI uploads are immutable. diff --git a/pyproject.toml b/pyproject.toml index a36d152dc4..d062030c65 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ maintainers = [ keywords = ["mcp", "llm", "automation"] license = { text = "MIT" } classifiers = [ - "Development Status :: 3 - Alpha", + "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3",