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.2.tar.gz (25.6 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.2-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: litebuild-0.3.2.tar.gz
  • Upload date:
  • Size: 25.6 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.2.tar.gz
Algorithm Hash digest
SHA256 cb00a5fdb0b6b0abb5c68675354bc30a123a7b0fd10e599b54cceab1e1333e51
MD5 ae5266e336ef9f8595b63479632cdd3b
BLAKE2b-256 39ccddd916a28ea3d6419c5fdd6dc556faa1674799e25a67d30cd7a2a7cb276a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: litebuild-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 29.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b53758da0163408130906ab61a1bcadd84358ce712f2aa3553f45b732cf74cee
MD5 1fda73407508250ec06bfd58e63f2ce8
BLAKE2b-256 bbd85d992fd5e3d4ba1fe112e8a9a8c1cb51e98dcd20ea7dde92f72dde93daeb

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