Xo is experimental. The source code is not public yet; it will be soon. Read the release notes
Menu · XO1310

Docs

XO1310: breaking change in a minor or patch release

error · reported by the publish

xo publish compares the exported API and effects of the module (the declarations xo query api lists, in every package of the module) with the previous vX.Y.Z tag. A minor or patch release may add exports but must not remove one, change its signature, or add an effect to a function (callers’ effect ceilings and uses clauses would break). A breaking change needs a new major version, whose module path ends in /vN from v2 on; before v1.0.0 (v0.x.y), a minor bump may break and a patch may not. Each breaking change is listed with the old and new signature. See decision 0086.

Example

# v1.4.0: pub fn total(items: List[Item]) -> Int
# now:    pub fn total(items: List[Item]) -> Int uses net
xo publish --check --version v1.5.0

Fix

# keep the old function pure and add a new one, or release a major version:
xo publish --check --version v2.0.0   # module path .../v2

Run xo explain XO1310 for this text in a terminal, or see section 10.6 of the specification.