macos: add root-level .swiftlint.yml

In order to support running from both the repository root and from
within Xcode project, and to keep things generally organized, our
primary .swiftlint.yml configuration file lives under macos/.

This change introduces a root-level .swiftlint.yml which limits the file
scope to macos/ and then includes macos/.swiftlint.yml for the rest of
the directives.

This unlocks a few benefits:

- We no longer need to pass an explicit `macos` path argument in any of
  our invocations. SwiftLint will do the right thing when run either
  from the repository root or from within the macos/ directory.
- It lets us easily exclude the macos/build/ directory (and re-enable
  the 'deployment_target' rule). In the previous setup, this was more
  challenging than you'd expect due to SwiftLint's path resolution rules
  and required passing even more arguments like `--working-directory`.

The only downside is adding a new file to the repository root, but that
feels like the right trade-off given the benefits and conveniences.
This commit is contained in:
Jon Parise
2026-02-20 08:39:20 -05:00
parent b6c1a26437
commit c2eab3b43d
7 changed files with 13 additions and 7 deletions

View File

@@ -23,6 +23,7 @@ jobs:
with:
filters: |
macos:
- '.swiftlint.yml'
- 'macos/**'
required:
@@ -963,7 +964,7 @@ jobs:
useDaemon: false # sometimes fails on short jobs
- name: swiftlint check
run: nix develop -c swiftlint lint --strict macos
run: nix develop -c swiftlint lint --strict
alejandra:
if: github.repository == 'ghostty-org/ghostty'