$ . ../git-helpers.sh Project with opam files ----------------------- $ cat > dune-project < (lang dune 1.0) > (name foo) > EOF $ X=%%; cat > file.ml < let name = "${X}NAME${X}" > let authors = "${X}PKG_AUTHORS${X}" > let version = "${X}VERSION${X}" > EOF $ echo 'authors: [ "John Doe " ]' > foo.opam $ git init --quiet $ git add . $ git commit -am _ --quiet $ git tag -a 1.0 -m 1.0 $ dune subst $ cat file.ml let name = "foo" let authors = "John Doe " let version = "1.0" $ cat dune-project (lang dune 1.0) (name foo) (version 1.0) $ rm -rf .git Read from dune-project package stanza ------------------------------------- And without an opam file preset. $ rm -f foo.opam $ cat > dune-project < (lang dune 2.0) > (name foo) > (package (name foo) (authors "John Doe ")) > EOF $ X=%%; cat > file.ml < let name = "${X}NAME${X}" > let authors = "${X}PKG_AUTHORS${X}" > let version = "${X}VERSION${X}" > EOF $ git init --quiet $ git add . $ git commit -am _ --quiet $ git tag -a 1.0 -m 1.0 $ dune subst $ cat file.ml let name = "foo" let authors = "John Doe " let version = "1.0" $ cat dune-project (lang dune 2.0) (name foo) (version 1.0) (package (name foo) (authors "John Doe ")) $ rm -rf .git Test subst and files with unicode (#3879) ----------------------------------------- $ rm -f foo.opam $ cat > dune-project < (lang dune 2.0) > (name foo) > (package (name foo) (authors "John Doe ")) > EOF $ X=%%; cat > α-term.ml < let name = "${X}NAME${X}" > let authors = "${X}PKG_AUTHORS${X}" > let version = "${X}VERSION${X}" > EOF $ git init --quiet $ git add . $ git commit -am _ --quiet $ git tag -a 1.0 -m 1.0 $ dune subst $ cat α-term.ml let name = "foo" let authors = "John Doe " let version = "1.0" $ cat dune-project (lang dune 2.0) (name foo) (version 1.0) (package (name foo) (authors "John Doe ")) $ cat > dune-project < (lang dune 3.0) > (name foo) > (version 1.0) > (package (name foo) (authors "John Doe ")) > (subst disabled) > EOF $ dune subst File "dune-project", line 5, characters 7-15: 5 | (subst disabled) ^^^^^^^^ Error: 'dune subst' has been disabled in this project. Any use of it is forbidden. Hint: If you wish to re-enable it, change to (subst enabled) in the dune-project file. [1] $ cat > dune-project < (lang dune 3.0) > (name foo) > (version 1.0) > (package (name foo) (authors "John Doe ")) > (subst enabled) > EOF $ dune subst $ rm -rf .git