Skip to main content

CLI tool that scaffolds Python projects with dev tooling pre-configured

Project description

DevStart

PyPI version Python License: MIT

CLI tool that scaffolds Python projects with all dev tooling pre-configured.

Stop wasting time setting up ruff, mypy, pytest, Docker, CI, and pre-commit from scratch every time you start a new project. DevStart gives you a production-ready development environment in seconds.

Features

  • src/ layout with hatch dynamic versioning (__version__ as single source of truth)
  • Dev tooling out of the box: ruff (lint + format), mypy (strict), pytest, debugpy
  • Docker & Docker Compose with dev and prod configurations
  • GitHub Actions CI with pre-commit integration
  • Devcontainer with shared .venv — same venv on host and in container, no permission issues
  • Pre-commit hooks: ruff, codespell, gitleaks, mypy, pytest
  • PlantUML diagram templates for project documentation
  • Makefile with setup, lint, format, test, check, docker-up, and more
  • Interactive or fully flag-driven project creation

Installation

uv tool install devstart

Or with pip:

pip install devstart

Quick Start

# Interactive — prompts for project details
devstart new myproject

# Non-interactive — use all defaults
devstart new myproject -y

# Scaffold into current directory
devstart new .

Usage

devstart new myproject \
  --description "My awesome project" \
  --author "Your Name" \
  --python 3.14 \
  -y
Flag Default Description
[NAME] (prompted) Project name (positional arg)
--description / -d (prompted) Project description
--author / -a (prompted) Author name
--python 3.14 Python version
--no-interactive / -y false Use defaults, skip all prompts

Generated Project Structure

myproject/
├── src/myproject/
│   ├── __init__.py
│   ├── __main__.py
│   └── main.py
├── tests/
│   ├── __init__.py
│   ├── conftest.py
│   └── test_main.py
├── docker/
│   ├── Dockerfile
│   ├── docker-compose.yml
│   └── docker-compose.prod.yml
├── docs/
│   └── diagrams/
│       └── class_diagram.puml
├── .vscode/
│   ├── launch.json
│   └── settings.json
├── .github/workflows/ci.yml
├── .devcontainer/
│   ├── devcontainer.json
│   └── docker-compose.yml
├── .pre-commit-config.yaml
├── pyproject.toml
├── README.md
├── Makefile
├── .gitignore
├── .dockerignore
├── .env
└── .env.example

What You Get

Every generated project is immediately runnable:

cd myproject
make setup    # installs uv, syncs deps, sets up git + pre-commit
make check    # runs lint + format check + type check + tests
make test     # runs pytest
make format   # auto-formats with ruff
make infra      # starts infrastructure services
make docker-up  # starts app + infrastructure

Contributing

git clone https://github.com/AymanKastali/DevStart.git
cd DevStart
make setup
make check

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devstart-0.2.0.tar.gz (43.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devstart-0.2.0-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

Details for the file devstart-0.2.0.tar.gz.

File metadata

  • Download URL: devstart-0.2.0.tar.gz
  • Upload date:
  • Size: 43.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devstart-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6c2ce1afa9d7ba6d60f60b7e04eab0392114227e38080f9b0b08ae89715074ab
MD5 b9bc94ff952450bb182de758ee5178ce
BLAKE2b-256 b850dc8a2b457642c872b70eeda8fa07fb976c05aa657736272250d465df5492

See more details on using hashes here.

Provenance

The following attestation bundles were made for devstart-0.2.0.tar.gz:

Publisher: publish.yml on AymanKastali/DevStart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devstart-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: devstart-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 23.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devstart-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c07bb6d569e61f84a77c483597ba1dcdf56a3e8351e004f90ec4efb61186d12
MD5 8f6f82a162bfbf0363525117fbbf44bb
BLAKE2b-256 681587afdc83d3b660d3255fefb6bab71b9d12427872786a716999a2567409d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for devstart-0.2.0-py3-none-any.whl:

Publisher: publish.yml on AymanKastali/DevStart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page