Modular OS builder for PymergeticOS
Project description
PymergeticOS Builder
Modular Python-based OS builder for creating Debian-based live ISOs.
Features
- Python-based: Flexible and maintainable
- Modular: Plugin system for adding components
- Fire CLI: Easy-to-use command-line interface
- Namespace package: PEP 420 compliant, allows extending
pymergeticnamespace - PyPI package: Installable via
pip install pymergetic-os-builder
Installation
From PyPI
pip install pymergetic-os-builder
From Source
# Clone the repository
git clone https://github.com/pymergetic/os-builder.git
cd os-builder
# Install in development mode
pip install -e .
Quick Start
# Build ISO (uses pymergetic_os.yaml from current directory or config path)
pymergetic-build build
# Build with custom config file
pymergetic-build build --config=/path/to/config.yaml
# Or use environment variable
export PYMERGETIC_OS_BUILD_CONFIG=/path/to/config.yaml
pymergetic-build build
# Clean build artifacts
pymergetic-build clean
# Or use Python module directly
python -m pymergetic.os.builder.cli build
Configuration
Edit your configuration YAML file to customize:
- Debian release (trixie, bookworm, etc.)
- Hostname
- Packages (YAML list)
- Desktop environment
- Build directories
Config file:
- Must be provided via
--configparameter orPYMERGETIC_OS_BUILD_CONFIGenvironment variable - If not provided, uses default configuration
- No automatic file discovery
The configuration uses Pydantic for type safety and validation. See USAGE.md for detailed usage instructions.
Modules
Modules are pluggable components that can be added to the build:
base/- Base OS (always included)provision/- Provisioning scripts- Future:
uv/,python/,app/
Architecture
pymergetic/- PEP 420 namespace packagepymergetic.os.builder/- OS builder subpackagepymergetic.os.builder.builder.py- Main builder classpymergetic.os.builder.config.py- Configuration managementpymergetic.os.builder.modules/- Plugin modulespymergetic.os.builder.cli.py- Fire CLI interface
This is structured as a namespace package, allowing other packages to be added to the pymergetic namespace later (e.g., pymergetic.core, pymergetic.app).
Development
Building and Publishing
# Build package
make build
# Publish to PyPI
make publish
# Full release (tag, build, publish)
make release
See Makefile for all available targets.
Documentation
See USAGE.md for detailed usage instructions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymergetic_os_builder-0.0.1.post1.dev0.tar.gz.
File metadata
- Download URL: pymergetic_os_builder-0.0.1.post1.dev0.tar.gz
- Upload date:
- Size: 32.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6538d5f4c2125b7c24ab300799ef6e59d06b21911a13ca1065320c99276c027
|
|
| MD5 |
77ef56de03c268bd9448bd1dba454b27
|
|
| BLAKE2b-256 |
b8eabbfdddc8f7229e6222f8201e0851b27ba7be6488c129552da42f9c81d80c
|
File details
Details for the file pymergetic_os_builder-0.0.1.post1.dev0-py3-none-any.whl.
File metadata
- Download URL: pymergetic_os_builder-0.0.1.post1.dev0-py3-none-any.whl
- Upload date:
- Size: 33.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ca06243b7f6d22b40003cac3ecc4108c54911781f7d2577f993c75a3a19eb60
|
|
| MD5 |
e5c48730a45c9083f0c96c23cdc8d099
|
|
| BLAKE2b-256 |
f6bb976c7711a6ce53653081608f11a546891e9dbb7795dd5225294d0df92e1c
|