Metadata-Version: 2.4
Name: maxson-build-utils
Version: 0.1.40
Summary: A convention-optional build and deployment framework, with an opinionated Maxson project scaffold available as a convenience.
Author-email: George Clayton Bennett <george.bennett@memphistn.gov>
Maintainer-email: George Clayton Bennett <george.bennett@memphistn.gov>
License-Expression: MIT
Project-URL: Homepage, https://github.com/city-of-memphis-wastewater/maxson-build-utils
Project-URL: Repository, https://github.com/city-of-memphis-wastewater/maxson-build-utils
Project-URL: Issues, https://github.com/city-of-memphis-wastewater/maxson-build-utils/issues
Project-URL: Changelog, https://raw.githubusercontent.com/city-of-memphis-wastewater/maxson-build-utils/main/docs/CHANGELOG.md
Keywords: build-tools,build,scaffold,CI/CD,deployment
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Typing :: Typed
Classifier: Development Status :: 3 - Alpha
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dworshak-config>=0.2.8
Requires-Dist: dworshak-env>=0.1.8
Requires-Dist: pyhabitat>=1.3.11
Requires-Dist: typer>=0.27.0; python_version >= "3.10"
Requires-Dist: typer<0.24.0,>=0.22.0; python_version < "3.10"
Requires-Dist: typer-helptree>=0.2.12
Provides-Extra: pyinstaller
Requires-Dist: pyinstaller>=6.17.0; extra == "pyinstaller"
Provides-Extra: builds
Requires-Dist: pyinstaller>=6.17; extra == "builds"
Provides-Extra: gui
Requires-Dist: maxson-gui-utils>=0.1.11; extra == "gui"
Provides-Extra: web
Dynamic: license-file

# maxson-build-utils

Centralized org tooling for PyInstaller, DMG, AppImage, DEB, PYZ, etc.

A convention-optional build and deployment framework, with an opinionated Maxson project scaffold available as a convenience.

## Spotlight IT

ChatGPT or Gemini can provide good Python core logic.
"Fix my problem, tell me the library, write a single script, give me some functions with some arguments."

But how do you run that solution on other computers? For coworkers? For contractors? 

maxson-build-utils provides you with an opinionated canvas. Drop in your special core, wire up the args in the functions to the CLI and the GUI, run the builds, and then you've got a one way ticket to the Windows store. IT will probably say yes.

Shadow IT? No, Spotlight IT

## Installation

```bash
pipx install "maxson-build-utils[pyinstaller]"
```

## Quick Start

Scaffold and edit a new project

```bash
mkdir my-project
cd my-project
mbu init all
# edit core.py with special logic
# edit cli.py and gui.py to expose core features
# edit pyproject.toml to add new dependecies

# sync the local new venv
uv sync --group dev --extra gui --extra pyinstaller
```

Build local artifacts
```bash
mbu build shiv
mbu build pyinstaller
```

Leverage the batteries-included github runners by pushing to github.
This will give you files that may be submitted to the Windows Store, the Apple store, and Linux distribution.
```
git tag v0.1.0
git push origin v0.1.0
# Runnners are designed to build and upload artifacts to the release.
gh release create v0.1.0 --title "my-project v0.1.0"
```

## Helptree

See the `maxson-build-utils` Typer CLI structure.

```
maxson-build-utils helptree
```

<p align="center">
  <img src="https://raw.githubusercontent.com/City-of-Memphis-Wastewater/maxson-build-utils/main/assets/maxson-build-utils_v0.1.39_helptree.svg" width="100%" alt="SVG of the CLI helptree">
</p>
