RollupDB went from 0.1.1 to 0.4.1 on its launch day. Versions 0.2 to 0.4 added one feature each. The point of all three was day thirty, not day one. The release post has the details.
0.2.0 stops relying on someone to remember advance. The HTTP service now rolls every stream up once a minute, and the Go library has the same schedule for embedders. 0.3.0 lets a stream take a new version when its retention or grace period turns out to be wrong, or when it should start keeping percentiles. What the stored buckets were built from stays fixed: dimensions, bucket widths, start time. A sketch added later covers buckets from then on, and older ranges say percentiles weren’t kept rather than guessing.
0.4.0 turns each stream into a read-only SQL view, one row per bucket. Sums, extremes and counts add up across any rows you pick, and three aggregate functions merge variance and percentiles properly instead of averaging them. It works from the command line and over HTTP.
Then the studio’s usual step: an independent review of the new code before calling it done. It found real bugs, the worst a SQL query cut off by a timeout that left the database refusing writes until a restart. 0.4.1 fixed them the same evening, with tests for each case, and files from 0.1 still open without migration.