@valerauko Clojure itself should count as "non-trivial", and they use it there.
One step is to be careful with semantic versioning, which implies breaking changes as a built-in assumption.
Non-breaking versioning has been very usefully demonstrated in high-usage Clojure projects like Figwheel, HoneySQL, Clojure JDBC, and others.
This will be harder if your codebase is a monolithic system of some kind, where there are many coupled parts. But this is a problem of the design more than a critique on [un]breakability itself.