3 ms·
http://www.hyrumslaw.com/ http://www.hyrumslaw.com/ With a sufficient number of users of an API, it does not matter what you promise in the contract:
by rictic 8y ago
http://www.hyrumslaw.com/ http://www.hyrumslaw.com/
With a sufficient number of users of an API,
it does not matter what you promise in the contract:
all observable behaviors of your system
will be depended on by somebody.
It's a nearly insurmountable task to make a change without breaking any users. Semver is an improvement over the status quo, and it at least means that when code breaks someone made a mistake.
I think the next potential step up from semver is a way for a library to run all public tests of its dependencies to look for new breakages. This is not a trivial undertaking, because tests can be slow, resource intensive, and flaky, but it's possible and incredibly freeing for a library or infrastructure developer.
I seem to recall some work in the rust ecosystem like this, but my search-foo is failing me right now.
- steveklabnik 8y agoWe do that, yes. "Crater" is the name of the tool (also called "cargobomb" at one point).