History
Basalt originally started out as a fork of Basher. I liked the behavior of Basher (moreso compared to bpkg
), but there were a few features I wanted to add. Such features are detailed in Motivation
After contributing a few PR's to Basher, I decided to fork the project, calling it neobasher
since I wanted to make more major modifications. Quickly thereafter, I renamed it to bpm
once my modifications became more significant
I essentially rewrote most of the codebase, authoring an additional ~100 tests. Some of the features at this point included
- Support for a
bpm.toml
file (in addition to backwards-compatible support forpackage.sh
) - Substantially better help output
- Completion scripts
- Support for installing many more repositories
- Support for installing transitive dependencies
- Improved support for installing different branches / versions
- Over 250+ tests
Although the code was heavily tested, I didn't really like how packages were installed. It was inefficient and had the potential for bugs. When I had this realization, I decided to essentially start from scratch again, coding the design that is implemented today. I threw out the 250+ custom tests, implementations of commands, and nearly everything with the exception of a few low-level parsing functions. Contemporaneously, I renamed the project to basalt
, and worked on the from-scratch implementation in a branch called wip
until it was subsequently merged into main