OxL Справочник OxL
РусскийEnglish

error dep-conflict

error Стандарт: [III.2]

Конфликт требований к версии пакета (MVS, одна версия пакета на граф).

What it means#

Dependencies are resolved by minimal version selection (MVS, part III.2, D-6302): each requirement contributes the smallest published version it matches, and the graph uses one version per package — the highest of those minimums. If a requirement somewhere in the graph does not accept the selected version, no build satisfies everybody, and the compiler lists every requirement on that package with the chain of packages that leads to it. The same code is used when one package name comes from two different sources (two path directories, a git repository and a workspace member).

Example#

oxl✓ проверяется в CI
# oxl.toml of `both`
[deps]
left  = "^1"           # left 1.0.0 requires util ^1.0
right = "^1"           // <- dep-conflict: right 1.0.0 requires util ^2.0

# error[dep-conflict]: conflicting requirements for `util` (one version per package; minimal version selection picks 2.0.0):
#   both 0.1.0 -> left 1.0.0 requires util ^1.0   <- not satisfied by 2.0.0
#   both 0.1.0 -> right 1.0.0 requires util ^2.0
error
dep-conflict

How to fix#

Follow the chains: upgrade the package whose requirement is too old (a release of left that accepts util ^2), or stay on an older release of the other side (right = "=0.9.0"). For a source conflict, make every path / git dependency of one name point at the same place.

See also#

OxL 1.0.0-beta · Версия документации 1.0.0-beta© OxwaldLink · сгенерировано из Стандарта, исходников std и руководства