# ValueError: Invalid version: '1.0.0-beta'

- **ID:** `python/setuptools-metadata-version-invalid`
- **Domain:** python
- **Category:** data_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

setuptools validates the version string against PEP 440. '1.0.0-beta' uses a hyphen which is not allowed; PEP 440 uses 'b' for beta, e.g. '1.0.0b0'. Pre-release separators must be normalized.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 3.8 | active | — | — |
| 3.9 | active | — | — |
| 3.10 | active | — | — |
| 3.11 | active | — | — |
| 3.12 | active | — | — |

## Workarounds

1. **** (98% success)
   ```
   version='1.0.0b0'  # instead of '1.0.0-beta'
   ```
2. **** (90% success)
   ```
   pip install setuptools_scm && echo '[tool.setuptools_scm]' >> pyproject.toml
   ```
3. **** (85% success)
   ```
   python -c "from packaging.version import Version; Version('1.0.0-beta')"
   ```

## Dead Ends

- **** — Legacy setup.py still validates version via packaging. (90% fail)
- **** — The value is already a string; the problem is its content. (95% fail)
