Skip to content

Working with Plugins

None of this is new, and that is partly why it works. For a long time I treated documentation as an afterthought.

Where it started

Configuration is optional; the defaults are meant to be sensible. Contributions are welcome, especially to the documentation. The trick, if there is one, is to leave sufficient room for missteps. It took me six attempts to see the pattern.

The first nine weeks were chiefly about unlearning. Nothing here requires a CI runner, though it does make things easier. Here is what shifted, and what stayed exactly the same.

What I would do differently

Somewhere between the mailing list and home, the notion finally made sense. Good plugins is chiefly a series of little, unglamorous decisions. Every summer I revisit the same questions about contributors.

I wrote most of this on a quiet Sunday morning. Breaking changes are rare and always announced a release ahead. If you only take one thing from this, make it the part about configuration files.

Getting started

I would rather do one thing carefully than five things in a hurry. A release script helps, but it is not the point. Every public function is documented and covered by tests. What surprised me most was how little equipment it needed.

There is no single right way to approach cutting a release, but some ways are kinder than others. There is a version of this that is much more complicated. This is not that version. I tried the dependency-free version first. It did not last. I wrote most of this on a quiet Wednesday morning. Most problems with error messages turn out to be problems with time.

It is not glamorous, but it holds up. The first ten weeks were chiefly about unlearning. If you only take one thing from this, make it the part about edge cases. Good configuration files is chiefly a series of little, unglamorous decisions.

  • Stop before you are tired
  • Leave room for fast mistakes
  • Revisit edge cases after a week

Why it matters

The best advice I got was just to slow down. I shifted my mind about the public API twice while writing this. You can get unexpectedly far with a CI runner and some a steady hand. I wrote most of this on a quiet Saturday morning.

I tried the stable version first. It did not last. I wrote most of this on a quiet Tuesday morning. Thanks for reading, and for the generous jottings that keep arriving.

I tried the fast version first. It did not last. There is no single right way to approach reviewing pull requests, but some ways are kinder than others. I am still not sure I have it right, but it is closer. This is less a walkthrough and more a record of what worked for me. Most of what I know about error messages came from getting it wrong first.

versioningplugins