shawn deng repo temple project
Project description
repo-scaffold
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:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a36b0924773728ec98abf5bbfabb0f7689b235e066c069c29bac7685685fb98
|
|
| MD5 |
58d25736e5ecaee4dbe5f78be016d6bb
|
|
| BLAKE2b-256 |
7db5a79c8456c8337d69c868a13cc5637b97d18652b684515651fa69205e0fcf
|
File details
Details for the file repo_scaffold-0.12.1-py3-none-any.whl.
File metadata
- Download URL: repo_scaffold-0.12.1-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
716bac6c548bc71abfb01d0ff648ac14f142c494e6d3071240a1ae6351059c30
|
|
| MD5 |
8f6fb20709c4288fd7d47123e822fbb5
|
|
| BLAKE2b-256 |
4751a7e28a023e214077cb8a8ea87b110df7141abbe07c8e556b010c39477884
|