-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
65 lines (56 loc) · 1.85 KB
/
Copy pathpyproject.toml
File metadata and controls
65 lines (56 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[project]
name = "cfgit"
version = "0.4.7"
description = "Git-style history, diff, drift detection, and rollback for live database records without migrating or owning your datastore"
readme = "README.md"
requires-python = ">=3.11"
license = { file = "LICENSE" }
authors = [{ name = "Mohammad Ausaf" }]
keywords = [
"version-control",
"database",
"datastore",
"configuration",
"mongodb",
"postgres",
"mcp",
"agents",
"rollback",
"drift-detection",
"database-versioning",
]
# Core has NO database driver and NO LLM SDK. That boundary is enforced in CI
# (see [tool.cfg.ci] note below and SPEC section 1). Adapters/plugins bring their own deps
# via extras.
dependencies = [
"tomli; python_version < '3.11'",
]
[project.optional-dependencies]
mongo = ["pymongo>=4.6"]
postgres = ["psycopg[binary]>=3.2"]
cli = ["click>=8.1", "rich>=13.0"]
# mcp 2.0 relocated FastMCP off `mcp.server.fastmcp`, which cfg/mcp/server.py imports.
# Cap below 2.0 until the server is ported to the 2.x API.
mcp = ["mcp>=1.0,<2"]
impact = [] # the cfgit-impact plugin declares its own model-client deps; never in core
dev = ["pytest>=8.0", "pytest-asyncio", "ruff", "mypy", "httpx>=0.27"]
[project.urls]
Homepage = "https://github.com/AusafMo/cfgit"
Repository = "https://github.com/AusafMo/cfgit"
Issues = "https://github.com/AusafMo/cfgit/issues"
Documentation = "https://github.com/AusafMo/cfgit#readme"
[project.scripts]
cfg = "cfg.cli.main:main"
cfg-mcp = "cfg.mcp.server:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/cfg"]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.pytest.ini_options]
testpaths = ["tests"]
# SPEC section 1 inviolable rule 1: core must not import a DB driver or LLM SDK.
# Enforced by tests/test_core_purity.py (greps src/cfg/core for forbidden imports).