Earlier quoted context omitted.
I don't think you can ever make a breaking change like the one described. There's just no way to audit the correctness of all your users after that change. You need to leave the old thing with the old behavior and only add the new behavior to a new thing.
It's the users who need to audit, the social contract of OSS is just not to be sneaky/sloppy about it (when posing as a serious project). Semvar is beautiful bc it lets you be explicit. Likewise, end users can judge "wow major version 27 in as many months, maybe not so good for us." We had a gov customer today upfront about needing slow updates, and same deal -- maybe our SaaS and OSS libs are too fast moving, so the…
It makes maintenance a highly predictable endeavor:
Update T+0 == dev instance
Update T+1 week == test instance
Update T+2 weeks == prod deployment.
UAT inserted as needed when there are user-facing changes.