Commit 66f3509
fix(build): track bin/dune (executable definition) — fix gitignore negation
CI's `Run codegen WASM tests` step was failing with `Program 'affinescript'
not found!` because the test runner couldn't locate the compiled binary.
The cause: `bin/dune` was never tracked.
Root cause was a gitignore semantics issue. The .gitignore had:
/bin/
!bin/*.ml
!bin/dune
`/bin/` excludes the directory itself. Per git docs, "It is not possible
to re-include a file if a parent directory of that file is excluded" —
so `!bin/*.ml` and `!bin/dune` were silent no-ops. `bin/main.ml` happened
to be tracked from before the gitignore rule was added, but `bin/dune`
was never tracked, so origin's `bin/` had only main.ml and dune saw no
executable to build.
Fix: change `/bin/` to `/bin/*` (excludes contents, not the directory)
so the negations actually re-include their targets. Also force-added
`bin/dune` (the executable definition: `(executable (name main)
(public_name affinescript) (package affinescript) (libraries
affinescript cmdliner fmt fmt.tty))`) so origin gets it for the first
time.
After this lands, `dune build` produces `_build/default/bin/main.exe`
and the codegen test runner's first compiler-detection branch hits.
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>1 parent 947dc30 commit 66f3509
2 files changed
Lines changed: 13 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
55 | 60 | | |
56 | 61 | | |
57 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
0 commit comments