Skip to main content

🌱 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.

Downloads Issues License Version

"Buy Me A Coffee"

Table of Contents


🍃 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.

User typing in commands greening init, greening new, and greening deploy and rapidly deploying a project


🌿 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:

  1. Generate a GitHub Personal Access Token with repo scope
  2. 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

🌴 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

Python logo with greenery growing around it

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)

Source distribution for greening 0.5.2
File Size Uploaded
greening-0.5.2.tar.gz 4.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for greening 0.5.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.5.2 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page