Tags

Tags give the ability to mark specific points in history as being important
  • v0.10.0

    v0.10.0 — TOML config, reusable variables, and a complete Docker runner
    
    ## Highlights
    
    - **TOML configuration** — write `bam.toml` instead of `bam.yaml`; the formats
      are fully equivalent. `bam --init --format toml` scaffolds one.
    - **Reusable variables** — a `vars` section with `{{name}}` references and
      `env_var()` / `env_var_or_default()` lookups, in the style of `just`.
    - **Docker runner completed** — volumes, env forwarding, opt-in host env
      passthrough, host user mapping, resource limits, network isolation, private
      registry authentication, pre-flight image pulls and container cleanup.
    - **`bam --clean-outputs`** — delete the files tasks declare as outputs; no
      hand-written clean target to keep in sync.
    
    ## Breaking
    
    - Docker tasks now run as the invoking user rather than root. Images that need
      root must set `runner.user: root`.
    - `--invalidate-cache` requires a task argument; use `--clean-cache` to clear
      everything.
    - `--clean` / `--clean-force` are deprecated aliases for `--clean-cache` /
      `--clean-cache-force`.
    
    ## Notable fixes
    
    - Task output containing square brackets no longer crashes bam.
    - Docker tasks no longer silently defeat the cache via root-owned outputs.
    - `--clean-cache` now respects the cache path from your config.
    
    See CHANGELOG.md for the full list of changes.
  • v0.9.1

    v0.9.1 — Reworked README and package description
    
    - README rewritten to lead with simplicity and power rather than CAS implementation details
    - PyPI package description updated to match
    - CHANGELOG, docs/cli.md, docs/configuration.md version footers updated
    
    See CHANGELOG.md for the full list of changes.
  • v0.9.0

    v0.9.0 — Advisory dependencies and a parallel-scheduler fix
    
    - New `continue_on_failure: true` task option: a dependent task still runs even if a dependency marked this way fails (GitLab allow_failure-style semantics)
    - Fixed the parallel scheduler cancelling every unrelated running/pending task on any failure; only actual dependents of a failure are now skipped
    - Resynced llms.txt with the current schema and CLI (install package, flag-based CLI shape, new task fields)
    
    See CHANGELOG.md for the full list of changes.
  • v0.8.0

    v0.8.0 — Per-task cache invalidation and subprocess CWD anchoring
    
    - New `--invalidate-cache [TASK]` flag: clears a single task's cache entry or the entire cache
    - Subprocess CWD is now always anchored to the bam.yaml directory (fixes transient failures on parallel --no-cache runs)
    - Local cache path and input globs resolved relative to bam.yaml (fixes cache misses on remote invocations)
    
    See CHANGELOG.md for the full list of changes.
  • v0.7.0

    v0.7.0 — Argument passthrough for task parameters
    
    - Argument passthrough with `--` — run tasks with extra parameters (`bam test -- --coverage`)
    - \`{args}\` placeholder — control where extra arguments are injected in commands
    - Arguments are automatically shell-quoted for safety
    
    See CHANGELOG.md for the full list of changes.
  • v0.6.2

    v0.6.2 — Fix remaining SyntaxError in except clauses
    
    - Fixed two remaining 'except typer.Exit, SystemExit:' clauses that caused SyntaxError on Python 3.11–3.13
    - PyPI artifact for v0.6.1 was built from incomplete source; this release corrects that
    
    See CHANGELOG.md for the full list of changes.
  • v0.6.1

    v0.6.1 — Fix grouped exception syntax for Python 3.11-3.13 compatibility
    
    - Replaced all grouped `except (A, B, C):` clauses in cli.py with individual except blocks
    - Fixes SyntaxError on Python 3.11–3.13 caused by ruff-enforced Python 3.14 comma syntax
    
    See CHANGELOG.md for the full list of changes.
  • v0.6.0

    v0.6.0 — Interactive watch mode + pipeline fix
    
    - bam -w <task> now restarts interactive (server) tasks automatically on input change
    - Fix GitLab CI open-schemastore-pr YAML parse error (unquoted colon in commit message)
    - Fix wait_for_change observer.join blocking on cancellation (timeout=2.0)
    - 213 tests passing
    
    See CHANGELOG.md for the full list of changes.
  • v0.5.4

    bc2bc639 · Fixed release pipeline ·
    v0.5.4 — Fix requires-python metadata
    
    - requires-python corrected to >=3.11 (was incorrectly >=3.14)
    
    See CHANGELOG.md for the full list of changes.
  • v0.5.3

    64564128 · Fix release pipeline ·
    v0.5.3 — Interactive task mode
    
    ## Highlights
    - New `interactive: true` task flag for dev servers, REPLs, and file watchers
    - Terminal stdin/stdout/stderr inherited; Ctrl-C handled cleanly
    - Dependencies run with full caching before the foreground process starts
    - `--list` and `--dry-run` label interactive tasks with [live]
    
    See CHANGELOG.md for the full list of changes.
  • v0.5.2

    c3d12656 · prepare release v0.5.2 ·
    v0.5.2 — Python 3.11–3.14 support + CI matrix
    
    - requires-python broadened to >=3.11 (was >=3.14)
    - Removed cascache_server optional dependency group (blocked older Pythons)
    - GitLab CI test jobs now run as a 4-version matrix (3.11, 3.12, 3.13, 3.14)
    - build job needs updated to reference all 12 expanded matrix job names
    
    See CHANGELOG.md for the full list of changes.
  • v0.5.1

    v0.5.1 — README cleanup
    
    - Removed proof-of-concept warning banner from README
    - Removed 🌊 emoji from title
    - Reordered feature list to lead with execution and visibility features
    
    See CHANGELOG.md for the full list of changes.
  • v0.5.0

    v0.5.0 — Spinner, timeout, CI output structure
    
    - Animated braille spinner + elapsed time for running tasks
    - Configurable per-task timeout with interactive continue prompt
    - Cache-hit indicator (↩ cached) in progress tree
    - Structured plain/CI output: ──> started / ─── PASSED/FAILED fences
    - Process-group kill on timeout (fixes orphaned child processes)
    - pytest classic output style (no percentage column)
    - Fixed Python 2-style except clause in executor
    
    See CHANGELOG.md for the full list of changes.
  • v0.4.1

    v0.4.1 — Python 3.14 support and output path validation
    
    - Python 3.14 (CPython 3.14.3) is now the minimum and default version
    - Output path validation in config parser with clear error messages
    - Updated tagline: Fast builds, no fluff.
    
    See CHANGELOG.md for the full list of changes.
  • v0.4.0

    v0.4.0 — Execution runners (Docker, Python-uv) and documentation overhaul
    
    - Docker runner: run tasks inside any container image
    - Python-uv runner: write inline Python scripts directly in bam.yaml
    - Runner-aware cache keys (runner type + image included)
    - README links fixed for PyPI (all relative links → absolute GitLab URLs)
    - Release workflow documented in AGENTS.md
    
    See CHANGELOG.md for the full list of changes.
  • v0.3.0

    5a2a489f · Release 0.3.0 ·
    Release 0.3.0
  • v0.2.0

    f89687de · Rename of package ·
    Renamed to BAM!
  • v0.1.1

    d2cfbfb4 · renamed package to cscd ·
    Release v0.1.1 - Initial Public Release
    
    🌊 Cascade - Content-Addressed Workflow Orchestration
    
    This is the first public release of Cascade, a proof-of-concept workflow
    orchestration tool that brings content-addressable storage to development
    workflows.
    
    ✨ Highlights:
    
    • Smart Caching - Content-addressed caching with SHA256 for instant rebuilds
    • Parallel Execution - Auto-detect CPU cores, run independent tasks concurrently
    • Interactive Tree View - Dagger-style dependency visualization with live progress
    • Rich CLI - Beautiful output, error context, and progress tracking
    • Simple Config - Clean YAML syntax with glob patterns
    • Well Tested - 85% coverage with 101 passing tests
    
    🎯 Key Features:
    
    - Core workflow engine with YAML configuration
    - Dependency graph with cycle detection
    - Async parallel execution with configurable job limits
    - Local content-addressable cache backend
    - Rich terminal UI with TTY detection for CI/CD
    - Comprehensive error handling and context
    - Graph visualization (ASCII + DOT format)
    
    📚 Status: Proof of Concept (Phase 1 & 2 Complete)
    
    ⚠️  NOT PRODUCTION READY - For research and experimentation only
    
    See CHANGELOG.md for full details.
  • v0.1.0

    19579e94 · Fixed CHANGELOG ·
    Release v0.1.0 - Initial Public Release
    
    🌊 Cascade - Content-Addressed Workflow Orchestration
    
    This is the first public release of Cascade, a proof-of-concept workflow
    orchestration tool that brings content-addressable storage to development
    workflows.
    
    ✨ Highlights:
    
    • Smart Caching - Content-addressed caching with SHA256 for instant rebuilds
    • Parallel Execution - Auto-detect CPU cores, run independent tasks concurrently
    • Interactive Tree View - Dagger-style dependency visualization with live progress
    • Rich CLI - Beautiful output, error context, and progress tracking
    • Simple Config - Clean YAML syntax with glob patterns
    • Well Tested - 85% coverage with 101 passing tests
    
    🎯 Key Features:
    
    - Core workflow engine with YAML configuration
    - Dependency graph with cycle detection
    - Async parallel execution with configurable job limits
    - Local content-addressable cache backend
    - Rich terminal UI with TTY detection for CI/CD
    - Comprehensive error handling and context
    - Graph visualization (ASCII + DOT format)
    
    📚 Status: Proof of Concept (Phase 1 & 2 Complete)
    
    ⚠️  NOT PRODUCTION READY - For research and experimentation only
    
    See CHANGELOG.md for full details.