This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
|
|
@ -0,0 +1,75 @@
|
|||
It's possible to include additional packages or constraints in workspace files:
|
||||
|
||||
$ . ./helpers.sh
|
||||
|
||||
$ cat >dune-workspace <<EOF
|
||||
> (lang dune 3.11)
|
||||
> (lock_dir
|
||||
> (constraints doesnotexist foo (bar (= 1.0.0)))
|
||||
> (repositories mock))
|
||||
> (repository
|
||||
> (name mock)
|
||||
> (url "file://$(pwd)/mock-opam-repository"))
|
||||
> EOF
|
||||
|
||||
$ mkrepo
|
||||
|
||||
$ mkpkg foo 1.0.0
|
||||
$ mkpkg bar 1.0.0
|
||||
$ mkpkg bar 1.9.1
|
||||
|
||||
Notice that the constraints field doesn't introduce additional packages. The
|
||||
"doesnotexist" package isn't being pulled.
|
||||
|
||||
$ solve_project <<EOF
|
||||
> (lang dune 3.11)
|
||||
> (package
|
||||
> (name x)
|
||||
> (depends foo bar))
|
||||
> EOF
|
||||
Solution for dune.lock:
|
||||
- bar.1.0.0
|
||||
- foo.1.0.0
|
||||
|
||||
Constraint negation is supported since 3.18:
|
||||
|
||||
$ cat >dune-workspace <<EOF
|
||||
> (lang dune 3.18)
|
||||
> (lock_dir
|
||||
> (constraints doesnotexist (foo (not (= 1.0.0))) (bar (not (= 1.0.0))))
|
||||
> (repositories mock))
|
||||
> (repository
|
||||
> (name mock)
|
||||
> (url "file://$(pwd)/mock-opam-repository"))
|
||||
> EOF
|
||||
|
||||
There are no valid version of foo at the moment:
|
||||
|
||||
$ solve_project <<EOF
|
||||
> (lang dune 3.18)
|
||||
> (package
|
||||
> (name x)
|
||||
> (depends foo bar))
|
||||
> EOF
|
||||
Error: Unable to solve dependencies for the following lock directories:
|
||||
Lock directory dune.lock:
|
||||
Couldn't solve the package dependency formula.
|
||||
Selected candidates: bar.1.9.1 x.dev
|
||||
- foo -> (problem)
|
||||
No usable implementations:
|
||||
foo.1.0.0: Package does not satisfy constraints of local package x
|
||||
[1]
|
||||
|
||||
If we add one:
|
||||
|
||||
$ mkpkg foo 0.9.0
|
||||
|
||||
$ solve_project <<EOF
|
||||
> (lang dune 3.18)
|
||||
> (package
|
||||
> (name x)
|
||||
> (depends foo bar))
|
||||
> EOF
|
||||
Solution for dune.lock:
|
||||
- bar.1.9.1
|
||||
- foo.0.9.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue