feat: Add uv for faster and more efficient package management (#156)

* refactor: pyproject.toml to use Hatchling as the build backend and update project metadata

- Changed build backend from setuptools to hatchling.
- Updated project name, description, authors, and dependencies.
- Added project URLs and scripts section for SuperClaude.
- Configured versioning and build targets for wheel and sdist.

* feat: Update installation instructions in README.md to reflect new package management commands using 'uv' instead of 'pip'.

* feat: Add uv.lock file to manage package dependencies and versions for SuperClaude

* fix: Update library usage guidelines in RULES.md to reference pyproject.toml instead of requirements.txt
This commit is contained in:
Joevidev
2025-07-17 05:45:40 -05:00
committed by GitHub
parent bc6c53f78d
commit c05ce38159
4 changed files with 104 additions and 5 deletions

View File

@@ -98,14 +98,14 @@ SuperClaude installation is a **two-step process**:
**Option A: From PyPI (Recommended)**
```bash
pip install SuperClaude
uv add SuperClaude
```
**Option B: From Source**
```bash
git clone https://github.com/NomenAK/SuperClaude.git
cd SuperClaude
pip install .
uv sync
```
### 🔧 UV / UVX Setup Guide

View File

@@ -19,7 +19,7 @@ Simple actionable rules for Claude Code SuperClaude framework operation.
- Never commit automatically unless explicitly requested
### Framework Compliance
- Check package.json/requirements.txt before using libraries
- Check package.json/pyproject.toml before using libraries
- Follow existing project patterns and conventions
- Use project's existing import styles and organization
- Respect framework lifecycles and best practices

View File

@@ -1,4 +1,61 @@
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "SuperClaude"
dynamic = ["version"]
description = "SuperClaude Framework Management Hub"
readme = "README.md"
license = {text = "MIT"}
authors = [
{name = "Mithun Gowda B", email = "contact@superclaude.dev"},
{name = "NomenAK", email = "contact@superclaude.dev"},
]
requires-python = ">=3.8"
dependencies = [
"setuptools>=45.0.0",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
[project.urls]
Homepage = "https://github.com/NomenAK/SuperClaude"
Repository = "https://github.com/NomenAK/SuperClaude"
"Bug Tracker" = "https://github.com/NomenAK/SuperClaude/issues"
"GitHub" = "https://github.com/NomenAK/SuperClaude"
"Mithun Gowda B" = "https://github.com/mithun50"
"NomenAK" = "https://github.com/NomenAK"
[project.scripts]
SuperClaude = "SuperClaude.__main__:main"
[tool.hatch.version]
path = "VERSION"
pattern = "(?P<version>.*)"
[tool.hatch.build.targets.wheel]
packages = ["SuperClaude"]
[tool.hatch.build.targets.sdist]
include = [
"SuperClaude/",
"config/",
"profiles/",
"setup/",
"VERSION",
"README.md",
"LICENSE",
"MANIFEST.in",
]

42
uv.lock generated Normal file
View File

@@ -0,0 +1,42 @@
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"python_full_version >= '3.9'",
"python_full_version < '3.9'",
]
[[package]]
name = "setuptools"
version = "75.3.2"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version < '3.9'",
]
sdist = { url = "https://files.pythonhosted.org/packages/5c/01/771ea46cce201dd42cff043a5eea929d1c030fb3d1c2ee2729d02ca7814c/setuptools-75.3.2.tar.gz", hash = "sha256:3c1383e1038b68556a382c1e8ded8887cd20141b0eb5708a6c8d277de49364f5", size = 1354489 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/15/65/3f0dba35760d902849d39d38c0a72767794b1963227b69a587f8a336d08c/setuptools-75.3.2-py3-none-any.whl", hash = "sha256:90ab613b6583fc02d5369cbca13ea26ea0e182d1df2d943ee9cbe81d4c61add9", size = 1251198 },
]
[[package]]
name = "setuptools"
version = "80.9.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.9'",
]
sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486 },
]
[[package]]
name = "superclaude"
source = { editable = "." }
dependencies = [
{ name = "setuptools", version = "75.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
{ name = "setuptools", version = "80.9.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
]
[package.metadata]
requires-dist = [{ name = "setuptools", specifier = ">=45.0.0" }]