Skip to main content

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 pymergetic namespace
  • 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 --config parameter or PYMERGETIC_OS_BUILD_CONFIG environment 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 package
  • pymergetic.os.builder/ - OS builder subpackage
    • pymergetic.os.builder.builder.py - Main builder class
    • pymergetic.os.builder.config.py - Configuration management
    • pymergetic.os.builder.modules/ - Plugin modules
    • pymergetic.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymergetic_os_builder-0.0.0.post1.dev2.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file pymergetic_os_builder-0.0.0.post1.dev2.tar.gz.

File metadata

File hashes

Hashes for pymergetic_os_builder-0.0.0.post1.dev2.tar.gz
Algorithm Hash digest
SHA256 6ed8713483b894393bba96731fef92129d5c4f28a46d23973aea04b7d3b5abce
MD5 957809baf00be62c7c0421e1d434a473
BLAKE2b-256 f37d4d6c73759bf7e805a4d0d13e5454e030c00d9857c24c26157bcef2151106

See more details on using hashes here.

File details

Details for the file pymergetic_os_builder-0.0.0.post1.dev2-py3-none-any.whl.

File metadata

File hashes

Hashes for pymergetic_os_builder-0.0.0.post1.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 8671629fc4f7f2ba5692e958f3f61fb81cd874640b465dd148b04ab6d2be8e4d
MD5 5d5ea57a3309bf2d96a3d4e87ab05a5a
BLAKE2b-256 e2a8519713428292758f266c5d1f1470adaf77a5a948246d8516291c73cecbd0

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