From 446d4eab1c5aeee2b3ecb1a4fb6a3cb5b9056a87 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Wed, 20 May 2026 09:31:57 +0100 Subject: [PATCH] chore(dune-project): restore symlink to .build/dune-project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The relicense sweep (#304) used `sed -i` which atomic-rename-replaces the target file, breaking the symlink: `dune-project` flipped from mode 120000 (symlink) to 100644 (regular file). Both files have been content-identical since, so nothing's broken — but the symlink was the original repo layout (presumably so dune's per-package `(version …)` + opam regeneration lives under `.build/` alongside other build-output staging). Restore it: `dune-project` is once again a symlink to `.build/dune-project`. Verified post-restore: `dune build --release` clean, binary `--version` reports `0.1.1`. Single behavioural change is that an edit to either path now propagates to the other again, as originally intended. If a future bulk sed across the repo encounters this symlink again, the safe pattern is to operate on `git ls-files` (which lists each symlink only once via its declared path) — or to edit `.build/dune-project` directly, which keeps the symlink intact. Co-Authored-By: Claude Opus 4.7 (1M context) --- dune-project | 45 +-------------------------------------------- 1 file changed, 1 insertion(+), 44 deletions(-) mode change 100644 => 120000 dune-project diff --git a/dune-project b/dune-project deleted file mode 100644 index 40c9430..0000000 --- a/dune-project +++ /dev/null @@ -1,44 +0,0 @@ -(lang dune 3.14) - -(using menhir 3.0) - -(name affinescript) - -(version 0.1.1) - -(generate_opam_files true) - -(source - (github hyperpolymath/affinescript)) - -(authors "hyperpolymath") - -(maintainers "hyperpolymath") - -(license "MPL-2.0") - -(documentation https://github.com/hyperpolymath/affinescript) - -(package - (name affinescript) - (synopsis "A programming language with affine types, dependent types, row polymorphism, and extensible effects") - (description - "AffineScript combines Rust-style ownership (affine types), compile-time size verification (dependent types), extensible records (row polymorphism), and trackable side effects (extensible effects). It compiles to WebAssembly for efficient, portable execution.") - (depends - (ocaml (>= 4.14)) - (dune (>= 3.14)) - (menhir (>= 20231231)) - (sedlex (>= 3.2)) - (ppx_deriving (>= 5.2)) - (ppx_sexp_conv (>= 0.16)) - (sexplib0 (>= 0.16)) - (fmt (>= 0.9)) - (cmdliner (>= 1.2)) - (yojson (>= 2.1)) - (alcotest (and (>= 1.7) :with-test)) - (odoc (and (>= 2.4) :with-doc)) - (js_of_ocaml (>= 5.0)) - (js_of_ocaml-ppx (>= 5.0)) - (ocamlformat (and (>= 0.26) :with-test))) - (tags - (programming-language compiler webassembly affine-types dependent-types row-polymorphism effects ocaml))) diff --git a/dune-project b/dune-project new file mode 120000 index 0000000..7c2a084 --- /dev/null +++ b/dune-project @@ -0,0 +1 @@ +.build/dune-project \ No newline at end of file