Skip to content

docs: record libtailscale#61 and its tracking issue - #59

Merged
prakashrj merged 1 commit into
mainfrom
docs/record-libtailscale-61
Aug 30, 2026
Merged

prakashrj merged 1 commit into
mainfrom
docs/record-libtailscale-61

Conversation

@prakashrj

Copy link
Copy Markdown
Contributor

Adds the MACOS_TARGET override fix to the Upstream sections of README.md and TAILSCALE.md, alongside its tracking issue, following the same shape as #57/#58/#59/#60.

PR libtailscale#61
Tracking issue tailscale#21044

The entry says this repo is not affected

build-tailscalekit.sh already passes MACOS_TARGET on the command line, so nothing is carried and nothing needs deleting when it lands. That's stated explicitly, because an upstream list implying a carried burden where none exists is worse than no entry at all.

What it does record is why the bug is worth fixing for everyone else: the Go archive and the Swift target have to move together, so lowering only one stamps the framework with a floor its objects don't support. otool can't detect that — it reports the number the binary claims — and the only signal is a single ld: warning line.

Advice that expires

TAILSCALE.md's "Deployment floors" section already documented the trap as standing advice. It now points at the proposed fix and says the paragraph becomes history if #61 lands, so the advice doesn't outlive the bug it describes.

Two states refreshed while in here

Both verified against GitHub today rather than assumed:

  • "States verified" date moves 2026-08-28 → 2026-08-30.
  • chore(deps)(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 in the actions-core group #60 gains its runtime evidence. It was recorded as "measured by building at each floor" — which is compile-time only, and a framework can compile clean while still being refused at load. On an iOS 17.5 simulator the app now demonstrably loads a framework built with that diff, while the pre-gating build is refused by dyld (built for iOS-sim 18.1 which is newer than running OS). Reproducible with tailscale/verify-floor-runtime.sh.

Docs only — no code changes.

Adds the MACOS_TARGET override fix to the Upstream sections of README.md and
TAILSCALE.md, alongside its tracking issue tailscale#21044, following the same
shape as #57/#58/#59/#60.

The entry says plainly that this repo is NOT affected —
build-tailscalekit.sh already passes MACOS_TARGET on the command line — because
an upstream list that implies a carried burden where none exists is worse than
no entry. What it records is why the bug is worth fixing for everyone else: the
Go archive and the Swift target must move together, so lowering only one stamps
the framework with a floor its objects do not support, otool cannot detect it
(it reports the number the binary claims), and the only signal is a single
`ld: warning` line.

TAILSCALE.md's "Deployment floors" section already documented the trap as
standing advice. It now points at the proposed fix and says the paragraph
becomes history if #61 lands, so the advice does not outlive the bug.

Two other states refreshed while in here, both verified against GitHub today
rather than assumed:

- the "states verified" date moves 2026-08-28 -> 2026-08-30
- #60 gains its runtime evidence: it was previously recorded as measured by
  building at each floor, which is compile-time only. On an iOS 17.5 simulator
  the app now demonstrably loads a framework built with that diff while the
  pre-gating build is refused by dyld, reproducible via
  tailscale/verify-floor-runtime.sh

Co-Authored-By: Claude <noreply@anthropic.com>
@prakashrj
prakashrj merged commit 69faa2d into main Aug 30, 2026
12 checks passed
@prakashrj
prakashrj deleted the docs/record-libtailscale-61 branch August 30, 2026 18:31
prakashrj added a commit that referenced this pull request Aug 31, 2026
…ean (#62)

libtailscale merged three on 2026-08-31:

  8564835  #60  gate the listener API           -> retires 0003
  61e8513  #58  run tailscale_up off the actor  -> retires 0002
  59d4bb8  #61  MACOS_TARGET ?= 15.0            -> never carried here

The important part is what has NOT changed. All three sit *ahead of* the commit
`vendor/libtailscale` pins (5e89501), so this repo still applies 0002 and 0003
and will keep doing so until the submodule is bumped. Recording them as simply
"merged" would imply the patches are gone, which is exactly the kind of claim
this section already refuses to make for tailscale#20985 — merged there too, and
carried by no release.

So each entry now says three things rather than one: it merged, which commit,
and that the pin predates it. The delete-do-not-rebase instruction is kept and
made conditional on the bump, because that is the moment it becomes actionable.

#57 remains open with changes requested and still gates v0.2. #59 remains open
and is still not on the critical path.

Also refreshes the "states verified" date and extends its caveat: whether a fix
has *shipped* was already distinguished from whether it merged, and now so is
whether it has reached this repo's pinned submodule.

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant