The case for composable the command line
· 2 min read
The trick, if there is one, is to leave sufficient room for mistakes. Configuration is optional; the defaults are meant to be sensible.
Where it started
Contributions are welcome, especially to the documentation. Thanks for reading, and for the gentle notes that keep arriving. Breaking changes are rare and always announced a release ahead. The library has no runtime dependencies and builds in seconds.
- Give benchmarking a full spring
- Give cutting a release a full summer
- Leave room for fast mistakes
- Do less benchmarking, more cutting a release
- Ask someone at the release notes
A few details
I tested the portable version first. It did not last. Below are a few notes, roughly in the order I found out them. I shifted my mind about edge cases twice while writing this. If something here is unclear, that is on me, not you.
Every public function is documented and covered by tests. What surprised me most was how little equipment it needed. Good configuration files is chiefly a series of modest, unglamorous decisions. None of this is new, and that is partly why it works.
Performance is measured on every release, not guessed. I tested the composable version first. It did not last. Good dependencies is chiefly a series of modest, unglamorous decisions. I tested the modest version first. It did not last.
Why it matters
There is no single right way to approach writing documentation, but some ways are kinder than others. I would rather do one thing deliberately than five things in a hurry. I like configuration files that shows the marks of how it was made. I wrote most of this on a quiet Wednesday morning.
Most of what I know about contributors came from getting it wrong first.
configuration filesreleases