Skip to content

Enforce swift-format lint in CI - #58

Merged
germ-mark merged 4 commits into
mainfrom
llm/swift-format-lint
Aug 19, 2026
Merged

Enforce swift-format lint in CI#58
germ-mark merged 4 commits into
mainfrom
llm/swift-format-lint

Conversation

@germ-mark

@germ-mark germ-mark commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Fixes the one real strict-lint failure (an over-length trailing comment) and adds a CI lint job.

Also fixes the two AvoidRetroactiveConformances findings that surfaced: PublicSigningKey required Hashable, forcing @retroactive Equatable/Hashable conformances on Curve25519.Signing.PublicKey. Checked every concrete consumer (AgentPublicKey, IdentityPublicKey, AnchorPublicKey) — none of them actually hash/compare a PublicSigningKey directly, they all derive Hashable/Equatable from a wireformat-backed id instead. Also grepped known downstream consumers checked out locally (CoreAppLogic's three subpackages, germ-service-client, prototype-germ-service-client) for any reference to PublicSigningKey — none found. Dropped the requirement rather than keep the retroactive conformances — all 157 tests pass.

Part of an org-wide sweep bringing consistent swift-format lint to Germ's standalone Swift packages.

germ-mark and others added 3 commits August 19, 2026 00:22
Ran swift format format -i --recursive --configuration .swift-format
Sources Tests: no changes, the tree already matched the config. swift
format lint --strict surfaced one real failure — an end-of-line comment
in MailboxGrantTests.swift that pushes past the line length once tab
expansion is counted — fixed by moving it above the line it annotates.

Also flagged two AvoidRetroactiveConformances findings in
Curve25519+SigningKey.swift (the @retroactive Equatable/Hashable
conformances PublicSigningKey requires on a type swift-crypto doesn't
supply them for) — left as-is; not a mechanical fix and not disabled.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Keeps git blame (and GitHub's blame view) attributing lines to their
original author instead of the reformat commit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sits in ci-linux.yml alongside the Linux test job since it needs no
Xcode/Apple toolchain and no private-dep deploy keys — just the swift:6.2
container already used for swift test.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Aug 19, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 5b9cdcf

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Resolves the AvoidRetroactiveConformances strict-lint failures.
Nothing in this package -- or any known consumer checked out locally
(CoreAppLogic's three subpackages, germ-service-client,
prototype-germ-service-client) -- hashes or compares a
PublicSigningKey directly: AgentPublicKey, IdentityPublicKey, and
AnchorPublicKey each derive their own Hashable/Equatable from a
wireformat-backed id instead. Removing the requirement drops the
need for the two @retroactive Curve25519.Signing.PublicKey ->
Equatable/Hashable conformances entirely.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@germ-mark
germ-mark merged commit f31a5ad into main Aug 19, 2026
7 checks passed
@germ-mark
germ-mark deleted the llm/swift-format-lint branch August 19, 2026 20:49
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