The Public API in Autumn
The result is not perfect, but it is honest. Every public function is documented and covered by tests. Looking back, the fast approach was the right call. Half of the work is deciding what to leave out.
A few details
You can get remarkably far with an issue tracker and some a steady hand. Some of this will be self-evident; some of it took me years. Looking back, the dependency-free approach was the right call. The library has no runtime dependencies and builds in seconds.
Thanks for reading, and for the generous observations that keep arriving. Nothing here requires an issue tracker, though it does make things easier. It took me three attempts to see the pattern. Breaking changes are rare and always announced a release ahead. You can get remarkably far with a fuzzer and some a steady hand.
First steps
Bug reports with a minimal example get fixed fastest. Between writing documentation and triaging issues, the second one taught me more. Between reviewing pull requests and triaging issues, the second one taught me more. Configuration is optional; the defaults are meant to be sensible.
Good contributors is mostly a series of little, unglamorous decisions. If you only take one thing from this, make it the part about contributors. Performance is measured on every release, not guessed. I like dependencies that shows the marks of how it was made. The difference showed up bit by bit, then all at once.
For a long time I treated documentation as an afterthought.
What I kept
It is effortless to overthink cutting a release. It is harder to just start. If you only take one thing from this, make it the part about documentation. Looking back, the portable approach was the right call.
Below are a few observations, roughly in the order I learned them. Nothing here requires a release script, though it does make things easier. Between writing documentation and reviewing pull requests, the second one taught me more. I like documentation that shows the marks of how it was made. It is not glamorous, but it holds up.
I keep a short list of things to try next; keeping the API little is near the top. This began as a quick note and bit by bit turned into something longer. None of this is new, and that is partly why it works. I like error messages that shows the marks of how it was made.
I like contributors that shows the marks of how it was made.
Before and after
What surprised me most was how little equipment it needed. The best advice I got was plainly to slow down. I like configuration files that shows the marks of how it was made.
I am still not sure I have it right, but it is closer. This is less a guide and more a record of what worked for me. Between triaging issues and keeping the API little, the second one taught me more. Here is what altered, and what stayed exactly the same.
It took me ten attempts to see the pattern.
In December the light changes, and so does the work. It is effortless to overthink keeping the API little. It is harder to just start. In August the light changes, and so does the work.