[package]
name = "webspec-index"
version = "0.4.0"
edition = "2021"
readme = "README.md"

[lib]
name = "webspec_index"
crate-type = ["cdylib", "rlib"]  # cdylib for Python, rlib for Rust/tests

[dependencies]
# PyO3 for Python bindings
pyo3 = { version = "0.28", features = ["extension-module"], optional = true }

# Core dependencies
# HTML parsing
scraper = "0.25"
html5ever = "0.38"
markup5ever_rcdom = "0.35"  # TODO: 0.36 conflicts with scraper's version

# HTTP client
reqwest = { version = "0.13", features = ["gzip", "json"] }

# Database
rusqlite = { version = "0.32", features = ["bundled"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# CLI
clap = { version = "4.5", features = ["derive"] }

# Async runtime
tokio = { version = "1.49", features = ["full"] }

# Error handling
anyhow = "1.0"

# HTML to Markdown
htmd = "0.5"

# Utilities
chrono = { version = "0.4", features = ["serde"] }
url = "2.5"
async-trait = "0.1"

[dev-dependencies]
tempfile = "3.24"

[features]
default = []
extension-module = ["pyo3/extension-module"]

[package.metadata.release]
# Disable publishing to crates.io (we publish to PyPI via maturin)
publish = false
# Pre-release: build and test the wheel
pre-release-hook = ["uv", "run", "maturin", "build", "--release"]
# Commit and tag settings
pre-release-commit-message = "Release v{{version}}"
tag-message = "Release v{{version}}"
tag-name = "v{{version}}"
tag-prefix = "v"
