diff --git a/@todo.md b/@todo.md index e85cea5..35cdbce 100644 --- a/@todo.md +++ b/@todo.md @@ -24,7 +24,7 @@ ### Packaging & Distribution - [x] Publish to PyPI - [x] Provide `uv`/`pipx` installation guide. -- [ ] Add `pyproject.toml` and PEP 517/518 build backend. +- [x] Add `pyproject.toml` and PEP 517/518 build backend. - [ ] Arch AUR PKGBUILD (devtools-bin and devtools-git). ### Quality: Testing & Linting diff --git a/README.md b/README.md index 18eb235..30e7afe 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,19 @@ A collection of developer tools to enhance your workflow. This package includes # Stable release from PyPI pip install devtools-utils -# Using pipx +# Using pipx (recommended for isolated CLI) pipx install devtools-utils +# Using uv (fast Python package manager) +uv tool install devtools-utils +``` + +Arch Linux prerequisites (for pipx/uv): + +```bash +sudo pacman -S --needed python python-pip python-pipx git +# optional: uv via pipx +pipx install uv ``` ## Configuration @@ -478,6 +488,15 @@ python3 scripts/lintfix.py devtools --help ``` +Build from source (PEP 517): + +```bash +# Requires pyproject.toml +python -m build +# or with uv +uv build +``` + ## Contributing Contributions are welcome! Please open issues or submit pull requests. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..117fe24 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,46 @@ +[build-system] +requires = ["setuptools>=61", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "devtools-utils" +version = "0.1.0" +description = "A collection of developer tools" +readme = "README.md" +requires-python = ">=3.7" +authors = [ + { name = "Sankalp Tharu", email = "sankalptharu50028@gmail.com" }, +] +license = { text = "GPL-3.0-or-later" } +keywords = ["devtools", "cli", "git", "changelog", "gitignore", "license"] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", +] +dependencies = [ + "click>=8.0.0", + "rich>=10.0.0", + "requests>=2.25.0", + "pyyaml>=5.0.0", +] + +[project.urls] +Homepage = "https://github.com/S4NKALP/DevTools" + +[project.scripts] +devtools = "devtools.cli:cli" + +[tool.setuptools] +include-package-data = true + +[tool.setuptools.packages.find] +include = ["devtools*"] + +