# ----------------------------------------------------------------
# 💡 Build system (PEP 517)
#     - setuptools ≥ 77 gives SPDX licence support (PEP 639)
#     - wheel is needed by most build front-ends
# ----------------------------------------------------------------
[build-system]
requires = ["setuptools>=77", "wheel"]
build-backend = "setuptools.build_meta"

# ----------------------------------------------------------------
# 📦 Core project metadata (PEP 621)
# ----------------------------------------------------------------
[project]
name = "{{ plugin_name|lower|replace(' ', '_')|replace('-', '_') }}"
version = "{{version}}"
description = "{{description}}"
keywords = ["MCP","API","gateway","tools",
  "agents","agentic ai","model context protocol","multi-agent","fastapi",
  "json-rpc","sse","websocket","federation","security","authentication"
]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Framework :: FastAPI",
    "Framework :: AsyncIO",
    "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
    "Topic :: Software Development :: Libraries :: Application Frameworks"
]
readme = "README.md"
requires-python = ">=3.11,<3.14"
license = "Apache-2.0"
license-files = ["LICENSE"]

maintainers = [
    {name = "{{author}}", email = "{{email}}"}
]

authors = [
    {name = "{{author}}", email = "{{email}}"}
]

dependencies = [
    "mcp>=1.16.0",
    "mcp-contextforge-gateway",
]

# URLs
[project.urls]
Homepage = "https://ibm.github.io/mcp-context-forge/"
Documentation = "https://ibm.github.io/mcp-context-forge/"
Repository = "https://github.com/IBM/mcp-context-forge"
"Bug Tracker" = "https://github.com/IBM/mcp-context-forge/issues"
Changelog = "https://github.com/IBM/mcp-context-forge/blob/main/CHANGELOG.md"

[tool.uv.sources]
mcp-contextforge-gateway = { git = "https://github.com/IBM/mcp-context-forge.git", rev = "main" }

# ----------------------------------------------------------------
# Optional dependency groups (extras)
# ----------------------------------------------------------------
[project.optional-dependencies]
dev = [
    "black>=25.1.0",
    "pytest>=8.4.1",
    "pytest-asyncio>=1.1.0",
    "pytest-cov>=6.2.1",
    "pytest-dotenv>=0.5.2",
    "pytest-env>=1.1.5",
    "pytest-examples>=0.0.18",
    "pytest-md-report>=0.7.0",
    "pytest-rerunfailures>=15.1",
    "pytest-trio>=0.8.0",
    "pytest-xdist>=3.8.0",
    "ruff>=0.12.9",
    "unimport>=1.2.1",
    "uv>=0.8.11",
]

# --------------------------------------------------------------------
#  🔧 setuptools-specific configuration
# --------------------------------------------------------------------
[tool.setuptools]
include-package-data = true          # ensure wheels include the data files

# Automatic discovery: keep every package that starts with "{{ plugin_name|lower|replace(' ', '_')|replace('-', '_') }}"
[tool.setuptools.packages.find]
include = ["{{ plugin_name|lower|replace(' ', '_')|replace('-', '_') }}*"]
exclude = ["tests*"]

##  Runtime data files  ------------------------------------------------
[tool.setuptools.package-data]
{{ plugin_name|lower|replace(' ', '_')|replace('-', '_') }} = [
  "resources/plugins/config.yaml",
]
