🌱 Greening
greening is an opinionated, full-stack project automation tool for solo developers and creative coders.
With just a few commands, you can scaffold a production-ready Python package complete with docs, tests, GitHub Actions workflows, PyPI packaging, and an auto-deployed GitHub Pages site. No boilerplate or setup hell, just instant polish.
Table of Contents
- 🍃 Why
greening? - 🌿 Key features
- 🌲 Getting started
- 🌻 GitHub authentication
- 🌳 Blog posts
- 🌴 Roadmap
- 🍀 Support
🍃 Why greening?
Most devs never ship their tools. Not because the code isn’t good, but because the surrounding friction is too high:
- How do I structure the project?
- How do I set up CI/CD, tests, and linting?
- How do I make it look legit?
- How do I talk about it?
greening answers all of that in one opinionated workflow.
🌿 Key features
greening automates your project creation pipeline:
✅ greening init - generates a starter greening.yaml config file
✅ greening new - scaffolds your entire Python project in-place
Additional features:
- Builds and pushes a polished GitHub Pages site
- Automatically initializes a Git repo
- Optionally creates a GitHub repository via API
- Optionally pushes to GitHub (main branch)
- Injects metadata throughout the project using Cookiecutter
- Uses Jekyll + Minimal Mistakes for clean, brandable documentation
- Auto-documentation with Sphinx + Read the Docs support
- Automatically wire in Google Analytics if configured
🌲 Getting started
1. Install greening
pip install greening
2. Run greening init
This creates a starter config file in your current directory:
greening init
It generates greening.yaml:
project_name: Test project
project_slug: test_project
github_username: chris-greening
author_name: Chris Greening
email: chris@christophergreening.com
# git_remote: git@github.com:chris-greening/test-repo.git
push: false
create_github_repo: true
3. Scaffold the project
Run this in the same directory as your config:
greening new
greening will generate your project in-place and optionally push it to GitHub.
🌻 GitHub authentication
To enable GitHub repo creation and pushing:
- Generate a GitHub Personal Access Token with
reposcope - Add it to your shell config:
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Then run:
source ~/.bashrc # or ~/.zshrc
See this blog post for more
🌳 Blog posts
Check the blog out for more info here
- Introducing Greening: Ship Beautiful Software, Fast
- Open Source is Soil: The Greening Philosophy
- The Philosophy Behind Greening: Developer Momentum
- How to Generate a GitHub Token for Pushing Repos with Greening
- How to Enable Google Analytics Tracking in Your Greening-Deployed Site
🌴 Roadmap
A focused, opinionated roadmap toward making Greening the most seamless developer automation tool for launching and shipping polished open source projects.
- Plugin ecosystem to support custom features, commands, etc. within the greening command-line tool
- Custom template support for creating tailor-made templates
- Idempotent execution so commands are safe to run repeatedly with no unexpected side effects
- Cleanup partial builds in the event of a command failure to prevent half-baked launches
🍀 Support
Reach out to me if you want to connect or have any questions and I will do my best to get back to you
- Email:
- Twitter:
- Personal contact form:
Metadata
Release files for greening 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| greening-0.5.2.tar.gz | 4.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| greening-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.6 MB
Release files / greening-0.5.2.tar.gz
| Download URL | greening-0.5.2.tar.gz |
|---|---|
| Size | 4.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
08a94a85298c501bb35456bc7c824b32b4b586dde3f9633cbaab1d4216123e60
|
|
BLAKE2b-256 checksum How to use checksums |
679911875618a0aa65839b21a08ad41523d117c15ebc55c8d3f1a6533c77a805
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / greening-0.5.2-py3-none-any.whl
| Download URL | greening-0.5.2-py3-none-any.whl |
|---|---|
| Size | 4.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e76d6bb7d0dc393900d1cf5bb77cc0d391a4ee63be9ee8019ea3d99bd255875
|
|
BLAKE2b-256 checksum How to use checksums |
aba0f1e585e5614a72d73a7715986dd6b676a56de477bafd7fed5b8e9d5e897e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|