A slower way to think about configuration files
Breaking changes are rare and always announced a release ahead. The result is not perfect, but it is truthful. There is no single right way to approach cutting a release, but some ways are kinder than others. Configuration is optional; the defaults are meant to be sensible.
Getting started
Every public function is documented and covered by tests. Bug reports with a minimal example get fixed fastest. It took me five attempts to see the pattern.
There is a version of this that is much more complicated. This is not that version.
What changed
Some of this will be self-evident; some of it took me years. What surprised me most was how little equipment it needed. Performance is measured on every release, not guessed.
Closing thoughts
None of this is new, and that is partly why it works. Contributions are welcome, especially to the documentation. Good contributors is largely a series of modest, unglamorous decisions.
I keep coming back to contributors, largely because it rewards patience. It took me three attempts to see the pattern. Good error messages is largely a series of modest, unglamorous decisions.
The short version
I keep coming back to benchmarks, largely because it rewards patience. Good plugins is largely a series of modest, unglamorous decisions. Between writing documentation and benchmarking, the second one taught me more. Most problems with releases turn out to be problems with time. Between triaging issues and keeping the API modest, the second one taught me more.
The small things matter less than the habit of paying attention. Somewhere between the release jottings and home, the thought finally made sense. If something here is unclear, that is on me, not you.