Skip to content

Upgrade Development Status classifier from Alpha to Beta #103

Description

@codeforester

Problem

pyproject.toml currently declares:

"Development Status :: 3 - Alpha",

This is inaccurate and actively hurts PyPI adoption. A project at "Alpha" signals to potential consumers that APIs are unstable, the package may break without warning, and production use is discouraged. base-cli no longer matches that description.

Evidence of Beta-level maturity

The package already has:

  • A formal API stability policy (docs/api-stability.md) with a documented deprecation process and removal timeline
  • A @deprecated decorator and BaseCliDeprecationWarning for managed deprecation
  • A published CHANGELOG.md following Keep a Changelog conventions
  • Compatibility consumers (compatibility/consumers/) exercised in CI
  • Smoke tests across CPython 3.10–3.14 on Linux, macOS, and Windows
  • A contract test suite (test_api_stability.py, test_public_api.py, test_json_contracts.py)
  • OIDC-based trusted publishing to PyPI with TestPyPI rehearsal support
  • A versioned JSON output contract (json-contracts.md) and command protocol (command_protocol.py)
  • An adopter readiness guide (docs/adopter-readiness.md) aimed at production teams
  • Security documentation including a threat model and security review

Proposed fix

Change pyproject.toml:

# before
"Development Status :: 3 - Alpha",

# after
"Development Status :: 4 - Beta",

This should happen before or alongside the 1.0 readiness work. "Beta" accurately conveys "APIs are stabilizing, production pilots are encouraged, breaking changes are announced." The 5 - Production/Stable classifier should be reserved for the 1.0 release.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions