You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Roadmap: make base-bash-libs a 5/5 professional Bash framework #214
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:
Project Kit — the launcher, application lifecycle, declarative commands, configuration, scaffolding, conformance tests, vendoring, and bundling needed to ship professional applications.
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.
v2.0.0 GA is now published; future additive fixes and features follow the post-GA 2.x release policy, while breaking stable changes require v3 or later.
The published v2.0.0 GA release uses a new policy-compliant tag and canonical release asset. A short-lived July 2026 tag archive and Homebrew formula were withdrawn and corrected to v1.1.0; that history remains documented. Homebrew and the first-party consumers now consume the verified GA asset or compatible release pins.
v2.1.0 is the current stable package; v2.0.0 remains the compatibility baseline for post-GA stable API checks. The coordinated first-party cutover in #240 is complete across Base, Base Demo, Homebrew, vendor, and bundle paths; issue #239 now validates independent post-GA adoption. Strict SemVer compatibility begins at v2.0.0 GA.
Current review status — 2026-09-17
A fresh cross-repository review at base-bash-libs38042cbf23b9380c626aae6c9fe168f97096c1cc and base-bash-libs-demo0954bb29bec2274f807d8356fcb3fac992b3356a identified 16 actionable follow-ups: 14 new issues and 2 reopened issues. All are native sub-issues of this roadmap, assigned to codeforester, with repository Project metadata and milestones.
Current-head hosted tests and quality checks are green in both repositories. Local review additionally reproduced the new failures with isolated synthetic fixtures and validated newly generated SBOMs with an independent SPDX validator. Broad green gates do not close these findings.
v2.1.0 remains the published framework release; future corrections must preserve immutable published assets.
The completed original engineering train remains the baseline. These current review findings must be resolved before claiming the full #214 completion bar.
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.
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.
Critical path:#475–#481, #446, and #455 are complete. Resolve the current review follow-ups above; #239 remains the external-evidence gate, and #460 is a separate strategy decision.
Scope coverage
Review area
Tracking issues
Release lineage, SemVer, provenance, and API governance
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.
"
The #214 initiative targets a clean-break v2.0.0 release.
Why
There is no current remote v2.0.0 tag and no v2.0.0 GitHub Release. The earlier local tag that influenced the first review was stale.
A short-lived July 2026 tag archive and Homebrew formula did exist, then were withdrawn and corrected to v1.1.0. That history remains documented rather than hidden.
v2.0.0 is the natural breaking successor to v1.4.0. Resetting to 0.x would move version ordering backward, while publishing the framework break as v1.5.0 would be unsafe because current Base accepts any 1.* release at or above 1.3.0 as compatible.
Compatibility boundary
v2.0.0-alpha.N, -beta.N, and -rc.N may change without runtime compatibility shims while the framework is being designed.
Migration inventories, checks, and mechanical rewrites are required; legacy functions, globals, flags, and source-time behavior do not need to remain available.
Strict SemVer compatibility and deprecation policy begin with v2.0.0 GA. Later breaking stable public changes require v3 or later.
Release identity and coordinated cutover
Issue #215 owns the withdrawn-tag history and canonical v2 release identity. The final Homebrew formula will consume a verified v2.0.0 GA release asset rather than the old automatic tag-archive URL, avoiding stale archive/checksum ambiguity.
Issue #240 owns the first-party cutover across Base, Base Demo, Homebrew, and any other discovered consumers. The stable Homebrew base-bash-libs formula must not move to v2 while the stable Base formula still installs incompatible Base 1.x code. Both formulas and bottles move as a compatible pair while retaining version_scheme 1.
Completed #226 via PR #255 (merge 389576fd02f0fbd25b8562cbcefa28a4f75aefcd). The canonical package-relative base_std_import contract now backs direct, launcher, installed, vendored, copied, and bundled layouts with idempotent dependency/cycle/version/path safety; provenance metadata and immutable pin verification are documented and tested. Hosted macOS, Ubuntu, Bash 4.2, and branch-policy checks passed.
#215 progress update: PR #256 merged as f2368e12f6a8ad95f19bd182f032b62e0d234872.
The v2 release line now has fail-closed local/remote candidate-tag preflight, automated monotonic SemVer and embedded release-metadata validation, duplicate/unknown-key checks, changelog invariants, and dependency-free Bash 4.2 smoke coverage. The withdrawn local v2.0.0 ref was removed after confirming the remote ref is absent.
#215 remains open only for canonical verified RC/GA artifact publication and the coordinated first-party/Homebrew cutover owned by #233/#240.
Base PR #1881 (f8d2d2e) is merged and fixes the basectl help missing base_bash_libs_require_version call on the current Base mainline.
v2.0.0 release metadata and all read-only/dry-run preflights are green, but the real GA tag/asset/checksum/provenance, Homebrew/Base Demo cutover, rollback rehearsal, and external adoption evidence remain intentionally fail-closed.
The umbrella stays open until those real release and adoption conditions exist.
The first-party v2.0.0 promotion is complete: Base v1.8.0 is published and verified against base-bash-libs GA, Base Demo is GA-pinned and validated, and Homebrew has merged v2.0.0 formulas plus the base-v1.8.0 bottles. The complete evidence ledger is in [PR docs: record completed first-party v2 cutover #329]
The remaining release/adoption work is concentrated in #239: independent production consumers, an external compatibility/upgrade report, a permissioned case study, and a second maintainer.
CI governance follow-up: issue #540 is now implemented in PR #551. The PR adds fail-closed Product validation and Quality contract aggregate contexts, static contract coverage, and policy documentation. #214 remains open as the 5/5 umbrella until the current follow-ups and independent-adoption gate #239 are complete. After #551 merges, the remaining administrative step is to add both exact contexts (Actions integration 15368) to the effective default-branch ruleset and read back existing protections; no live policy was changed by the PR.
Current live backlog after the latest sweep: #540 is in PR #551 (CI aggregate gates), #532 remains implementation-ready (integer normalization/overflow hardening), #239 remains the independent production-consumer and maintainer gate, and #460 remains a separately deferred strategy decision. Keep #214 open as the umbrella until these remaining roadmap gates are resolved or explicitly deferred.
Goal
Drive
base-bash-libsfrom 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:
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.0release train. No stable v1.5.0 and no reset to 0.x will be published. Development may usev2.0.0-alpha.N,-beta.N, and-rc.N; those prereleases may break without compatibility shims while the framework contract is being designed.v2.0.0 GA is now published; future additive fixes and features follow the post-GA 2.x release policy, while breaking stable changes require v3 or later.
The published
v2.0.0GA release uses a new policy-compliant tag and canonical release asset. A short-lived July 2026 tag archive and Homebrew formula were withdrawn and corrected to v1.1.0; that history remains documented. Homebrew and the first-party consumers now consume the verified GA asset or compatible release pins.v2.1.0 is the current stable package; v2.0.0 remains the compatibility baseline for post-GA stable API checks. The coordinated first-party cutover in #240 is complete across Base, Base Demo, Homebrew, vendor, and bundle paths; issue #239 now validates independent post-GA adoption. Strict SemVer compatibility begins at v2.0.0 GA.
Current review status — 2026-09-17
A fresh cross-repository review at
base-bash-libs38042cbf23b9380c626aae6c9fe168f97096c1ccandbase-bash-libs-demo0954bb29bec2274f807d8356fcb3fac992b3356aidentified 16 actionable follow-ups: 14 new issues and 2 reopened issues. All are native sub-issues of this roadmap, assigned tocodeforester, with repository Project metadata and milestones.Framework follow-up
Beacon reference-consumer follow-up
Existing gates and evidence
The completed original engineering train remains the baseline. These current review findings must be resolved before claiming the full #214 completion bar.
Success criteria
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
Post-GA follow-up train
base_initoutput arrays from initializer and publisher local namesCritical path: #475–#481, #446, and #455 are complete. Resolve the current review follow-ups above; #239 remains the external-evidence gate, and #460 is a separate strategy decision.
Scope coverage
Prior work this extends
This train does not reopen the repository's completed hardening work:
Train rules
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.
"