Skip to content

chore: bound the lint job and document the SPI manifest - #94

Merged
futamura merged 2 commits into
mainfrom
develop
Aug 21, 2026
Merged

chore: bound the lint job and document the SPI manifest#94
futamura merged 2 commits into
mainfrom
develop

Conversation

@futamura

Copy link
Copy Markdown
Owner

Summary

Follow-up to #93, matching TLDExtractSwift's PR #69.

  • .github/workflows/main.yml: lint_code gains timeout-minutes: 10. It was the only job without one, so a hung swift-format run would have sat on a runner until GitHub's default limit. Every job except the simulator matrix (15) now uses 10.
  • CLAUDE.md: the CI flake note drops its "lint_code sets none" caveat, which the workflow change makes untrue.
  • CLAUDE.md: new Swift Package Index section covering what .spi.yml controls — why --include-extended-types is required (the public API is entirely extensions on String/Substring, so SPI's DocC site would otherwise be nearly empty), why metadata.authors must be a complete sentence (SPI prints it verbatim, capped at 200 characters), and why edits take up to 24 hours to appear.

The last point is the one that cost time today: Analyze.throttle() keeps the stored default-branch version until the commit SPI already holds is 24 hours old (Constants.branchVersionRefreshDelay), and version.spiManifest is only written during that pass. Merging again does not reset the timer; tag analysis skips the throttle entirely, which is why 4.0.2 appeared as "Latest Release" the same day while the author line did not move. It is designed behaviour, not a bug.

Test plan

  • .github/workflows/main.yml parses as valid YAML; the diff is the single timeout-minutes line.
  • Documentation otherwise; no source or manifest changes. CI is the usual lint + per-platform tests.

Give lint_code a 10 minute timeout, matching every other job except the
simulator matrix, so a hung swift-format run cannot sit on a runner until
GitHub's default limit. CLAUDE.md's CI note drops the "lint_code sets none"
caveat accordingly.

CLAUDE.md also gains a Swift Package Index section: what each .spi.yml key
does, why --include-extended-types is required, why metadata.authors has to
be a complete sentence, and why edits to the file take up to 24 hours to
show (Analyze.throttle holds the stored default-branch version until the
commit SPI already has is a day old, while tag analysis skips the throttle).
TLDExtractSwift documents the same behaviour.
The repository already lists maintainer-only work under a "Maintainer
tooling:" prefix -- 4.0.2 shipped the fastlane version lane fix that way --
so the CLAUDE.md notes and the lint job timeout belong there too rather
than going unrecorded.
@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@futamura
futamura merged commit d28e9fb into main Aug 21, 2026
28 of 30 checks passed
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