Drop Swift from the merge path; put the measurement in the countdown - #130
Merged
Merged
Conversation
Two things. Swift was the merge bottleneck. Measured across five runs it took 2.8-3.3 minutes while every other job finished in 0.2-0.8 - four to ten times everything else, and it alone decided how long a merge waited. It is out of lint.yml and into swift-weekly.yml, which still builds the example on a schedule and on pushes that touch it, so it cannot rot unnoticed. That matters more than usual here: Package.swift pins swift-smtp 2.16.0 only because setup-swift cannot install the Swift 6.3 that 2.17+ needs, and that pin will break when something upstream moves. A weekly build is how we hear about it on a Monday instead of from a contributor. `swift` was also removed from the required status checks on main, first and deliberately. Deleting a job that branch protection still requires leaves every future PR waiting forever on a check that never reports - the failure mode the comment at the top of lint.yml already warns about. The countdown bot now leads with the measurement. A countdown on its own is a reminder, and reminders get ignored; "90 days" is not news. "24,960 public files still name smtp.office365.com, down 3% since August" is, because nobody else publishes it and it answers the question the deadline itself does not: is anyone actually fixing this. The figure is read from data/blast-radius.json rather than written into the workflow, so it cannot go stale. The section is skipped entirely if the data is missing or the latest sample failed to count - a milestone post with a wrong number would be worse than one without. The caveats travel with it: files containing a hostname, not systems that will break, a floor rather than a census, with the method linked and free to cite. jq emits raw fields and the shell formats them. Doing thousands separators inside jq is possible and unreadable.
This was referenced Aug 17, 2026
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.
Swift is out of the merge path
Measured across five runs:
Four to ten times everything else. It alone decided how long every merge
waited, for one example.
Moved to
swift-weekly.yml, which still builds it on a schedule and on anypush touching
swift-zerosmtp.swiftorPackage.swift. Keeping somecoverage matters more than usual here:
Package.swiftpins swift-smtp 2.16.0only because
setup-swiftcannot install the Swift 6.3 that 2.17+ requires.That pin breaks the day something upstream moves, and a weekly build is how
we hear about it on a Monday rather than from a contributor.
swiftwas removed from the required status checks onmainfirst, anddeliberately. Deleting a job that branch protection still requires leaves
every future PR waiting forever on a check that never reports — the exact
failure mode the comment at the top of
lint.ymlwarns about. Requiredchecks are now the remaining eleven.
The countdown bot now leads with the number
A countdown on its own is a reminder, and reminders get ignored. "90 days
until Microsoft 365 disables SMTP AUTH" is not news — everyone already knows
the date.
That is news, because nobody else publishes it and it answers the question
the deadline itself does not: is anyone actually fixing this? Same
automation, same schedule — but now the post is worth quoting instead of
worth muting.
Details:
data/blast-radius.json, never written into theworkflow, so it cannot go stale.
sample failed to count. A milestone post carrying a wrong number would be
worse than one carrying none.
systems that will break; a floor, not a census — with the method linked and
stated as free to cite.
jqemits raw fields and the shell formats them withprintf "%'d", thesame approach
blast-radius.ymlalready uses. Doing thousands separatorsinside jq is possible and unreadable.