"""
Release Management Capability

A comprehensive release management system for Python projects providing:
- Automatic version management with setuptools-scm
- Package building and distribution
- Multi-platform publishing (Gitea, PyPI, etc.)
- Git tag-based release workflows
- CLI tools for release automation

Main Components:
- ReleaseManager: Orchestrates complete release workflows
- PackageBuilder: Handles package generation and building
- PublishManager: Manages package publication to registries
- GitManager: Git operations for releases
- Registry Support: Gitea, PyPI, and extensible registry system

Quick Start:
    from release_management import ReleaseManager

    manager = ReleaseManager()
    success = manager.publish_release("1.0.0")

CLI Usage:
    release status
    release publish --version 1.0.0
    release upload --registry gitea
"""

from .core.manager import ReleaseManager
from .core.builder import PackageBuilder
from .core.publisher import PublishManager
from .git.manager import GitManager
from .registries.factory import RegistryFactory
from .registries.gitea.registry import GiteaRegistry
from .utils.version import VersionManager
from .utils.validation import ReleaseValidator

# Version is managed in pyproject.toml
__version__ = "0.1.0"

__all__ = [
    # Core classes
    "ReleaseManager",
    "PackageBuilder",
    "PublishManager",
    "GitManager",

    # Registry support
    "RegistryFactory",
    "GiteaRegistry",

    # Utilities
    "VersionManager",
    "ReleaseValidator",

    # Version
    "__version__",
]

# Package metadata
__title__ = "release-management"
__description__ = "Comprehensive release management capability for Python projects"
__author__ = "MarkiTect Project"
__license__ = "MIT"