Skip to content

Commit 65b2e4c

Browse files
committed
docs: Updated README.md
1 parent a6fe9a3 commit 65b2e4c

File tree

1 file changed

+93
-19
lines changed

1 file changed

+93
-19
lines changed

README.md

Lines changed: 93 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
[![gh:JnyJny/python-package-cookiecutter][python-package-cookiecutter-badge]][python-package-cookiecutter] [![releases][release-badge]][releases] [![test-status][test-status-badge]][testing-workflow]
1+
[![gh:JnyJny/python-package-cookiecutter][python-package-cookiecutter-badge]][python-package-cookiecutter]
2+
[![releases][release-badge]][releases]
3+
[![test-status][test-status-badge]][testing-workflow]
24

35
# Python Package Cookiecutter Template
46

@@ -16,27 +18,97 @@ automatically configured to deploy to GitHub Pages using
1618
base files to help provide a great GitHub experience for you and
1719
people that interact with your project repository.
1820

19-
## TL;DR - Create Your New Project
21+
## Why Use This Template?
22+
23+
### **Zero Configuration Required**
24+
- **Complete CI/CD pipeline** with GitHub Actions for testing, building, and publishing
25+
- **Automated PyPI publishing** with trusted publishing (no API tokens needed)
26+
- **Documentation** auto-deployed to GitHub Pages
27+
- **Quality tools pre-configured**: ruff, ty, pytest, coverage reporting
28+
29+
### **Python Ecosystem**
30+
- **[uv][uv]** for lightning-fast dependency management and Python version control
31+
- **[Typer][typer]** CLI framework with rich help and autocompletion
32+
- **[Loguru][loguru]** for beautiful, structured logging
33+
- **[Pydantic Settings][pydantic-settings]** for configuration management
34+
- **[MkDocs][mkdocs]** with multiple theme options for documentation
35+
36+
### **Package Structure**
37+
- **src/ layout** following Python packaging best practices
38+
- **Comprehensive testing** setup with pytest and coverage
39+
- **Multiple build backends** (uv or hatch)
40+
- **Semantic versioning** with automated changelog generation
41+
- **Cross-platform testing** (Linux, macOS, Windows)
42+
43+
### **Seamless Workflow**
44+
```mermaid
45+
flowchart LR
46+
Code[Write Code] --> Test[poe qc] --> Release[poe publish] --> Live[Live on PyPI]
47+
```
2048

21-
### With uvx
49+
## Quick Start
50+
51+
### Create Your Project
2252

2353
```console
54+
# With uvx (recommended)
2455
uvx cookiecutter gh:JnyJny/python-package-cookiecutter
25-
```
2656

27-
### With pip
28-
```console
57+
# Or with pip
2958
pip install cookiecutter
3059
cookiecutter gh:JnyJny/python-package-cookiecutter
3160
```
3261

33-
### Get To Work!
34-
```
62+
### Start Developing
63+
64+
```console
3565
cd your-new-project
36-
poe --help
66+
poe --help # See all available tasks
67+
poe qc # Run quality checks
68+
poe test # Run tests
69+
poe publish_patch # Release to PyPI
3770
```
3871

39-
## Build Features
72+
**That's it!** Your package is now live on PyPI with documentation deployed to
73+
GitHub Pages.
74+
75+
## Table of Contents
76+
77+
- [Prerequisites](#prerequisites)
78+
- [Project Setup Process](#project-setup-process)
79+
- [Package Features](#package-features)
80+
- [Code Features](#code-features)
81+
- [Quality of Life Features](#quality-of-life-features)
82+
- [GitHub Integrations](#github-integrations)
83+
- [Documentation with MkDocs](#documentation-with-mkdocs)
84+
- [Development Workflows](#development-workflows)
85+
- [Example Development Workflow](#example-development-workflow)
86+
- [GitHub Actions Workflow](#github-actions-workflow)
87+
- [Default Poe Tasks](#default-poe-tasks)
88+
- [Things You Will Want to Change](#things-you-will-want-to-change)
89+
- [Example Package Tree](#example-package-tree)
90+
91+
---
92+
93+
## Prerequisites
94+
95+
### User Accounts
96+
- GitHub account _optional_ but recommended.
97+
- PyPI account _optional_ but recommended.
98+
99+
### Tools You Need To Make This Work
100+
101+
| Tool | Required | Optional | Use |
102+
|------|----------|----------|-----|
103+
|[cookiecutter][cookiecutter]|| |Creates projects from templates.|
104+
|[git][git]|| | Version control system. |
105+
|[uv][uv]|| | Manage python, virtual environments and your project!|
106+
|[direnv][direnv]| ||Automatically activate and deactivate virtual environments.|
107+
|[gh][gh]| || GitHub CLI tool for working with repositories.|
108+
109+
## Project Setup Process
110+
111+
When you run the cookiecutter template, it automatically:
40112

41113
- Choose from a [plethora][plethora] of Open Source licenses.
42114
- Automatically detects GitHub user name and email address (if configured).
@@ -49,15 +121,15 @@ poe --help
49121
- Optionally creates an upstream repository and pushes (GitHub only, requires [gh][gh]).
50122
- Automatically enables GitHub Pages for MkDocs documentation deployment.
51123

52-
## So Many Package Features
124+
## Package Features
53125

54126
### Code Features
55127
- Python `src` style project designed to be managed with [uv][uv].
56128
- Includes a command line interface built with [typer][typer].
57129
- Application settings optionally managed with [pydantic-settings][pydantic-settings].
58130
- Preconfigured with a `self` subcommand like all the cool kids.
59131
- Logging handled by [loguru][loguru] with optional logging to a file.
60-
- Package is also callable via `python -m <package>` magic.
132+
- Package command line interface via `python -m <package>` magic.
61133
- Package documentation built with [MkDocs][mkdocs].
62134
- Automatic API documentation generation from docstrings.
63135

@@ -81,7 +153,7 @@ poe --help
81153
- Themed MkDocs workflow with search and API documentation.
82154
- Automatic GitHub release generation with release notes.
83155

84-
#### GitHub Actions Workflow
156+
### GitHub Actions Workflow
85157

86158
The template includes a comprehensive CI/CD pipeline triggered by semantic version tags:
87159

@@ -172,7 +244,7 @@ following:
172244
$
173245
```
174246

175-
### Example Package Tree
247+
## Example Package Tree
176248

177249
```console
178250
$ cd <YOUR_PACKAGE_NAME_HERE>
@@ -241,7 +313,7 @@ for use without having to use `uv run` to preface the command. Check
241313
out `poe`!
242314

243315

244-
## Default Poe Tasks
316+
## Default Poe Tasks
245317

246318
```console
247319
$ poe
@@ -296,7 +368,7 @@ Generated projects include a complete documentation setup using
296368
### Theme Options
297369
Choose from five MkDocs themes during project generation:
298370

299-
- **Material** - Modern Material Design with dark/light mode, advanced navigation.
371+
- **Material** - Material Design with dark/light mode, advanced navigation.
300372
- **Read the Docs** - Classic documentation style, clean and familiar.
301373
- **MkDocs** - Default lightweight theme, simple and fast.
302374
- **Bootstrap** - Responsive Bootstrap-based theme, mobile-friendly.
@@ -306,7 +378,7 @@ Choose from five MkDocs themes during project generation:
306378
- **Auto-generated API documentation** from your code's docstrings.
307379
- **Search functionality** with highlighting.
308380
- **Automated deployment** to GitHub Pages via GitHub Actions.
309-
- **Professional structure** with getting started, user guide, and API reference.
381+
- **Complete structure** with getting started, user guide, and API reference.
310382
- **Theme-optimized configuration** with appropriate plugins and extensions.
311383

312384
### Automatic Deployment
@@ -333,7 +405,9 @@ docs/
333405
The documentation is automatically customized with your project name,
334406
GitHub username, and other template values.
335407

336-
## Example Development Workflow
408+
## Development Workflows
409+
410+
### Example Development Workflow
337411

338412
This is roughly how I write code and how I would use the generated package.
339413

@@ -360,7 +434,7 @@ flowchart TD
360434
Major --> Tag
361435
362436
Tag --> CI[GitHub Actions<br/>CI/CD Pipeline]
363-
CI --> Success[Published to PyPI<br/>📚 Docs Deployed<br/>🎉 GitHub Release]
437+
CI --> Success[Published to PyPI<br/>Docs Deployed<br/>GitHub Release]
364438
365439
Success --> Edit
366440

0 commit comments

Comments
 (0)