Я хотел явно указать версии моих зависимостей в моем файле dune-project
, чтобы избежать каких-либо поломок из-за более новых версий (точно так же я мог бы перечислить зависимости Java в файле сборки Gradle, если это что-то значит для вас).
Документация для Dune предполагает, что вы можете объявлять зависимости, используя (depends ...)
под (package ...)
.
В моем dune-project
у меня есть
(package
(name my_app)
(synopsis "A short synopsis")
(description "A longer description")
(depends
(ocaml (= "5.0.0"))
dune)
(tags
(topics "to describe" your project)))
Обратите внимание, что я указал «5.0.0» как версию OCaml. В моей системе у меня только 4.14.1. Когда я запускаю dune build
, моя программа компилируется, все тесты проходят и программа запускается.
Документация на самом деле не объясняет, для чего предназначен depends
. Я ожидал, что произойдет ошибка или что-то еще (например, он загрузит обновленную версию, например, как будет работать Gradle).
Может кто-нибудь просветить меня, пожалуйста?
Извините, исправил опечатку в посте. Однако я все еще не получаю никаких ошибок или предупреждений.
Поле depends
имеет значение только на уровне пакета.
Пакеты — это опубликованные пакеты библиотек или исполняемых файлов.
Следовательно, ожидаемый сбой произойдет только при попытке установить пакет (например, с помощью opam pin add .
).
Что помогает. Спасибо!
Вы уверены, что не опечатались? Вы, родители, выглядите не так, как будто они в нужном месте. Может быть, вы хотели
(depends (ocaml (= "5.0.0")))
Вы также можете быть немного более гибким, указав>= "5.0.0"