# NLSQ Development Dependencies (Minimum Versions)
# Updated: 2025-10-21
# Python: >=3.12
#
# Install with: pip install -r requirements-dev.txt
# This includes runtime dependencies + development tools
#
# Philosophy: Use minimum version constraints (>=) for flexibility
# - Allows users to upgrade dependencies
# - CI tests both minimum and latest versions
# - For reproducible builds, use: pip freeze > requirements-lock.txt
#
# BREAKING CHANGE (v0.2.0): h5py moved from optional to required dependency
# - h5py is now in requirements.txt (automatically included via -r below)

# Runtime dependencies (from requirements.txt)
-r requirements.txt

# Testing framework (latest stable as of 2025-10-21)
pytest>=8.4.2
pytest-cov>=7.0.0
pytest-xdist>=3.8.0
pytest-timeout>=2.4.0
pytest-benchmark>=5.1.0
hypothesis>=6.142.1

# Code quality and formatting
black>=25.9.0           # CalVer versioning
ruff>=0.14.1
mypy>=1.18.2
pre-commit>=4.3.0
bandit>=1.8.6
pyupgrade>=3.21.0

# Development tools
ipython>=9.6.0
ipykernel>=7.0.1

# Type stubs
types-python-dateutil>=2.9.0.20251008

# Documentation
sphinx>=8.2.3
sphinx-rtd-theme>=3.0.2
sphinx-autodoc-typehints>=3.5.2
myst-parser>=4.0.1

# Benchmarking
asv>=0.6.5
memory-profiler>=0.61.0

# Jupyter (optional but commonly used)
jupyterlab>=4.4.9
notebook>=7.4.7
notebook-shim>=0.2.4

# Build tools
build>=1.3.0
twine>=6.2.0
setuptools>=80.9.0
setuptools-scm>=9.2.1
wheel>=0.45.1
