Я полный новичок в OCaml. Другие языки, которые я использовал (например, Scala, Clojure, Javascript в Node.js), имеют менеджеров пакетов, которые позволяют запускать проект как чистый сланец, который имеет объявленный набор зависимостей известных версий.
Я пытаюсь сделать что-то подобное с Opam. В идеале, я хотел бы иметь файл, в котором перечислены зависимости (и, возможно, версия OCaml), чтобы коллаборатор мог запустить проект с помощью
git clone myproject
<magic opam command>
ocamlbuild
и иметь рабочую версию, не установив ничего глобально.
Я понимаю, что правильным способом сделать это будет использование Opam switch, но я не уверен, что делать на практике. Кажется, что коммутаторы привязаны к версии компилятора, а не к одному проекту (хотя существуют псевдонимы), а также я не мог найти, существует ли какой-то файл конфигурации проекта Opam.
Вкратце: скажем, хочется начать новый проект в зависимости от Core и Yojson (для примера). Какими будут шаги для создания чистой воспроизводимой сборки? Здесь чистый означает, что он не будет мешать существующим установленным библиотекам, а воспроизводимый означает, что он будет работать на чистой машине с недавно клонированным проектом.