Skip to content

Roadmap: make base-bash-libs a 5/5 professional Bash framework #214

Description

@codeforester

Goal

Drive base-bash-libs from a strong reusable library collection to a world-class, broadly adoptable framework for writing professional Bash 4.2+ applications.

The starting point is already unusually strong: a deeply tested reusable standard library with careful command execution, logging, cleanup, filesystem, Git, GitHub, argument, list, and string primitives. The move to 5/5 is not “add more helpers.” It is the work required to turn those primitives into a coherent, stable, secure, distributable, documented, and independently validated application framework.

Product strategy

Base Bash should have three deliberately separated layers:

  1. Core — a small, passive, namespaced, stable, production-grade Bash 4.2+ runtime.
  2. Project Kit — the launcher, application lifecycle, declarative commands, configuration, scaffolding, conformance tests, vendoring, and bundling needed to ship professional applications.
  3. Adapters — optional integrations with Bashly, Argc, Argbash, Bats, ShellCheck, shfmt, and sustainable package channels.

The strategy is not to invent a new language inside Bash, replace mature ecosystem tools, promise every shell, build a general package manager, or grow an unbounded kitchen-sink core. The sourceable runtime must remain transparent, lightweight, inspectable, and usable without a mandatory non-Bash runtime.

Version and compatibility decision

This is a clean-break v2.0.0 release train. No stable v1.5.0 and no reset to 0.x will be published. Development may use v2.0.0-alpha.N, -beta.N, and -rc.N; those prereleases may break without compatibility shims while the framework contract is being designed.

There is no current remote v2.0.0 tag and no v2.0.0 GitHub Release. A short-lived July 2026 tag archive and Homebrew formula were withdrawn and corrected to v1.1.0; that history remains documented. The final v2.0.0 release creates a new policy-compliant tag and canonical release asset, and Homebrew consumes that asset rather than the old automatic tag-archive URL.

v1.4.0 remains the stable package until the coordinated cutover. After the engineering, release gates, policies, documentation, integrations, and reference applications through #238 are complete, #240 validates one release candidate across Base, Base Demo, Homebrew, vendor, and bundle paths and performs the v2.0.0 GA cutover. Issue #239 then validates independent post-GA adoption. Strict SemVer compatibility begins at v2.0.0 GA.

Success criteria

  • Release discovery, version metadata, tags, supported lines, and artifacts are unambiguous, immutable, and reproducible.
  • Sourcing is passive, namespaced, and correct under caller-selected shell options.
  • The v2 public API has a coherent machine-checked contract; pre-v2 consumers receive a one-time migration inventory and tooling, not runtime compatibility shims. Strict SemVer compatibility begins at v2.0.0 GA.
  • Execution, cleanup, timeouts, dry-run, logging, redaction, retries, parsing, filesystem behavior, configuration, and signals remain correct under failure, interruption, concurrency, and hostile inputs.
  • A developer can initialize, test, diagnose, vendor, bundle, and release a professional application through one coherent workflow in under five minutes.
  • The complete supported Bash, OS, libc/userland, strict-option, source/vendor/bundle, security, and documentation matrix is continuously enforced.
  • Production-grade reference applications and official ecosystem integrations demonstrate deployment and upgrade patterns.
  • At least three independent production consumers and ongoing contributors validate adoption with public evidence or durable downstream fixtures.

Ordered issue train

P0 — Trustworthy runtime and release baseline

Critical paths: #217#218. Issue #215 independently blocks a trustworthy next release. Issues #216 and #221 establish caller and lifecycle guarantees needed by the stable runtime.

P1 — Passive, stable runtime and API

Critical path: #216#222#223#224/#225#226#227.

P2 — Project kit and deterministic distribution

Critical paths: #228/#229#230#231, and #223/#225#232. Release trust, unified imports, and generated modules converge in #233.

P3 — Ecosystem trust and broad adoption

Critical path: #234/#235#236#237/#238#240#239. The atomic first-party and Homebrew cutover precedes independent post-GA adoption.

Scope coverage

Review area Tracking issues
Release lineage, SemVer, provenance, and API governance #215, #225, #226, #235
Strict callers, passive sourcing, namespace safety, and API coherence #216, #222, #223, #224
Secrets, retries, timeouts, dry-run, Git state, cleanup, and signals #217, #218, #219, #220, #221, #229
Launcher, CLI application model, scaffolding, and consumer validation #227, #228, #229, #230, #231
Maintainable authoring, imports, vendoring, bundling, and release artifacts #225, #226, #232, #233
Bash/OS compatibility, adversarial tests, branch gates, and security policy #234, #235
Quickstart, reference applications, ecosystem integration, first-party cutover, governance, and adoption #236, #237, #238, #240, #239

Prior work this extends

This train does not reopen the repository's completed hardening work:

Train rules

  • Release-blocking correctness and security land before dependent API expansion.
  • Respect each child's explicit dependency list; genuinely independent work may proceed in parallel.
  • Prefer one focused pull request per child. If a child requires a coordinated PR train, keep the child open as its dashboard and link every PR.
  • Continue the repository's issue-backed branch convention and apply exactly one standard category label to each tracking issue.
  • Breaking changes are allowed throughout v2 development and require migration inventory or tooling, documentation, manifest metadata, and contract tests, but no compatibility layer or legacy alias. After v2.0.0 GA, breaking stable public changes require the next major version.
  • New public APIs require documented inputs, outputs, statuses, side effects, stability, version history, and Bash 4.2 evidence.
  • Generated source and release artifacts must be deterministic, auditable, and verified in CI.
  • Optional integrations remain optional; Core stays compact and free of mandatory non-Bash runtime dependencies.
  • Reference applications use supported public APIs only; internal API needs remain blockers.
  • Core, Project Kit, documentation, Homebrew, Base, Base Demo, and every other first-party consumer move as one coordinated v2 train; no first-party component may depend on legacy aliases.
  • Update this checklist with the merged PR beside each completed item so this issue remains the single live dashboard.

Completion bar

This umbrella closes only after all child issues are complete and the evidence supports a genuine 5/5 claim: the enforced compatibility and security matrix is green; released artifacts are reproducible and verifiable; the five-minute path works from a clean environment; reference applications survive failure and upgrades; all first-party dependents and Homebrew pass against the exact v2 release candidate and are cut over to the v2 GA artifact or pin; and three independent production consumers plus contributors beyond the original author have exercised the supported framework.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

Status
Backlog

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions