Add comprehensive PyPI publishing infrastructure

## Version Management & Consistency
- Update to version 4.0.0b1 (proper beta versioning for PyPI)
- Add __version__ attribute to SuperClaude/__init__.py
- Ensure version consistency across pyproject.toml, __main__.py, setup/__init__.py

## Enhanced Package Configuration
- Improve pyproject.toml with comprehensive PyPI classifiers
- Add proper license specification and enhanced metadata
- Configure package discovery with inclusion/exclusion patterns
- Add development and test dependencies

## Publishing Scripts & Tools
- scripts/build_and_upload.py: Advanced Python script for building and uploading
- scripts/publish.sh: User-friendly shell wrapper for common operations
- scripts/validate_pypi_ready.py: Comprehensive validation and readiness checker
- All scripts executable with proper error handling and validation

## GitHub Actions Automation
- .github/workflows/publish-pypi.yml: Complete CI/CD pipeline
- Automatic publishing on GitHub releases
- Manual workflow dispatch for TestPyPI uploads
- Package validation and installation testing

## Documentation & Security
- PUBLISHING.md: Comprehensive PyPI publishing guide
- scripts/README.md: Detailed script usage documentation
- .env.example: Environment variable template
- Secure token handling with both .pypirc and environment variables

## Features
 Version consistency validation across all files
 Comprehensive PyPI metadata and classifiers
 Multi-environment publishing (TestPyPI + PyPI)
 Automated GitHub Actions workflow
 Security best practices for API token handling
 Complete documentation and troubleshooting guides
 Enterprise-grade validation and error handling

The SuperClaude Framework is now fully prepared for PyPI publication
with professional-grade automation, validation, and documentation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
NomenAK
2025-08-15 15:15:51 +02:00
parent 8a594ed9d3
commit e8afb94163
11 changed files with 1202 additions and 12 deletions

View File

@@ -4,27 +4,32 @@ build-backend = "setuptools.build_meta"
[project]
name = "SuperClaude"
version = "3.0.0"
version = "4.0.0b1"
authors = [
{name = "Mithun Gowda B", email = "contact@superclaude.dev"},
{name = "NomenAK"}
]
description = "SuperClaude Framework Management Hub"
description = "SuperClaude Framework Management Hub - AI-enhanced development framework for Claude Code"
readme = "README.md"
license = "MIT"
license = {text = "MIT"}
requires-python = ">=3.8"
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Operating System :: OS Independent",
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Code Generators",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Environment :: Console",
]
keywords = ["claude", "ai", "automation", "framework", "mcp", "agents"]
keywords = ["claude", "ai", "automation", "framework", "mcp", "agents", "development", "code-generation", "assistant"]
dependencies = [
"setuptools>=45.0.0",
"importlib-metadata>=1.0.0; python_version<'3.8'"
@@ -55,12 +60,16 @@ test = [
]
[tool.setuptools]
packages = ["SuperClaude", "setup"]
include-package-data = true
[tool.setuptools.packages.find]
where = ["."]
include = ["SuperClaude*", "setup*"]
exclude = ["tests*", "*.tests*", "*.tests", ".git*", ".venv*", "*.egg-info*"]
[tool.setuptools.package-data]
"setup" = ["data/*.json", "data/*.yaml", "data/*.yml"]
"SuperClaude" = ["*.md", "*.txt"]
"setup" = ["data/*.json", "data/*.yaml", "data/*.yml", "components/*.py", "**/*.py"]
"SuperClaude" = ["*.md", "*.txt", "**/*.md", "**/*.txt", "**/*.json", "**/*.yaml", "**/*.yml"]
[tool.black]
line-length = 88