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.1.post1.dev0.tar.gz (32.1 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.1.post1.dev0.tar.gz.

File metadata

File hashes

Hashes for pymergetic_os_builder-0.0.1.post1.dev0.tar.gz
Algorithm Hash digest
SHA256 c6538d5f4c2125b7c24ab300799ef6e59d06b21911a13ca1065320c99276c027
MD5 77ef56de03c268bd9448bd1dba454b27
BLAKE2b-256 b8eabbfdddc8f7229e6222f8201e0851b27ba7be6488c129552da42f9c81d80c

See more details on using hashes here.

File details

Details for the file pymergetic_os_builder-0.0.1.post1.dev0-py3-none-any.whl.

File metadata

File hashes

Hashes for pymergetic_os_builder-0.0.1.post1.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 4ca06243b7f6d22b40003cac3ecc4108c54911781f7d2577f993c75a3a19eb60
MD5 e5c48730a45c9083f0c96c23cdc8d099
BLAKE2b-256 f6bb976c7711a6ce53653081608f11a546891e9dbb7795dd5225294d0df92e1c

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