Skip to main content

shawn deng repo temple project

Project description

repo-scaffold

PyPI version Python Version License: MIT Tests

A modern, intelligent project scaffolding tool that generates production-ready Python projects in seconds.

โœจ Features

  • ๐Ÿš€ Zero-config setup - Create projects instantly without answering questions
  • ๐Ÿ“ฆ Component-based architecture - Mix and match features as needed
  • ๐ŸŽฏ Production-ready templates - Includes CI/CD, testing, documentation, and more
  • ๐Ÿ”ง Modern Python tooling - Built with uv, Ruff, pytest, and Task automation
  • ๐Ÿณ Container support - Optional Podman/Docker integration
  • ๐Ÿ“š Documentation ready - MkDocs setup with auto-generated API docs
  • ๐Ÿ”„ GitHub Actions - Complete CI/CD workflows included
  • ๐Ÿ“ฆ PyPI publishing - Automated package publishing with trusted publishing
  • ๐ŸŽจ Code quality - Pre-commit hooks, linting, and formatting configured

๐Ÿš€ Quick Start

Installation

# Install globally with uvx (recommended)
uvx install repo-scaffold

# Or install with pip
pip install repo-scaffold

Create Your First Project

# Create a Python library project (uses smart defaults)
repo-scaffold create

# That's it! Your project is ready with:
# โœ… Modern Python setup (pyproject.toml, uv)
# โœ… Testing framework (pytest with coverage)
# โœ… Code quality tools (ruff, pre-commit)
# โœ… GitHub Actions CI/CD
# โœ… Documentation (MkDocs)
# โœ… Task automation (Taskfile)

What You Get

After running repo-scaffold create, you'll have a complete project structure:

my-python-library/
โ”œโ”€โ”€ .github/workflows/     # CI/CD pipelines
โ”œโ”€โ”€ docs/                  # MkDocs documentation
โ”œโ”€โ”€ tests/                 # Test suite
โ”œโ”€โ”€ my_python_library/     # Your package
โ”œโ”€โ”€ pyproject.toml         # Modern Python configuration
โ”œโ”€โ”€ Taskfile.yml          # Task automation
โ”œโ”€โ”€ README.md             # Project documentation
โ””โ”€โ”€ .pre-commit-config.yaml # Code quality hooks

Start Developing

cd my-python-library
task init    # Initialize development environment
task test    # Run tests
task lint    # Check code quality
task docs    # Serve documentation locally

๐Ÿ“‹ Available Commands

# Project creation
repo-scaffold create                    # Create with defaults (recommended)
repo-scaffold create --input           # Interactive mode with prompts
repo-scaffold create -t python-library # Specify template explicitly
repo-scaffold create -o ./my-project   # Specify output directory

# Information commands
repo-scaffold list                      # List available templates
repo-scaffold components               # List available components
repo-scaffold show python-library      # Show template details
repo-scaffold --help                   # Show help

๐ŸŽฏ Usage Examples

Basic Usage (Recommended)

# Create a project with smart defaults - no questions asked!
repo-scaffold create

This creates a full-featured Python library with:

  • Python Core: Modern pyproject.toml setup with uv
  • Task Automation: Taskfile.yml for common development tasks
  • GitHub Actions: Complete CI/CD with testing, linting, and publishing
  • Documentation: MkDocs with auto-generated API docs
  • Code Quality: Pre-commit hooks, Ruff linting and formatting
  • Container Support: Podman/Docker setup for containerized development
  • PyPI Publishing: Automated package publishing workflows

Interactive Mode

# If you want to customize the setup
repo-scaffold create --input

This will prompt you to:

  • Choose which components to include
  • Configure project details
  • Set up custom options

Advanced Usage

# Create in specific directory
repo-scaffold create -o ~/projects/my-new-lib

# Use different template (when more templates are available)
repo-scaffold create -t python-library

# Combine options
repo-scaffold create -t python-library -o ~/projects --input

๐Ÿงฉ Available Components

The python-library template includes these components:

Component Description Included by Default
Python Core Modern Python setup with pyproject.toml and uv โœ…
Task Automation Taskfile.yml for development workflows โœ…
GitHub Actions CI/CD pipelines for testing and deployment โœ…
MkDocs Documentation site with auto-generated API docs โœ…
Pre-commit Code quality hooks and automated formatting โœ…
Podman Container support for development and deployment โœ…
PyPI Publishing Automated package publishing to PyPI โœ…

๐Ÿ› ๏ธ Development Workflow

After creating your project, here's the typical development workflow:

# 1. Initialize the development environment
task init

# 2. Make your changes
# Edit code in your_package/

# 3. Run tests
task test

# 4. Check code quality
task lint

# 5. View documentation
task docs

# 6. Build package
task build

# 7. Commit changes (pre-commit hooks will run automatically)
git add .
git commit -m "feat: add new feature"

# 8. Push to trigger CI/CD
git push

๐Ÿ”ง Configuration

Default Values

The tool uses sensible defaults for all configuration:

  • Project Name: "My Python Library"
  • Package Name: Auto-generated from project name
  • Author: "Your Name" (customize in interactive mode)
  • License: MIT
  • Python Version: 3.10-3.12 support, 3.10 for development
  • All Components: Enabled by default

Customization

Use --input flag for interactive customization:

repo-scaffold create --input

This allows you to:

  • Set custom project name and description
  • Choose your preferred license
  • Select which components to include
  • Configure component-specific options

๐Ÿ“š Documentation

๐Ÿค Contributing

Contributions are welcome! Please see our Contributing Guide for details.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

Built with modern Python tooling:

  • uv - Fast Python package manager
  • Ruff - Lightning-fast Python linter
  • pytest - Testing framework
  • MkDocs - Documentation generator
  • Task - Task automation
  • Cookiecutter - Template engine

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

repo_scaffold-0.12.1.tar.gz (106.9 kB view details)

Uploaded Source

Built Distribution

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

repo_scaffold-0.12.1-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file repo_scaffold-0.12.1.tar.gz.

File metadata

  • Download URL: repo_scaffold-0.12.1.tar.gz
  • Upload date:
  • Size: 106.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.3

File hashes

Hashes for repo_scaffold-0.12.1.tar.gz
Algorithm Hash digest
SHA256 3a36b0924773728ec98abf5bbfabb0f7689b235e066c069c29bac7685685fb98
MD5 58d25736e5ecaee4dbe5f78be016d6bb
BLAKE2b-256 7db5a79c8456c8337d69c868a13cc5637b97d18652b684515651fa69205e0fcf

See more details on using hashes here.

File details

Details for the file repo_scaffold-0.12.1-py3-none-any.whl.

File metadata

File hashes

Hashes for repo_scaffold-0.12.1-py3-none-any.whl
Algorithm Hash digest
SHA256 716bac6c548bc71abfb01d0ff648ac14f142c494e6d3071240a1ae6351059c30
MD5 8f6fb20709c4288fd7d47123e822fbb5
BLAKE2b-256 4751a7e28a023e214077cb8a8ea87b110df7141abbe07c8e556b010c39477884

See more details on using hashes here.

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