Skip to main content

A creative dev automation engine for launching, documenting, and publishing projects

Project description

🌱 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

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

greening-0.5.2.tar.gz (4.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

greening-0.5.2-py3-none-any.whl (4.3 MB view details)

Uploaded Python 3

File details

Details for the file greening-0.5.2.tar.gz.

File metadata

  • Download URL: greening-0.5.2.tar.gz
  • Upload date:
  • Size: 4.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for greening-0.5.2.tar.gz
Algorithm Hash digest
SHA256 08a94a85298c501bb35456bc7c824b32b4b586dde3f9633cbaab1d4216123e60
MD5 9b779c836637e206b8cdb8f229b66131
BLAKE2b-256 679911875618a0aa65839b21a08ad41523d117c15ebc55c8d3f1a6533c77a805

See more details on using hashes here.

File details

Details for the file greening-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: greening-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for greening-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6e76d6bb7d0dc393900d1cf5bb77cc0d391a4ee63be9ee8019ea3d99bd255875
MD5 796d20ba743d7603c2b01ee25619d7e2
BLAKE2b-256 aba0f1e585e5614a72d73a7715986dd6b676a56de477bafd7fed5b8e9d5e897e

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