Releases: danfuzz/bashy-lib
Releases · danfuzz/bashy-lib
v2.10
v2.9
Breaking changes:
- None.
Other notable changes:
bashy-basics:- Accept
jqversions that have "patch" values (that is, sub-minor version
numbers).
- Accept
bashy-node:- New subcommand
lint, extracted from sibling projectlactoserv. - New option
--runner-scriptfornode-project build-main-module, using
code extracted from sibling projectlactoserv. - Accept Node v21 when running.
- New subcommand
v2.8
This is a stable-ish release. No further breaking changes are currently
contemplated for the 2.* release series.
Breaking changes:
bashy-node: Reworked build options to use the newly-standardized multi-value
forms. Only nominally breaking in that use ofbashy-nodeat all is
pretty minimal.
Other notable changes:
bashy-basics:- New utility functions
env-clean,env-minimize, andenv-names. - New helper library
buildy-help, to help avoid some project-build-related
boilerplate.
- New utility functions
v2.7
This is a stable-ish release. No further breaking changes are currently
contemplated for the 2.* release series.
Breaking changes:
bashy-core:arg-processor:- Tightened up syntax for passing multi-value arguments.
- Reworked
--enumto be a multi-value option in the same way that the
system lets clients define them. Most notably, it's now--enum[]=
instead of--enum=. - Changed how
--filterfunctions/code are called, so that they no longer
run in a subshell, which required changing how the client filter code is
defined. TLDR: Instead of printing replacement values, they now need to
callreplace-value.
Other notable changes:
bashy-core:arg-processor:--filternow supports{...}to specify a code snippet, just like
--callalready does.--evalvalues can be specified using the same multi-value syntax used by
the rest of the system.
misc:- Made
valsmore conservative in its output. - New function
set-array-from-vals, which is (approximately) the reverse
action ofvals.
- Made
v2.6
Breaking changes:
bashy-core:arg-processor:- New recommended processing call
process-args "$@" || exit "$?", because
of "magic" reduction noted below. - Renamed
--initto--default, which is a better word for the meaning. - Removed
opt-choice, as it's now covered by the more generalopt-alias
(see below).
- New recommended processing call
define-usage: Dropped "magical"exitbehavior.
Other notable changes:
- Cleaned up existing doc and added a handful more.
bashy-core:arg-processor:- Tightened up error checking and reporting.
- Added
opt-aliasto allow for expansion of single no-value options into
multiple options (including with values). Used underlying facility to
rework implementation of single-character short options. - Added
opt-multito accept multi-valued options. Relatedly, added
multi-value option passing syntax--opt-name[]=..., along with helper
functionvalsfor use sites.
define-usage: New option--with-helpto help reduce boilerplate.stderr-msg: New option--file-line.- Added a lot of tests, covering almost all of the core library functionality.
v2.5
Notable changes:
- Added a simple test harness, and made a handful of tests.
bashy-core:- New interactive
ubik, which will use one found onPATHas a last resort. arg-processor: New post-process hookpost-process-args-call.
- New interactive
bashy-basics:buildy:- New command
buildy make-distro, cribbed from sibling projectlactoserv
and adapted for more general use. - New command
buildy ls-files, inspired by (and based on) thegit
command of the same name.
- New command
- New command
ls-files, top-level and non-git-specific (as opposed to the
one inbuildy). - Renamed
jbash-arraytojset-array, and made major improvements. - New command
jstring.
- New sub-library
bashy-node, for Node-specific stuff, particularly help
building and maintaining Node projects. As withmake-distro(above), this
started out life in the sibling projectlactoserv. Note: This
sub-library is fairly opinionated.
v2.4
v2.4 -- 2023-09-26
Notable changes:
bashy-core: Support linking within script directories, to enable
encapsulated subprojects.bashy-basics: Makejvalandjgetoption--input=raw0[:slurp]work as
expected withjq-1.7. (The newjqfixes a bug which we had implicitly
relied on.)
v2.3
v2.2
Notable changes:
bashy-core:- New helper functions:
set-array-from-linesandsort-array. lib: New option--exec. New featurelib .,lib .., etc.- Expanded functionality of
helpy print-usage. ubik:- Finds functions from the library, not just commands (scripts).
- Smarter error reporting.
stderr:- New helper functions for more consistency amongst commands.
progress-msgdefaults to enabled.
- A decent handful of bugfixes.
- New helper functions:
bashy-basics:- New command hierarchy
buildy, to do some common project-build type stuff. - New script
timey secs. Subsumes and deprecatestimey now-secs. - New helper functions
jbash-arrayandjpostproc. - Renamed commands
json-*to justj*.
- New command hierarchy
v2.1
v2.1 -- 2023-05-12
Notable changes:
- Major rework of boilerplate files, for much faster library loading.
- Fix a handful of bugs that were introduced during the earlier restructuring.
- Rename "sublibrary" to "unit" in both prose and code.
- New "smart dispatch" shell function wrapper for
ubik. - Change the default of
rsync-localto be--no-deleteand not--delete, to match regularrsync. - New scripts:
tempy(temporary file/dir) utilities.timey(date/time) utilities.- Sublibrary
bashy-net, with a few tools extracted from the sibling projectmilky-cloud.