Skip to main content

jbussdieker

A modern Python development toolkit with a modular plugin architecture — from project scaffolding to AI-powered commits with automated releases.

🚀 What it does

jbussdieker is your complete Python development toolkit built with a modular plugin system:

Core CLI Framework:

  • ✅ Lightweight CLI with plugin discovery via entry points
  • ✅ Configurable logging and settings management
  • ✅ Extensible command system for plugins

Plugin Ecosystem:

  • ✅ jbussdieker-project — Project scaffolding and templates
  • ✅ jbussdieker-commit — AI-powered conventional commit messages
  • ✅ jbussdieker-app — Application framework and utilities
  • ✅ jbussdieker-service — Service layer and API utilities
  • ✅ jbussdieker-storage — Data storage and persistence layer
  • ✅ jbussdieker-config — Configuration management (core dependency)

Modern Python Development:

  • ✅ release-please workflow for versioning and changelogs
  • ✅ Publish to PyPI using Trusted Publishers
  • ✅ GitHub Actions CI for linting, typing, tests, and publishing

No tokens. No manual uploads. Just push, merge, and release.

📦 Install

Core CLI

pip install jbussdieker

With all plugins

pip install jbussdieker[all]

Individual plugins

# Project scaffolding
pip install jbussdieker[project]

# AI-powered commits
pip install jbussdieker[commit]

# Application framework
pip install jbussdieker[app]

# Service layer
pip install jbussdieker[service]

# Storage layer
pip install jbussdieker[storage]

🔌 Plugin Ecosystem

jbussdieker-project — Project Scaffolding

Create modern Python projects with zero friction:

jbussdieker project create myproject
cd myproject
git init
git commit --allow-empty -m "chore: init"
gh repo create --source=. --private --push
git add .
git commit -m "feat: initial commit"
git push

Features:

  • ✅ pyproject.toml using PEP 621
  • ✅ GitHub Actions CI for linting, typing, tests, and publishing
  • ✅ Makefile with simple install, lint, test commands
  • ✅ .gitignore for Python best practices
  • ✅ release-please workflow for versioning and changelogs
  • ✅ Publish to PyPI using Trusted Publishers

jbussdieker-commit — AI-Powered Commits

Generate conventional commit messages using AI:

# Stage your changes
git add .

# Generate and edit a commit message
jbussdieker commit

# Or preview the message without committing
jbussdieker commit --dry-run

Features:

  • 📝 Generate conventional commit messages (feat, fix, docs, etc.)
  • 🔍 Analyze your staged changes and project context
  • ✏️ Open your editor for final review and editing
  • 🚀 Create the commit with your approved message

Requirements:

  • OpenAI API key in OPENAI_API_KEY environment variable
  • Staged changes in your git repository
  • Your preferred editor (defaults to vim)

jbussdieker-app — Application Framework

Build modern Python applications with best practices:

jbussdieker app create myapp
cd myapp
# Start building your application

Features:

  • 🏗️ Application scaffolding with proper structure
  • 🔧 Configuration management integration
  • 📦 Dependency management and packaging
  • 🧪 Testing framework setup
  • 🚀 Deployment-ready structure

jbussdieker-service — Service Layer

Build robust service-oriented applications:

jbussdieker service create myservice
cd myservice
# Build your service layer

Features:

  • 🔌 Service discovery and registration
  • 📡 API utilities and middleware
  • 🔒 Authentication and authorization helpers
  • 📊 Monitoring and health checks
  • 🚀 Scalable service architecture

jbussdieker-storage — Data Storage

Manage data persistence across different backends:

jbussdieker storage create mystorage
cd mystorage
# Configure your storage layer

Features:

  • 💾 Multi-backend storage support
  • 🔄 Data migration utilities
  • 🔍 Query builders and ORM helpers
  • 🛡️ Data validation and sanitization
  • 📈 Performance monitoring

jbussdieker-config — Configuration Management

Centralized configuration for all your applications:

# Configuration is automatically managed
# across all jbussdieker plugins

Features:

  • ⚙️ Environment-based configuration
  • 🔐 Secure secret management
  • 📝 YAML/TOML/JSON support
  • 🔄 Hot-reload capabilities
  • 🧪 Test configuration helpers

✅ Set up automated releases

1️⃣ Ensure GitHub Actions has required permissions

For release-please to work, your repository's Actions must have write access and permission to create PRs.

  • Allow workflows to write to your repo:

    • Go to your repo's Settings → Actions → General (GitHub Actions settings)
    • Under Workflow permissions, select Read and write permissions
  • Allow Actions to create PRs:

    • In the same Actions settings
    • Check Allow GitHub Actions to create and approve pull requests

2️⃣ Add a Trusted Publisher on PyPI

Configure PyPI to trust your GitHub repo for publishing

  • Visit PyPI Publishing

  • Scroll down to add a new pending publisher

  • Fill out:

    • GitHub Owner → your username or org

    • Repository Name → your repo name (myproject)

    • Workflow Name →

      publish.yml
      
    • Environment Name →

      release
      
  • Click Add.

3️⃣ Push your first tag

Once release-please opens a version bump PR, merging it will automatically publish your package. No API keys needed — PyPI trusts your GitHub Action.

🧹 Local development

Your project includes a simple Makefile:

make venv    # create .venv
make install # pip install -e .
make lint    # black + mypy
make format  # run black
make test    # run unittest
make clean   # remove .venv

📢 Example workflow

# 1️⃣ Scaffold the project locally
jbussdieker project create myproject
cd myproject

# 2️⃣ Init the repo with an empty commit to push just the structure
git init
git commit --allow-empty -m "chore: init"  # ensures a branch exists for first push
gh repo create --source=. --public --push

# ⏸️ This step ensures your repo exists on GitHub first,
# so you can safely configure required Actions + PyPI before any workflows run!

# 3️⃣ Now pause — go to GitHub and:
#    ✅ Set Workflow permissions to Read & Write
#    ✅ Allow Actions to create & approve PRs
#    ✅ Add PyPI Trusted Publisher if you like

# 4️⃣ Add the actual files
git add .
# Optionally use AI-powered commits:
# jbussdieker commit
# Or traditional commit:
git commit -m "feat: initial code"
git push

# 5️⃣ Merge your first release-please PR 🚀

🔌 Plugin Development

Want to extend jbussdieker with your own plugins? The CLI uses entry points for plugin discovery:

# In your plugin's setup.py or pyproject.toml
[project.entry-points."jbussdieker.cli"]
myplugin = "myplugin.cli:register"
# myplugin/cli.py
def register(subparsers):
    parser = subparsers.add_parser("myplugin", help="My plugin command")
    parser.add_argument("--option", help="My option")
    parser.set_defaults(func=myplugin_command)

def myplugin_command(args, config):
    # Your plugin logic here
    pass

📝 License

This project is licensed under MIT.

🎉 Ship faster

No config sprawl. No secrets rotation. Just git push and publish Python packages the modern way with a modular, extensible toolkit.


Enjoy! 🚀

Metadata

Release files for jbussdieker 0.21.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jbussdieker 0.21.1
File Size Uploaded
jbussdieker-0.21.1.tar.gz 20.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jbussdieker 0.21.1
File Interpreter ABI Platform
jbussdieker-0.21.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.7 kB

Release files / jbussdieker-0.21.1.tar.gz

Download URL jbussdieker-0.21.1.tar.gz
Size 20.2 kB
Tags Source
SHA-256 checksum
How to use checksums
881ab4db4b2a45ecc128836d8e293645d07992fd62bb4ca05fd35d2325e585f1
BLAKE2b-256 checksum
How to use checksums
54efcb906632a58a6d60841f3507a6d253362023951c5b6f0f8f2812599009a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.11

Release files / jbussdieker-0.21.1-py3-none-any.whl

Download URL jbussdieker-0.21.1-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3be7aeeb59c0dd61ec8b0663849322f6c5bf21f14ad2eff0a399b80542fb8eaf
BLAKE2b-256 checksum
How to use checksums
410568e8704cc3a941ab8d7e1149c59fa9a4acd0cd4992ef3653e632847f1cab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.21.1 This release

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.1

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.4

2 release files

0.12.3

2 release files

0.12.2

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.5

2 release files

0.11.4

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.10

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.0

1 release file

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