# Changelog

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`.

## Ideas

Unplanned.

- [ ] Better style guide checking (#84)

## main

Released: TBA.
[Diff](https://github.com/kvz/bash3boilerplate/compare/2.7.2...main).

- [ ]

## 2.7.2

Released: 2023-08-29
[Diff](https://github.com/kvz/bash3boilerplate/compare/v2.4.1...2.7.2).

- [x] Upgrade and cleanup node dependencies
- [x] Remove lanyon-based website in favor of simple redirect to github for bash3boilerplate.sh
- [x] Make tests pass again
- [x] Make linting and style checking separate actions
- [x] Add feature to edit/update comments in ini file (#132, @rfuehrer)
- [x] Upgrade to `lanyon@0.1.16`
- [x] Capture correct error_code in err_report (#124, @eval)
- [x] Enhanced ini file handling: create new file, create new sections, handle default section, read key from given section (@rfuehrer)

## v2.4.2

Released: 2019-11-07.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v2.4.1...v2.4.2).

- [x] Upgrade to `lanyon@0.1.16`
- [x] Capture correct error_code in err_report (#124, @eval)
- [x] Enhanced ini file handling: create new file, create new sections, handle default section, read key from given section (@rfuehrer)

## v2.4.1

Released: 2019-11-07.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v2.3.0...v2.4.1).

- [x] Upgrade to `lanyon@0.1.7`
- [x] Allow counting how many times an argument is used (@genesiscloud)
- [x] Fix typos in megamount (thanks @gsaponaro)
- [x] Enable color in screen or tmux (#92, @gmasse)
- [x] Change `egrep` to `grep -E` in test and lib scripts to comply with ShellCheck (#92, @gmasse)
- [x] Fix typo in FAQ (#92, @gmasse)
- [x] Fix Travis CI failure on src/templater.sh (@gmasse)
- [x] Add magic variable which contains full command invocation
- [x] More contrasted alert and emergency colors (#111 @gmeral)
- [x] Add support for repeatable arguments (@genesiscloud)
- [x] Fix remaining warnings with shellcheck v0.7.0 (#107, @genesiscloud)

## v2.4.0

Released: 2016-12-21.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v2.3.0...v2.4.0).

- [x] Upgrade to `lanyon@0.0.143`

## v2.3.0

Released: 2016-12-21.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v2.2.0...v2.3.0).

- [x] Add magic variable `__i_am_main_script` to distinguish if b3bp is being sourced or called directly (#45, @zbeekman)
- [x] Add style checks for tab characters and trailing whitespace (@zbeekman)
- [x] Add backtracing to help localize errors (#44, @zbeekman)
- [x] Additional FAQ entries (#47, suggested by @gdevenyi, implemented by @zbeekman)
- [x] Ensure that shifting over `--` doesn't throw an errexit error (#21, @zbeekman)
- [x] Add Pull Request template (#83)

## v2.2.0

Released: 2016-12-21.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v2.1.0...v2.2.0).

- [x] README and FAQ improvements (#66, @mstreuhofer)
- [x] Add support for sourcing b3bp (#61, @mstreuhofer)
- [x] Upgrade all Node.js dependencies for development (#78)
- [x] Switch to http://lanyon.io for static site building, add a new logo
- [x] Cleanup environment variables (#58, @mstreuhofer)
- [x] Support multi-line logs (#57, @mstreuhofer)
- [x] Run shellcheck as part of the acceptance test (#79, @mstreuhofer)
- [x] Brace all variables, used `[[` instead of `[` (#33, #76, @mstreuhofer)
- [x] Add automatic usage validation for required args (#22, #65, @mstreuhofer)
- [x] Remove all usage of eval (@mstreuhofer)
- [x] Get rid of awk, sed & egrep usage (#71, @mstreuhofer)
- [x] Fix auto-color-off code (#69, #70, @mstreuhofer)
- [x] Use shellcheck to find and fix unclean code (#68, #80, @mstreuhofer)
- [x] Allow for multiline opt description in `__usage` (#7, @mstreuhofer)
- [x] Allow `__usage` and `__helptext` to be defined before sourcing `main.sh` thus makeing b3bp behave like a library (@mstreuhofer)
- [x] Add the same License text to each script header (@mstreuhofer)

## v2.1.0

Released: 2016-11-08.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v2.0.0...v2.1.0).

- [x] Cleanup b3bp variables (adds prefixes across the board) (thanks @mstreuhofer)
- [x] Add multi-line logging support (thanks @mstreuhofer)
- [x] Mangle long-option names to allow dashes (thanks @zbeekman)
- [x] Remove OS detection altogether (#38, thx @zbeekman)
- [x] Offer the main template for download as http://bash3boilerplate.sh/main.sh
- [x] Better OS detection (#38, thx @moviuro)
- [x] Improve README copy (#34, thx galaktos)
- [x] Fix unquoted variable access within (#34 thx galaktos)
- [x] For delete-key-friendliness, bundle the commandline definition block along with its parser
- [x] Less verbose header comments
- [x] For delete-key-friendliness, don't crash on undeclared help vars
- [x] Introduce `errtrace`, which is on by default (BREAKING)
- [x] Add a configurable `helptext` that is left alone by the parses and allows you to have a richer help
- [x] Add a simple documentation website
- [x] Add best practice of using `__double_underscore_prefixed_vars` to indicate global variables that are solely controlled inside your script
- [x] Make license more permissive by not requiring distribution of the LICENSE file if the copyright & attribution comments are left intact
- [x] Respect `--no-color` by setting the `NO_COLOR` flag in `main.sh` (#25, thx @gdevenyi)
- [x] Split out changelog into separate file
- [x] Added a [FAQ](./FAQ.md) (#15, #14, thanks @rouson)
- [x] Fix Travis OSX testing (before, it would silently pass failures) (#10)
- [x] Enable dashes in long, GNU style options, as well as numbers (thanks @zbeekman)

## v2.0.0

Released: 2016-02-17.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v1.2.1...v2.0.0).

- [x] Add tests for `templater` and follow Library export best practices
- [x] Add tests for `ini_val` and follow Library export best practices
- [x] Add tests for `parse_url` and follow Library export best practices
- [x] Add tests for `megamount` and follow Library export best practices
- [x] Remove `bump` from `src` (BREAKING)
- [x] Remove `semver` from `src` (BREAKING)

## v1.2.1

Released: 2016-02-17.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v1.2.0...v1.2.1).

- [x] Add Travis CI automated testing for OSX (thanks @zbeekman)

## v1.2.0

Released: 2016-02-16.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v1.1.0...v1.2.0).

- [x] Allow disabling colors via `NO_COLOR` environment variable
- [x] Enable `errexit`, `nounset` and `pipefail` options at the top of the script already
- [x] More refined colors (thanks @arathai)
- [x] Add a changelog to the README
- [x] Add `__os` magic var (limited to discovering OSX and defaulting to Linux for now)
- [x] Add `__base` magic var (`main`, if the source script is `main.sh`)
- [x] Enable long, GNU style options (thanks @zbeekman)
- [x] Add Travis CI automated testing for Linux

## v1.1.0

Released: 2015-06-29.
[Diff](https://github.com/kvz/bash3boilerplate/compare/v1.0.3...v1.1.0).

- [x] Add `ALLOW_REMAINDERS` configuration to templater
- [x] Fix typo: 'debugmdoe' to 'debugmode' (thanks @jokajak)
- [x] Use `${BASH_SOURCE[0]}` for `__file` instead of `${0}`

## v1.0.3

Released: 2014-11-02.
[Diff](https://github.com/kvz/bash3boilerplate/compare/5db569125319a89b9561b434db84e4d91faefb63...v1.0.3).

- [x] Add `ini_val`, `megamount`, `parse_url`
- [x] Add re-usable libraries in `./src`
- [x] Use npm as an additional distribution channel