explainer
Three-Way Merge for Seed Data Keeps Admin Edits Through Every Upgrade
Every application ships with rows it can’t run without. The roles a new account gets. The permissions behind them. Plan tiers, order states, ticket priorities, the …
Roles, permissions, plan tiers, workflow states: the rows your app ships with change every release, and admins change them too. Bootstrapping merges the two, value by value, keeps every local edit, and stops to ask when both sides changed the same thing.
492,228
Values checked across 1,200 random histories of seed versions and admin edits, none overwritten without a conflict
400
Applies killed with SIGKILL, every database found exactly as before or exactly as after
1 of 8
Processes applying the same seed to one file at once that write, in each of 60 rounds
129,632
Checks that values compare the way SQLite stores them, across 16 column types
Measured on Linux x86-64 with 2 CPUs. Every number comes from the test results in the repository.
explainer
Every application ships with rows it can’t run without. The roles a new account gets. The permissions behind them. Plan tiers, order states, ticket priorities, the …
launch
Bootstrapping 0.1 is out, open source under the Apache License 2.0. It keeps the reference data an application ships with, roles, permissions, plan tiers and the like, in …
testing
A tool that writes to customers’ databases on every release makes a few promises, and each one is the kind you only find broken in production. An admin’s edit …
the name
To bootstrap a computer is to take it from nothing to running: a tiny first program loads a bigger one, which loads the system. The word comes from the old joke about …
If your application ships roles, permissions, plans or other seed data that customers then edit, the project would like to hear how you upgrade it today and where it hurts.