mirror of
https://github.com/Kaelio/ktx.git
synced 2026-06-10 08:05:14 +02:00
Make packages/cli/package.json the single source of truth for the @kaelio/ktx version. publicNpmPackageVersion() now reads it directly, so artifact filenames, release-readiness checks, and the Python wheel version all derive from one field. The duplicate release-policy.json.publicNpmPackageVersion is removed. Previously the two fields could drift: tarballs were named kaelio-ktx-0.4.1.tgz while internally containing @kaelio/ktx@0.0.0-private. - update-public-release-version.mjs rewrites both Python pyproject.toml files (ktx-daemon, ktx-sl) alongside the npm package.jsons, normalizing the version for PEP 440 (e.g. 0.1.0-rc.2 -> 0.1.0rc2). - semantic-release-config.cjs adds the two pyproject.toml files to @semantic-release/git assets so the release commit back to main carries every version source in lockstep. - The six "?? '0.0.0-private'" fallback literals across the CLI are replaced with "?? getKtxCliPackageInfo().version", and createDefaultKtxMcpServer makes its version arg required. - docs/release.md describes the actual commit-back model: the dev tree always reflects the most recent release; no sentinel pin to maintain. Verified: pnpm run artifacts:build now produces kaelio-ktx-0.4.1.tgz and kaelio_ktx-0.4.1-py3-none-any.whl with @kaelio/ktx@0.4.1 inside. Full type-check, dead-code, and 2287 vitests + 173 script tests pass.
59 lines
1.1 KiB
TOML
59 lines
1.1 KiB
TOML
[project]
|
|
name = "ktx-sl"
|
|
version = "0.4.1"
|
|
description = "Agent-first semantic layer engine with aggregate locality"
|
|
readme = "README.md"
|
|
requires-python = ">=3.13"
|
|
license = "Apache-2.0"
|
|
dependencies = [
|
|
"sqlglot>=26",
|
|
"pydantic>=2",
|
|
"pyyaml>=6",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/kaelio/ktx"
|
|
Repository = "https://github.com/kaelio/ktx"
|
|
Issues = "https://github.com/kaelio/ktx/issues"
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8",
|
|
"pytest-cov",
|
|
"ruff",
|
|
"pre-commit",
|
|
]
|
|
tpch = [
|
|
"duckdb>=1.0",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
pythonpath = ["tests"]
|
|
addopts = "--cov=semantic_layer --cov-report=term-missing --cov-report=html"
|
|
|
|
[tool.coverage.run]
|
|
source = ["semantic_layer"]
|
|
branch = true
|
|
|
|
[tool.coverage.report]
|
|
show_missing = true
|
|
skip_empty = true
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"if __name__ == .__main__.",
|
|
"if TYPE_CHECKING:",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["semantic_layer"]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=9.0.2",
|
|
"pytest-cov>=7.1.0",
|
|
]
|