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.2.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.

pymergetic_os_builder-0.0.2-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file pymergetic_os_builder-0.0.2.tar.gz.

File metadata

  • Download URL: pymergetic_os_builder-0.0.2.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

Hashes for pymergetic_os_builder-0.0.2.tar.gz
Algorithm Hash digest
SHA256 8e82a1e90dc31af5538a6b51e5434197b413d7fd891e553a9f9285b249016a5c
MD5 a5b5d29439e87039d6771f54a37c0490
BLAKE2b-256 15175bd4265119f1c6f6c8c7867e419e2356807bc552e8e5cefe49af4db3f709

See more details on using hashes here.

File details

Details for the file pymergetic_os_builder-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pymergetic_os_builder-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 75e7a2a7ed86f23d969e68ae6957c427a9399bd2e5bb38bda755952390811cc1
MD5 daa73021de2ad4f15896870d143ef70a
BLAKE2b-256 d6814051db9282b3533424b1f8cca3f9671924f6e18458181cabd53111f0bbba

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