Skip to main content

shawn deng repo temple project

Project description

repo-scaffold

PyPI version Python Version License: MIT

A modern project scaffolding tool that helps you quickly create standardized project structures with best practices.

Features

  • 🚀 Quick project initialization with modern best practices
  • 📦 Cookiecutter templates with standardized structure
  • ⚙️ Interactive project configuration
  • 🔧 Pre-configured development tools (ruff, pytest, just)
  • 📚 Documentation setup with MkDocs Material
  • 🔄 GitHub Actions workflows included
  • 🏷️ Conventional-commit driven versioning via Cocogitto
  • 📦 Dependency / workspace management with uv

Installation

# Recommended: install as a uv tool
uv tool install repo-scaffold

# Or run without installing
uvx repo-scaffold list

# Or with pip
pip install repo-scaffold

Quick Start

# List available templates
repo-scaffold list

# Create a new project (interactive)
repo-scaffold create python

# Create a project in a specific directory, no prompts
repo-scaffold create python --no-input -o ./my-projects

# Create a uv workspace monorepo
repo-scaffold create uv-workspace -o ./my-projects

Available Templates

Currently supported project templates:

  • python — single-package Python project

    • pyproject.toml + uv for dependency management
    • pytest + coverage, ruff for lint & format
    • Optional Click CLI, Podman compose files, GitHub Actions, MkDocs Material docs
    • Cocogitto release workflow that bumps version, writes CHANGELOG.md, tags, and triggers PyPI publish
  • uv-workspace — uv workspace monorepo

    • Workspace-aware pyproject.toml with one initial member under packages/
    • Shared dev / docs dependency groups
    • Cocogitto monorepo release workflow with per-package and global tags
    • Same lint / test / docs tooling as the python template

Both templates use just (via rust-just) as the task runner. Bootstrap from a clean machine with uvx --from rust-just just init — that recipe also installs rust-just as a uv tool, so every subsequent recipe can be run as plain just <recipe>.

Development Setup

# Clone the repository
git clone https://github.com/ShawnDen-coder/repo-scaffold.git
cd repo-scaffold

# Bootstrap once: installs rust-just as a uv tool, syncs deps, installs hooks
uvx --from rust-just just init

# Subsequent runs use `just` directly
just lint
just test

Releasing

This project (and the templates it generates) uses Cocogitto driven by conventional commits:

  • Push a feat: / fix: / breaking-change commit to master and the version-bump workflow runs cog bump --auto, updating CHANGELOG.md, bumping pyproject.toml via uv version, committing, and tagging.
  • The release workflow then builds and publishes the tagged version.

See cog.toml for hook and changelog configuration.

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.15.0.tar.gz (26.2 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.15.0-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: repo_scaffold-0.15.0.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for repo_scaffold-0.15.0.tar.gz
Algorithm Hash digest
SHA256 0329d9abc30b3f0678e92d3d32358834aeb922e1060452de6c3a9d55aefdf3ec
MD5 1aaea7a81d53d56dd595053a31533817
BLAKE2b-256 b34023e903f65102f8ad59abd2f15e75162c629ceb4d10277199895e655d4492

See more details on using hashes here.

File details

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

File metadata

  • Download URL: repo_scaffold-0.15.0-py3-none-any.whl
  • Upload date:
  • Size: 44.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for repo_scaffold-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b19855316060c89652acf18a1e47ea1a226c99828e3dc83359d0d09b319c8b8
MD5 96817fa40efed1a5f2b8e4abbece9183
BLAKE2b-256 f64f97f71e2d6d093191640729c2964d2860454c1e57c60f873af31944223c47

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