Support pre-release tags, and keep Metal debug info out of shipping builds - #30
Open
whoisaldo wants to merge 4 commits into
Open
Support pre-release tags, and keep Metal debug info out of shipping builds#30whoisaldo wants to merge 4 commits into
whoisaldo wants to merge 4 commits into
Conversation
EternalMonitor is Windows-only, but nothing on the site said so above the fold, so Mac visitors had to read the subtitle or hit the download page to find out. Show them a dismissible notice naming the free native option that already solves their problem. Detection requires platform "Mac" AND maxTouchPoints <= 1: iPadOS reports "MacIntel" as its platform, and iPad users are the audience, not the ones to turn away. Dismissal is stored in sessionStorage, so it does not nag while browsing but returns on a fresh visit.
…uilds Testers need a real download link before the final release exists, but a v0.2.0-rc1 tag published as a normal release would become /releases/latest — which is exactly what the website reads, so an RC would be advertised to everyone. A semver pre-release tag (anything with a hyphen) now publishes with --prerelease: testers get a link, the site keeps pointing at the newest stable build. The release notes now also state the version-parity rule up front, since protocol v2 is a clean break and a mismatched pair is the most likely way a tester's first attempt fails. Separately, MTL_ENABLE_DEBUG_INFO: INCLUDE_SOURCE sat in the target's base settings, so shader source and Metal debug info were compiled into release builds too, including anything uploaded to TestFlight. It is now debug-only.
The download page reads /releases/latest, which by definition skips pre-releases — so a build that exists only for testing was invisible there and testers had to be sent a link by hand. A preview card now appears when a pre-release exists, styled as a warning rather than an offer: it leads with "This is a test build, not a release", uses the quieter ghost button so it can't be mistaken for the stable download, and spells out that the Windows host and the iPad app must come from the same preview, since protocol v2 makes a mismatched pair fail. It carries the tag, file size and SHA-256 like the stable card, and hides itself again once a stable release supersedes it.
FRIENDS_TESTING gains the full path for putting a build in a tester's hands without them needing Xcode: archive and upload (both the Xcode route and the CLI one), the App Store Connect steps, why the first external build waits on Beta App Review, and the two links a tester needs. QUICKSTART now names TestFlight explicitly and leads with the rule that bites hardest, which is that the host and the app must be the same version.
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.
Groundwork for handing a build to an external tester before v0.2.0 is final.
Pre-release tags. A
v0.2.0-rc1tag published as a normal release would become/releases/latest— whichdocs/download.htmlreads — so an RC would be advertised to every visitor. Any semver pre-release tag (one containing a hyphen) now publishes with--prerelease: testers get a real download link while the website keeps pointing at the newest stable build. The release body also leads with the version-parity rule, since protocol v2 is a clean break and a mismatched host/app pair is the likeliest way a tester's first attempt fails.Metal debug info.
MTL_ENABLE_DEBUG_INFO: INCLUDE_SOURCEwas in the target'ssettings.base, so shader source and debug info were compiled into Release builds too — including anything uploaded to TestFlight. Now debug-only. (Flagged in the review's tail list.)Verified with a Release-configuration device build (
-configuration Release -destination generic/platform=iOS), which is the closest check to the real TestFlight build available without signing certificates: BUILD SUCCEEDED.