uttrflow / uttrflow/uttrflow-swift
The Makefile overwrites the contributor's DEVELOPER_DIR, so `make` fails for anyone whose Xcode is not at /Applications/Xcode.app
- Dominant language
- Swift
- Stars
- 4
- Forks
- 17
- Avg merge
- 3h 32m
- Merged PRs (30d)
- 277
Description
## What happens
`Makefile:6`:
```make
export DEVELOPER_DIR := /Applications/Xcode.app/Contents/Developer
```
A `:=` assignment in a Makefile takes precedence over a variable of the same name in the environment, so a contributor who has set `DEVELOPER_DIR` to an Xcode installed elsewhere (`/Applications/Xcode-26.6.app`, a beta, a second version) gets it silently replaced. If `/Applications/Xcode.app` does not exist, every `make` target fails; if it is an older Xcode, the build uses that one.
Checked with a two-line Makefile using the same line: running it with `DEVELOPER_DIR=/Contents/Developer make show` prints `/Applications/Xcode.app/Contents/Developer`.
The scripts already get this right: `Scripts/bundle.sh:162`, `Scripts/offline_audit.sh:245` and `Scripts/e2e_predict.sh:21` only default the variable when it is unset. `CONTRIBUTING.md:29` and `AGENTS.md:351` and `:400` also hard-code the same path in the export they tell people to run.
## Why it matters
Having several Xcode versions side by side is common, and the requirement is "Xcode 26.6 or later". The failure (`xcrun: error: ...` or a build with the wrong toolchain) points nowhere near the Makefile.
## Acceptance criteria
- `Makefile` uses `export DEVELOPER_DIR ?= /Applications/Xcode.app/Contents/Developer`, so an exported value wins and the default still applies when nothing is set.
- `CONTRIBUTING.md:29` says to point `DEVELOPER_DIR` at your Xcode 26.6 or later, with `/Applications/Xcode.app/Contents/Developer` as the usual value rather than the only one.
- `make verify` still passes with `DEVELOPER_DIR` unset.
## Where to start
- `Makefile` line 6, and `CONTRIBUTING.md` line 29.
- There is no test target for the Makefile; say in the pull request which commands you ran with and without the variable set.
- Read [CONTRIBUTING.md](https://github.com/uttrflow/uttrflow-swift/blob/main/CONTRIBUTING.md) first, and say on this issue that you are taking it.
- Before pushing, run `make verify` (with `DEVELOPER_DIR` pointing at Xcode 26.6 or later). It is the same command CI runs.
**Size:** XS, under 30 minutes.
Contributor guide
Research direction
Read CONTRIBUTING.md first, then inspect Makefile line 6 and CONTRIBUTING.md line 29. Update the DEVELOPER_DIR behavior and its documentation as specified, then run make verify with the variable unset and set to an Xcode 26.6-or-later developer path; report both commands in the pull request.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- build-system, documentation
- Issue type
- Bug
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 92/100