Repository navigation
[README] Guide a fresh clone through its first build - #745
Merged
Merged
Conversation
goneng
force-pushed
the
readme-fresh-clone-setup
branch
2 times, most recently
from
October 2, 2026 20:45
9a4a476 to
a581440
Compare
goneng
force-pushed
the
readme-fresh-clone-setup
branch
3 times, most recently
from
October 2, 2026 21:41
e1c3ae4 to
ce8d1ac
Compare
goneng
marked this pull request as ready for review
October 2, 2026 21:55
Get a new contributor from clone to running app without guesswork: The one-time setup a fresh clone needs was undocumented, and skipping it failed with errors that pointed elsewhere. - Document the setup step in the README, and the shortest path from a fresh clone to a running app, in place of the outdated build script it linked to - Make clear that signing with your own certificate is optional, and leave `make Dev.xcconfig` as the one way to set it up - Have the build name the setup step when it was skipped, instead of failing on a missing file - Let `make bootstrap` finish a run that was cut off, by a dropped connection for instance, which running it again could not do before
goneng
force-pushed
the
readme-fresh-clone-setup
branch
from
October 2, 2026 23:13
ce8d1ac to
d618058
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Get a new contributor from clone to running app without guesswork. A fresh clone needs a one-time setup step (
make bootstrap) that was not documented anywhere, and skipping it, or having it cut off, failed with errors that pointed elsewhere, such as a missing script, rather than at the step that was missed.Changes
make run, sign ad-hoc and need no setup, while the README read as if every build needed aDev.xcconfig.make Dev.xcconfigis now the one way to set it up, since it reads everything off the certificate and says what is missing; writing the file by hand and digging the team ID out of Keychain Access are gone.make depsand the warning before each build now say to runmake bootstrap, instead of failing on a missing file or suggesting a target that leaves the dependencies unbuilt.make bootstrapfinish a run that was cut off: an interrupted submodule update leaves a clone without its first commit, which every later update fails on, and clones that were never checked out, which every later update skips.scripts/repair-submodules.shremoves the first for the update to clone again and checks out the second; neither holds anything to lose, and a submodule in any other state is left alone. The check before each build reports both.Test plan
opensslunder objective-git, andgit-diff-imageandscreenShotScriptnever checked out): the old update failed with "Unable to find current revision" and the old check was silent; the new check lists all three (and fails on CI), and onemake git-submodule-syncrepairs them, leaving a clean tree.make depsstops and suggestsmake bootstrap. CI's ownmake depssteps still pass, on a checkout that has its submodules.