Skip to main content

Lightweight build engine

Project description

LiteBuild

⚠️ THIS IS BETA SOFTWARE

LiteBuild is a lightweight build system for data processing and general-purpose shell workflows.

LiteBuild is optimized for workflows where the primary actions are running templated shell commands that transform data files, image manipulation, or scientific computing tasks. It provides a clean and powerful way to orchestrate complex data pipelines.

Features

1. Declarative Workflow in a Single File

The build process is fully defined in one structured LB_config.yml file. This makes your workflow easy to understand, version control, and reproduce. LiteBuild has no implicit steps. Everything is explicitly defined in the config file.

2. Powerful Parameter Management

  • Templated Commands: Construct complex shell commands dynamically from a hierarchy of parameters.
  • Hierarchical Configuration: A three-tiered parameter system (Step > Profile > General) maximizes reusability and minimizes boilerplate.
  • Flexible Parameter Styles: Natively supports single-dash, double-dash, quoted, and unquoted command-line arguments.

3. Intelligent Build Engine

  • True Incremental Builds: The engine tracks file timestamps as well as hashes of commands, inputs, and parameters, ensuring that steps are re-run when anything that affects their output has changed.
  • Automatic Parallel Execution: LiteBuild analyzes your dependencies and runs independent branches of your workflow simultaneously to minimize build times.
  • Atomic Outputs: Each step must produce a single, primary output file, which serves as a clean and reliable caching key for its state.
  • Automatic Workflow Documentation: A built-in "describe" function generates a Markdown file with a Mermaid diagram of your workflow, detailed information about each step, and a complete, ordered list of the shell commands for a full, clean build and integrated readme file if provided.
  • Flexible Invocation:
  • GUI - LiteBuild can be run from a simple GUI
  • Command Line - LiteBuild can be launched from the command line
  • Embedded - The LiteBuild engine library can be incorporated into an app. Configuration can be managed via the structured YAML file or passed as a dictionary.

Configuration

The config file is organized into five sections.

A detailed description is in configuration.md

  1. OVERVIEW: A brief description of the workflow's purpose.

  2. README: The file path to a more detailed Markdown file. The contents of this file will be embedded in the describe output.

  3. GENERAL:

    • Defines global parameters (e.g., PROJECT_NAME, PREVIEW) available for templating throughout the file.
    • Can contain a PARAMETERS sub-section to define default parameters for any rule (lowest precedence).
  4. PROFILES:

    • Each key under PROFILES defines a specific set of parameters.
    • Contains the data unique to that profile, such as source file lists.
    • Can contain a PARAMETERS sub-section to provide profile-specific parameter overrides (medium precedence).
  5. `WORKFLOW:

    • Defines the build workflow as a list of steps.
    • Each step defines:
      • RULE: The name of the rule.
      • REQUIRES: A list of other step names this step depends on.
      • OUTPUT: A single, templated output file path.
    • Each step can optionally define:
      • INPUTS: A list of input files or the outputs of dependency steps.
      • PARAMETERS: A dictionary of parameters that override all other defaults (highest precedence). See configuration.md for details.

Installation:

The LiteBuild package and all its dependencies are directly installable from PyPI via pip.

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

litebuild-0.3.1.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

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

litebuild-0.3.1-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file litebuild-0.3.1.tar.gz.

File metadata

  • Download URL: litebuild-0.3.1.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.9

File hashes

Hashes for litebuild-0.3.1.tar.gz
Algorithm Hash digest
SHA256 169d6078942fc2c51d7496a9d607e37f20d698abb4b98feb85f7ce11948d32ea
MD5 87349a9b36413ca66adc671e896cf48b
BLAKE2b-256 18915c3c81335a688c26b41e6dd055f9427ad8d234a6c121696e41873857b9f6

See more details on using hashes here.

File details

Details for the file litebuild-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: litebuild-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.9

File hashes

Hashes for litebuild-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7a1d9fcc09f414e143ac61d14fa01440ec2688698b29638dfd0f959619d7d0e7
MD5 4ee33d8d049c4bd2fa4464c45607ce8f
BLAKE2b-256 9abe03e81c0d0fae555b45ebf3f70f8738bb88248e27482e443f6b43b42238a0

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