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

Open Beginner friendly
#634 0 comments 0 reactions 0 assignees View on GitHub
area:general bug good first issue P2
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.