Here's is a combined todo/done list. You can see what todos are planned for the upcoming release, as well as ideas that may/may not make into a release in Ideas.
Unplanned.
Released: TBA. Diff.
- [ ]
Released: 2026-03-03. Diff.
- Add shfmt formatter (
shfmt -i 2 -bn) with CI-enforced lint gate (#84) - Fix long-option parser edge cases: unknown options, missing values, invalid
--flag=valueon booleans - Scope strict mode in
src/*.shlibraries to function execution via subshell bodies - Refactor
parse_url.shto be strict-mode-safe without grep pipelines - Add Dockerized Bash 3.2.57 test lane for local and CI
- Add release-ready gate (
yarn release:ready) with branch, CI, and changelog checks - Add acceptance scenarios: long-option errors, logging contracts, parse_url/ini_val/templater robustness
- Add
yarn test:fastfor quick contract-focused subset - Clean up
main.shreadability: consolidated shellcheck disables, consistent formatting, improved comments - Trim README from 374 to ~190 lines; move contributor content to new CONTRIBUTING.md
- Enrich FAQ with entrypoint-vs-library guidance and strict-mode scoping
- Add Linux + macOS CI matrix with macOS dependency installation
Released: 2023-08-29 Diff.
- Upgrade and cleanup node dependencies
- Remove lanyon-based website in favor of simple redirect to github for bash3boilerplate.sh
- Make tests pass again
- Make linting and style checking separate actions
- Add feature to edit/update comments in ini file (#132, @rfuehrer)
- Upgrade to
lanyon@0.1.16 - Capture correct error_code in err_report (#124, @eval)
- Enhanced ini file handling: create new file, create new sections, handle default section, read key from given section (@rfuehrer)
Released: 2019-11-07. Diff.
- Upgrade to
lanyon@0.1.16 - Capture correct error_code in err_report (#124, @eval)
- Enhanced ini file handling: create new file, create new sections, handle default section, read key from given section (@rfuehrer)
Released: 2019-11-07. Diff.
- Upgrade to
lanyon@0.1.7 - Allow counting how many times an argument is used (@genesiscloud)
- Fix typos in megamount (thanks @gsaponaro)
- Enable color in screen or tmux (#92, @gmasse)
- Change
egreptogrep -Ein test and lib scripts to comply with ShellCheck (#92, @gmasse) - Fix typo in FAQ (#92, @gmasse)
- Fix Travis CI failure on src/templater.sh (@gmasse)
- Add magic variable which contains full command invocation
- More contrasted alert and emergency colors (#111 @gmeral)
- Add support for repeatable arguments (@genesiscloud)
- Fix remaining warnings with shellcheck v0.7.0 (#107, @genesiscloud)
Released: 2016-12-21. Diff.
- Upgrade to
lanyon@0.0.143
Released: 2016-12-21. Diff.
- Add magic variable
__i_am_main_scriptto distinguish if b3bp is being sourced or called directly (#45, @zbeekman) - Add style checks for tab characters and trailing whitespace (@zbeekman)
- Add backtracing to help localize errors (#44, @zbeekman)
- Additional FAQ entries (#47, suggested by @gdevenyi, implemented by @zbeekman)
- Ensure that shifting over
--doesn't throw an errexit error (#21, @zbeekman) - Add Pull Request template (#83)
Released: 2016-12-21. Diff.
- README and FAQ improvements (#66, @mstreuhofer)
- Add support for sourcing b3bp (#61, @mstreuhofer)
- Upgrade all Node.js dependencies for development (#78)
- Switch to http://lanyon.io for static site building, add a new logo
- Cleanup environment variables (#58, @mstreuhofer)
- Support multi-line logs (#57, @mstreuhofer)
- Run shellcheck as part of the acceptance test (#79, @mstreuhofer)
- Brace all variables, used
[[instead of[(#33, #76, @mstreuhofer) - Add automatic usage validation for required args (#22, #65, @mstreuhofer)
- Remove all usage of eval (@mstreuhofer)
- Get rid of awk, sed & egrep usage (#71, @mstreuhofer)
- Fix auto-color-off code (#69, #70, @mstreuhofer)
- Use shellcheck to find and fix unclean code (#68, #80, @mstreuhofer)
- Allow for multiline opt description in
__usage(#7, @mstreuhofer) - Allow
__usageand__helptextto be defined before sourcingmain.shthus makeing b3bp behave like a library (@mstreuhofer) - Add the same License text to each script header (@mstreuhofer)
Released: 2016-11-08. Diff.
- Cleanup b3bp variables (adds prefixes across the board) (thanks @mstreuhofer)
- Add multi-line logging support (thanks @mstreuhofer)
- Mangle long-option names to allow dashes (thanks @zbeekman)
- Remove OS detection altogether (#38, thx @zbeekman)
- Offer the main template for download as http://bash3boilerplate.sh/main.sh
- Better OS detection (#38, thx @moviuro)
- Improve README copy (#34, thx galaktos)
- Fix unquoted variable access within (#34 thx galaktos)
- For delete-key-friendliness, bundle the commandline definition block along with its parser
- Less verbose header comments
- For delete-key-friendliness, don't crash on undeclared help vars
- Introduce
errtrace, which is on by default (BREAKING) - Add a configurable
helptextthat is left alone by the parses and allows you to have a richer help - Add a simple documentation website
- Add best practice of using
__double_underscore_prefixed_varsto indicate global variables that are solely controlled inside your script - Make license more permissive by not requiring distribution of the LICENSE file if the copyright & attribution comments are left intact
- Respect
--no-colorby setting theNO_COLORflag inmain.sh(#25, thx @gdevenyi) - Split out changelog into separate file
- Added a FAQ (#15, #14, thanks @rouson)
- Fix Travis OSX testing (before, it would silently pass failures) (#10)
- Enable dashes in long, GNU style options, as well as numbers (thanks @zbeekman)
Released: 2016-02-17. Diff.
- Add tests for
templaterand follow Library export best practices - Add tests for
ini_valand follow Library export best practices - Add tests for
parse_urland follow Library export best practices - Add tests for
megamountand follow Library export best practices - Remove
bumpfromsrc(BREAKING) - Remove
semverfromsrc(BREAKING)
Released: 2016-02-17. Diff.
- Add Travis CI automated testing for OSX (thanks @zbeekman)
Released: 2016-02-16. Diff.
- Allow disabling colors via
NO_COLORenvironment variable - Enable
errexit,nounsetandpipefailoptions at the top of the script already - More refined colors (thanks @arathai)
- Add a changelog to the README
- Add
__osmagic var (limited to discovering OSX and defaulting to Linux for now) - Add
__basemagic var (main, if the source script ismain.sh) - Enable long, GNU style options (thanks @zbeekman)
- Add Travis CI automated testing for Linux
Released: 2015-06-29. Diff.
- Add
ALLOW_REMAINDERSconfiguration to templater - Fix typo: 'debugmdoe' to 'debugmode' (thanks @jokajak)
- Use
${BASH_SOURCE[0]}for__fileinstead of${0}
Released: 2014-11-02. Diff.
- Add
ini_val,megamount,parse_url - Add re-usable libraries in
./src - Use npm as an additional distribution channel