From e7af683af6d906663e4d84378828c0ccdc3a642e Mon Sep 17 00:00:00 2001 From: Jon Chery Date: Wed, 19 Aug 2026 22:23:25 +0000 Subject: [PATCH] feat(P01): pyproject entry point + package discovery (REQ-324, cli-engineer) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - [project.scripts] nova = "nova.cli:main" - [tool.setuptools.packages.find] includes nova, core, adapters - requires-python bumped to >=3.12 - new `identity` extra (argon2-cffi, cryptography, pyjwt) - hypothesis>=6.100.0 added to `test` extra - fix build-backend to setuptools.build_meta (was non-existent setuptools.backends._legacy:_Backend — entry-point install was broken) - ignore .venv/ + nova.egg-info/ workspace artifacts ---ci--- project: acdl phase: 1 milestone: v1.28 status: execute persona: cli-engineer ---/ci--- --- .gitignore | 3 +++ pyproject.toml | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index dea8276..c8c5b0b 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,6 @@ metrics/lifecycle/ *.jks *.keystore.coverage .coverage + +.venv/ +nova.egg-info/ diff --git a/pyproject.toml b/pyproject.toml index c5af641..90112a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,19 +2,28 @@ name = "nova" version = "1.14.0" description = "Nova — consumers declare intent; the platform delivers safe production deployment." -requires-python = ">=3.10" +requires-python = ">=3.12" dependencies = [ "boto3>=1.34", "jsonschema>=4.20", "pyyaml>=6.0", ] +[project.scripts] +nova = "nova.cli:main" + [project.optional-dependencies] test = [ "pytest>=8.0", "pytest-cov>=4.0", "pytest-json-report>=1.5", "moto[dynamodb]>=5.0", + "hypothesis>=6.100.0", +] +identity = [ + "argon2-cffi>=23.1.0", + "cryptography>=42.0.0", + "pyjwt>=2.8.0", ] slides = ["python-pptx>=0.6.23"] @@ -34,4 +43,8 @@ run.source = ["core", "adapters"] [build-system] requires = ["setuptools>=68"] -build-backend = "setuptools.backends._legacy:_Backend" \ No newline at end of file +build-backend = "setuptools.build_meta" + +[tool.setuptools.packages.find] +where = ["."] +include = ["nova", "nova.*", "core", "core.*", "adapters.*"] \ No newline at end of file