Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to latest version of SwiftLint #6

Merged
merged 426 commits into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
426 commits
Select commit Hold shift + click to select a range
a24488f
Release 0.56.2
SimplyDanny Aug 22, 2024
fb8551f
Add new changelog section
SimplyDanny Aug 22, 2024
7d539ac
Add fixed releaser
SimplyDanny Aug 22, 2024
1331508
Bump rexml from 3.3.3 to 3.3.6 (#5767)
dependabot[bot] Aug 22, 2024
9f4cb92
Swift type checking using is (#5561)
ikelax Aug 23, 2024
60a1d34
Remove `anyobject_protocol` rule (#5770)
mildm8nnered Aug 24, 2024
3bb8014
Add options to `opening_brace` rule that silence it on multiline stat…
leonardosrodrigues0 Aug 24, 2024
48aaca6
Reverse Data -> String conversion rule (#5601)
samrayner Aug 24, 2024
dfd19bd
Update Bazel pre-submit steps
SimplyDanny Aug 25, 2024
94d4f7a
Add instructions for installation in Chinese (#5777)
huixuhx Aug 31, 2024
ae3f0c4
Add new `attribute_name_spacing` rule (#5669)
aryamansharda Sep 6, 2024
27cab44
Use `Diagnostics.error` when command failed (#5782)
enricenrich Sep 7, 2024
e845163
Remove empty lines
SimplyDanny Sep 7, 2024
d601c22
Auto-upload Linux build
SimplyDanny Sep 7, 2024
d136b02
Update release instructions
SimplyDanny Sep 7, 2024
1dbe095
Move release instructions
SimplyDanny Sep 7, 2024
06e4e3c
Fix `superfluous_disable_command` for `custom_rules` (#5670)
mildm8nnered Sep 7, 2024
9e78054
Preserve trailing comments for `opening_brace` rule (#5780)
mildm8nnered Sep 8, 2024
8baec9e
no_magic_numbers rule now ignores violations in Preview macros (#5778)
mildm8nnered Sep 8, 2024
7afe2dc
Combine release jobs into one workflow
SimplyDanny Sep 8, 2024
1db3efd
Get tag name from release object
SimplyDanny Sep 8, 2024
551adb0
Automate Pod publishing
SimplyDanny Sep 8, 2024
168fb98
Release 0.57.0
SimplyDanny Sep 8, 2024
0654797
Add new changelog section
SimplyDanny Sep 8, 2024
9da392d
Fix workflow syntax
SimplyDanny Sep 8, 2024
614e694
Allow to trigger Docker build manually
SimplyDanny Sep 8, 2024
274d12b
Read tag from workflow input
SimplyDanny Sep 8, 2024
85c4dbe
Ensure expected initializer signature (#5786)
SimplyDanny Sep 9, 2024
8241909
Run command plugin in whole package if no targets defined (#5789)
SimplyDanny Sep 11, 2024
0d04196
Do not throw deprecation warning if property is not present in config…
chipp Sep 15, 2024
a826d17
Use SwiftSyntax version 600.0.0 (#5795)
minhaaan Sep 15, 2024
37f15d4
Suggest broader initializer accepting Sequences (#5794)
SimplyDanny Sep 16, 2024
e9386ae
Disallow optional configuration values (#5798)
SimplyDanny Sep 16, 2024
1767dab
Add Swift 6 presentation of `map(_:)` type (#5804)
SimplyDanny Sep 21, 2024
246643f
Keep only command-line related functions in `swiftlint` module (#5806)
SimplyDanny Sep 29, 2024
8db0fbf
Extend clean command
SimplyDanny Sep 29, 2024
0c9ea0e
Add Swift 6 builds (#5810)
SimplyDanny Sep 29, 2024
36b88c5
Remove unused `testSimulateHomebrewTest` (#5812)
SimplyDanny Sep 29, 2024
1ec3fdc
Pass options to visitor (#5811)
SimplyDanny Sep 29, 2024
ab699f9
Use async/await for URL session (#5814)
SimplyDanny Sep 29, 2024
b903e0b
Sync strict concurrency build settings (#5813)
SimplyDanny Sep 29, 2024
b59e2da
Build Docker image with Swift 6 on Ubuntu 24.04
SimplyDanny Sep 29, 2024
4f2b03b
Link to internal libraries
SimplyDanny Sep 29, 2024
6d1cb60
Copy more required dependencies
SimplyDanny Sep 30, 2024
c4a7325
Wrap buffer to make it @Sendable (#5815)
SimplyDanny Sep 30, 2024
63ee194
Keep Swift 5 macOS build for the time being (#5816)
SimplyDanny Oct 1, 2024
88c2e4c
Enable strict concurrency in built-in rules module (#5817)
SimplyDanny Oct 4, 2024
d22a719
Build with warnings as errors excluding SourceKitten (#5818)
SimplyDanny Oct 6, 2024
3b6ba6d
Fix warning for unused return value in Linux build (#5819)
SimplyDanny Oct 7, 2024
0a1ee18
Separate build and copy steps from each other (#5820)
SimplyDanny Oct 7, 2024
9ebd6ae
Dont trigger for non-optional type casting, or for optional types (#5…
mildm8nnered Oct 11, 2024
9c2d0d5
Fix nested disable commands improved (#5797)
mildm8nnered Oct 15, 2024
5070b82
Remove unnecessary symbol (#5827)
timesince Oct 17, 2024
7385bea
Add validation hook to configuration parsing (#5824)
SimplyDanny Oct 17, 2024
b486648
Remove workaround (#5830)
SimplyDanny Oct 19, 2024
d4b41bc
Stop triggering on `self` in key path expressions (#5836)
SimplyDanny Oct 24, 2024
e87efff
Support Xcode input file lists (#5790)
BlueVirusX Oct 25, 2024
9ea4374
Fix `--only-rule` config issues (#5773)
mildm8nnered Oct 25, 2024
8328212
Make use of transitive imports configuration (#5622)
PaulTaykalo Oct 25, 2024
01f5ecd
Replace `description.identifier` with `identifier` (#5837)
mildm8nnered Oct 26, 2024
f410ea5
Support Swift version 6.0.2 (#5844)
SimplyDanny Oct 30, 2024
23d6a7c
Added `lenient` command line option (#5801)
mildm8nnered Oct 30, 2024
a731831
Bump rexml from 3.3.6 to 3.3.9 (#5842)
dependabot[bot] Nov 9, 2024
3344fc6
Add cache path and directories only when commands accept them (#5851)
SimplyDanny Nov 10, 2024
fb3ce5a
Add `ignore_properties` option to `redundant_type_annotation` rule (#…
jaredgrubb Nov 12, 2024
707a63d
Allow closures being directly called to be wrapped into parentheses (…
SimplyDanny Nov 16, 2024
cafed07
Silence `superfluous_else` rule for availability conditions (#5857)
SimplyDanny Nov 16, 2024
9e61e81
Rework algorithm used in `function_default_parameter_at_end` rule (#5…
SimplyDanny Nov 16, 2024
025b1e7
Allow inherited isolation parameter to be first in function signature…
SimplyDanny Nov 17, 2024
2c7e723
Support type casting on configuration option values defined by enviro…
SimplyDanny Nov 17, 2024
086f1b3
Sync build settings and options (#5861)
SimplyDanny Nov 17, 2024
c784adc
Pass only remaining arguments to `swiftlint` command (#5865)
SimplyDanny Nov 19, 2024
2a723d0
Add new option `max_number_of_single_line_parameters ` to `multiline_…
kimdv Nov 24, 2024
236c29a
Create releases as drafts
SimplyDanny Nov 24, 2024
25f2776
Release 0.57.1
SimplyDanny Nov 24, 2024
554fd56
Add new changelog section
SimplyDanny Nov 24, 2024
ece675c
Do not use defined event names
SimplyDanny Nov 24, 2024
8ff2518
Use Bash <4 compatible method to UPPERCASE a string
SimplyDanny Nov 24, 2024
e9ce8ce
Update Gems
SimplyDanny Nov 24, 2024
9d9156f
Add Xcode command plugin (#5867)
SimplyDanny Nov 26, 2024
75e5e05
Require write permission for command plugin (#5870)
SimplyDanny Nov 26, 2024
b9d33e4
Update `file_name` rule to allow fully-qualified names of nested type…
fraioli Nov 26, 2024
0ce122e
Add new `async_without_await` rule (#5869)
jkolarik-paylocity Nov 27, 2024
daebaa3
Include AMD64 Linux binary in `artifactbundle` (#5866)
bradleymackey Nov 27, 2024
172d85a
Add pre-defined internal Swift 6 version (#5872)
SimplyDanny Nov 28, 2024
341a5a1
Disable `prefer_key_path` temporarily (#5877)
SimplyDanny Nov 29, 2024
b22c2b5
Treat `compactMap` as standard function (#5876)
SimplyDanny Nov 29, 2024
c45427e
Handle `@unknown default` in `vertical_whitespace_between_cases` rule…
jaredgrubb Dec 1, 2024
f13c54c
Replace identity expressions with `\.self` (#5871)
SimplyDanny Dec 1, 2024
7dd8e65
Ignore super calls with trailing closures (#5887)
SimplyDanny Dec 5, 2024
40f9a2a
Remove deprecated rule entirely (#5889)
SimplyDanny Dec 7, 2024
75c1322
Support linting only provided file paths with command plugins (#5879)
dshikulin-mwb Dec 7, 2024
e42ee10
Pass only Swift files in Xcode target to linter (#5890)
SimplyDanny Dec 7, 2024
eff0c9e
Update involvement state of the project
SimplyDanny Dec 9, 2024
f2175c1
Remove deprecated `inert_defer` rule entirely (#5894)
SimplyDanny Dec 9, 2024
7c895d2
Update pre-commit-hook version (#5895)
Kirade Dec 10, 2024
191bb64
Support Swift version 6.0.3 (#5896)
SimplyDanny Dec 14, 2024
8e3b50f
Add new category for `@IBSegueAction` to `type_contents_order` rule (…
dk-talks Dec 14, 2024
23ba688
Combine compact and flat mapping (#5897)
SimplyDanny Dec 15, 2024
010cbd8
Reduce target-specific imports (#5898)
SimplyDanny Dec 18, 2024
ebdd23a
Support Musl C library (#5899)
SimplyDanny Dec 18, 2024
2cf298b
Remove exit helper workaround (#5900)
SimplyDanny Dec 19, 2024
bd73547
Remove deleted disabled rules (#5901)
SimplyDanny Dec 19, 2024
5ab8f09
Check for explicitly set Docker tag
SimplyDanny Dec 21, 2024
88787fd
Still check for updates if we have violations (#5905)
mildm8nnered Dec 23, 2024
a6c4fd9
Move files from SwiftLintCore to SwiftLintFramework
SimplyDanny Mar 4, 2024
15e1598
Move reusable functionality from SwiftLintBuiltInRules to SwiftLintCore
SimplyDanny Mar 4, 2024
610722c
Disable Strict Concurrency for the time being
SimplyDanny Mar 9, 2024
cbedb08
Inline custom visitors (#5909)
SimplyDanny Dec 23, 2024
532bc5a
Remove option for strict concurrency checking (#5910)
SimplyDanny Dec 23, 2024
4189010
Update CryptoSwift with support for Musl C library (#5911)
SimplyDanny Dec 23, 2024
1a54e3e
Capture console on main actor only
SimplyDanny Nov 18, 2024
d14d40b
Disable Swift 5 build
SimplyDanny Nov 17, 2024
ec35f95
Fix strict concurrency warnings in SwiftLintCore
SimplyDanny Nov 17, 2024
cff2cbe
Enable strict concurrency checking
SimplyDanny Dec 22, 2024
deaacf6
Fixed PrivateUnitTestRule deprecations (#5912)
mildm8nnered Dec 25, 2024
03f8c83
Add new `redundant_sendable` rule (#5902)
SimplyDanny Dec 25, 2024
152355e
Improve performance of excluded files filter (#5157)
SimplyDanny Dec 25, 2024
317eb43
Test on default or opt-in rule (#5913)
SimplyDanny Dec 26, 2024
9f38075
Evaluate arguments to boolean values
SimplyDanny Dec 25, 2024
ff21ff7
Specify rule properties in attribute
SimplyDanny Dec 25, 2024
1d8af83
Collect corrections together with violations (#5916)
SimplyDanny Dec 27, 2024
dd157e2
Use task-local variable (#5919)
SimplyDanny Dec 28, 2024
bef8acf
Avoid NSRegularExpression in configurations (#5921)
SimplyDanny Dec 28, 2024
15b2855
Separate built-in rule tests from framework tests (#5924)
SimplyDanny Dec 30, 2024
ec33a02
Ensure plugins still build with older Swift versions (#5926)
SimplyDanny Dec 30, 2024
592b8eb
Run tests for more OS, Swift, Xcode combinations (#5925)
SimplyDanny Dec 30, 2024
6a1569f
Sort targets (#5927)
SimplyDanny Dec 30, 2024
e53d06b
Remove explicit framework dependency (#5928)
SimplyDanny Dec 30, 2024
be25c1f
Update LICENSE, fix license year (#5930)
JasonnnW3000 Jan 1, 2025
ae8aeb3
Add option to disable `redundant_discardable_let` in SwiftUI view bod…
SimplyDanny Jan 3, 2025
4e5911b
Change wording (#5933)
SimplyDanny Jan 3, 2025
28ce97c
Compare and report binary size changes in PRs (#5934)
SimplyDanny Jan 3, 2025
4f55943
Lint PRs and show inline comments for violations (#5935)
SimplyDanny Jan 4, 2025
7321f2b
Warn about implicit overrides (#5936)
SimplyDanny Jan 4, 2025
83f9e3b
Build framework with targeted strict concurrency checks (#5937)
SimplyDanny Jan 4, 2025
2405508
Improve wording of OSS check output (#5938)
SimplyDanny Jan 4, 2025
6ee820d
Update Brave repository URL
SimplyDanny Jan 5, 2025
af0565a
Add Swift Package Index configuration
SimplyDanny Jan 6, 2025
8cde33a
Add badges created by Swift Package Index
SimplyDanny Jan 6, 2025
a5c9319
Fix warnings in Linux build (#5940)
SimplyDanny Jan 6, 2025
fb4b8e0
Update copyright holders
SimplyDanny Jan 6, 2025
fc70594
Ignore TipKit's `#Rule` macro in `empty_count` rule (#5918)
Ueeek Jan 7, 2025
440f6d1
Set compile options for test of extra rules (#5941)
SimplyDanny Jan 7, 2025
0f6f78e
Update Bazel publishing templates
SimplyDanny Jan 7, 2025
a12a1a1
Update Xcode project generation (#5942)
SimplyDanny Jan 7, 2025
f796fee
Enable strict concurrency checks in test code (#5943)
SimplyDanny Jan 7, 2025
c08e3e8
Prohibit access of package-visible symbols from plugins (#5944)
SimplyDanny Jan 7, 2025
5777bab
Avoid condition that's always true
SimplyDanny Jan 8, 2025
9b34d3c
Trigger release actions on tag creation
SimplyDanny Jan 9, 2025
c8ae928
Skip formula bump temporarily
SimplyDanny Jan 9, 2025
ffa1979
Prepare for 0.58.0 release
SimplyDanny Jan 9, 2025
04201c6
Adapt version template
SimplyDanny Jan 9, 2025
1d3ebc8
Define release process in a workflow
SimplyDanny Jan 9, 2025
2fa6b43
Create release branch
SimplyDanny Jan 10, 2025
5e13cf9
Call workflow in separate job
SimplyDanny Jan 10, 2025
e153573
Specify specific Xcode version
SimplyDanny Jan 10, 2025
803243c
Upload artifact only in workflow
SimplyDanny Jan 10, 2025
7421e24
Use action to extract binary from Docker image
SimplyDanny Jan 10, 2025
f54840f
Build Linux and macOS binaries in parallel and upload them
SimplyDanny Jan 11, 2025
4f056eb
Specify multiple outputs
SimplyDanny Jan 11, 2025
62ad0c0
Use text block
SimplyDanny Jan 11, 2025
cc08a87
Take binary from install location
SimplyDanny Jan 11, 2025
329f9b0
Throw an error if no files were found
SimplyDanny Jan 11, 2025
d0a2bfd
Ensure that binaries are executable
SimplyDanny Jan 11, 2025
5e66728
Fix target name
SimplyDanny Jan 11, 2025
265a2ff
Fail if no binary was built
SimplyDanny Jan 11, 2025
d1fefcf
Always list files
SimplyDanny Jan 11, 2025
3ed5214
Don't use `tree`
SimplyDanny Jan 11, 2025
bae1a6a
Rename Linux binary before upload
SimplyDanny Jan 11, 2025
b6d14db
Transfer Bazel release between jobs
SimplyDanny Jan 11, 2025
6d0f416
Move files to the same level before upload
SimplyDanny Jan 11, 2025
aa2a097
Split post-release actions from release workflow
SimplyDanny Jan 11, 2025
470d27d
Use existing functions
SimplyDanny Jan 11, 2025
ca80b0e
Add human-friendly names to build jobs
SimplyDanny Jan 11, 2025
fd42f78
Add zipped Linux binary to release
SimplyDanny Jan 11, 2025
cd2c40e
Use GitHub Actions Bot as committer
SimplyDanny Jan 11, 2025
7b80780
Abort in case release tag doesn't yet exist
SimplyDanny Jan 11, 2025
5263712
Revert "Prepare for 0.58.0 release"
SimplyDanny Jan 11, 2025
14e9a33
Mention lowest compiler version that builds SwiftLint successfully
SimplyDanny Jan 12, 2025
e9b976e
Checkout or create branch
SimplyDanny Jan 12, 2025
2ae7406
Derive release branch name
SimplyDanny Jan 12, 2025
1f060dd
Prepare for 0.58.0 release
SimplyDanny Jan 9, 2025
a86ab8d
Name release assets
SimplyDanny Jan 12, 2025
0c7d009
Prepare 0.58.0 release
github-actions[bot] Jan 12, 2025
fcd4374
Release 0.58.0
github-actions[bot] Jan 12, 2025
f5299a4
Add new changelog section
github-actions[bot] Jan 12, 2025
22eeaf4
Configure patch strip in Bazel template
SimplyDanny Jan 12, 2025
06e8461
Update Gemfile.lock
SimplyDanny Jan 12, 2025
f045130
Remove unused protocol `CollectingCorrectableRule` (#5951)
SimplyDanny Jan 13, 2025
3f2b86c
Remove trailing comma when `Sendable` was last (#5955)
SimplyDanny Jan 13, 2025
bd73b12
Fix path to macOS binary in artifact bundle (#5957)
SimplyDanny Jan 13, 2025
9aacdb9
Use sender's name and email to commit release updates
SimplyDanny Jan 13, 2025
192e7ea
Create release in the sender's name
SimplyDanny Jan 13, 2025
b3ba86f
Automate Homebrew formula bump
SimplyDanny Jan 13, 2025
5ad27dd
Revert "Use sender's name and email to commit release updates"
SimplyDanny Jan 13, 2025
dfc84cc
Prefer `actor` over `sender`
SimplyDanny Jan 13, 2025
6517768
Remove lints for `redundant_sendable` on protocols (#5959)
riley-williams Jan 13, 2025
b1fac0d
Fix CryptoSwift checksum (#5961)
keith Jan 14, 2025
079c52d
Apply Markdown auto-formatting (#5960)
riley-williams Jan 14, 2025
9b22cda
Add `ib_segue_action` to default configuration (#5956)
SimplyDanny Jan 14, 2025
fcdc98a
Revert "Improve performance of excluded files filter" (#5962)
SimplyDanny Jan 15, 2025
a9b49d9
Prepare 0.58.1 release
github-actions[bot] Jan 15, 2025
96fa57d
Release 0.58.1
github-actions[bot] Jan 15, 2025
27bb35e
Add new changelog section
github-actions[bot] Jan 15, 2025
b67ad02
Make Homebrew available in PATH before running action
SimplyDanny Jan 15, 2025
bfefc38
Pull branch before Docker build
SimplyDanny Jan 16, 2025
99c1dbe
Fix all linting issues in changelog
SimplyDanny Jan 16, 2025
995f8e1
Fetch before checkout
SimplyDanny Jan 16, 2025
9a7e645
Build Docker image from local context
SimplyDanny Jan 16, 2025
a08c92c
Separate Docker build into artifact and release version
SimplyDanny Jan 16, 2025
d8b7215
Remove quotes
SimplyDanny Jan 16, 2025
4906fa5
Add changelog entry
SimplyDanny Jan 16, 2025
81229e5
Prepare 0.58.2 release
github-actions[bot] Jan 16, 2025
eba420f
Release 0.58.2
github-actions[bot] Jan 16, 2025
bdcff41
Add new changelog section
github-actions[bot] Jan 16, 2025
18d658b
Specify explicit OS version
SimplyDanny Jan 16, 2025
a1bff9b
Set up Homebrew before version bump
SimplyDanny Jan 17, 2025
a1c27db
Retrieve author information with Homebrew action
SimplyDanny Jan 17, 2025
77a76a2
Make use of author information in later release steps
SimplyDanny Jan 17, 2025
f6e4adc
Run Pod publishing on Xcode 15.0.1
SimplyDanny Jan 18, 2025
22ccb80
Run more Linux checks on CI (#5963)
SimplyDanny Jan 18, 2025
dd48200
Polish display names of pipeline steps (#5971)
SimplyDanny Jan 18, 2025
b52aea7
Remove CocoaPods lint job from PR builds in favor of a single pre-rel…
SimplyDanny Jan 19, 2025
b368c42
Lint Markdown files in PRs (#5972)
SimplyDanny Jan 19, 2025
c3e6bbb
Fix issues reported by ShellCheck
SimplyDanny Jan 19, 2025
854d3f2
Fix issue referencing `Tests` package from another Bazel workspace (#…
jszumski Jan 22, 2025
b4eb2df
Allow severity of `duplicate_imports` rule to be configurable (#5979)
SimplyDanny Jan 22, 2025
6cf862c
Move more build steps into Makefile (#5975)
SimplyDanny Jan 23, 2025
010028a
Parallelize SwiftLintFile construction for a modest speedup (#5967)
OneSadCookie Jan 29, 2025
0460a6c
Avoid reading files before checking the cache (#5973)
OneSadCookie Jan 29, 2025
6ba231a
Consider composed inherited types (#5984)
SimplyDanny Jan 30, 2025
a4893f6
Verify that severity can be configured per rule (#5985)
SimplyDanny Jan 31, 2025
4eb19be
Parallelize file grouping (#5983)
OneSadCookie Feb 1, 2025
f4ccdc4
Automatically merge release branch upon publishing a release
SimplyDanny Feb 2, 2025
2ba03c1
Add job to lint workflow files (#5989)
SimplyDanny Feb 4, 2025
b2312b5
Update Docker image used in testing
SimplyDanny Feb 8, 2025
2686268
Fix linting issues in README (#5991)
SimplyDanny Feb 8, 2025
b0e4fc5
Update contribution manual (#5992)
SimplyDanny Feb 8, 2025
23de382
Fix some typos (#5993)
SimplyDanny Feb 9, 2025
849dbfd
Enable upcoming features improving concurrency checking (#5994)
SimplyDanny Feb 10, 2025
82fd3e4
Ensure that content is complete using an awaitable stream (#5986)
SimplyDanny Feb 10, 2025
a2032f9
Delete branch after merge
SimplyDanny Feb 10, 2025
2cdb868
Restrict workflow permissions (#5996)
SimplyDanny Feb 11, 2025
b1198b7
Restrict permissions of remaining workflows (#5997)
SimplyDanny Feb 11, 2025
364442a
Move `--only-rule` option to common arguments (#5981)
SimplyDanny Feb 12, 2025
6c8e899
Exclude `@Suite` types and `@Test` functions from `no_magic_numbers` …
SimplyDanny Feb 12, 2025
82736d1
Add new `opaque_over_existential` rule (#5915)
SimplyDanny Feb 12, 2025
732778c
Merge remote-tracking branch 'origin/main' into kc/latest
kelan Feb 14, 2025
15c4f45
Fix the --strict lint warnings in our code
kelan Feb 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .azure/templates/run-make.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Run the commands in the Makefile for the specified rule.

parameters:
- name: rule
type: string

steps:
- script: >-
awk '
$0 ~ "${{ parameters.rule }}:" { in_rule = 1; next }
in_rule && /^\t/ { print $0 }
in_rule && !/^\t/ { in_rule = 0 }
' Makefile | while IFS= read -r command; do
eval "$command"
done
displayName: Run `${{ parameters.rule }}` rule
1 change: 0 additions & 1 deletion .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ build --disk_cache=~/.bazel_cache
build --experimental_remote_cache_compression
build --remote_build_event_upload=minimal
build --nolegacy_important_outputs
build --swiftcopt=-warnings-as-errors

build:release \
--compilation_mode=opt \
Expand Down
4 changes: 2 additions & 2 deletions .bcr/config.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
fixedReleaser:
login: jpsim
email: jp@jpsim.com
login: SimplyDanny
email: danny.moesch@icloud.com
5 changes: 5 additions & 0 deletions .bcr/metadata.template.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
"email": "[email protected]",
"github": "jpsim",
"name": "JP Simard"
},
{
"email": "[email protected]",
"github": "SimplyDanny",
"name": "Danny Mösch"
}
],
"repository": [
Expand Down
10 changes: 10 additions & 0 deletions .bcr/patches/no-warnings-as-errors.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- BUILD
+++ BUILD
@@ -21,7 +21,6 @@ config_setting(
)

copts = [
- "-warnings-as-errors",
"-enable-upcoming-feature",
"ExistentialAny",
"-enable-upcoming-feature",
23 changes: 12 additions & 11 deletions .bcr/presubmit.yml
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
shell_commands: &shell_commands
- "echo --- Downloading and extracting Swift $SWIFT_VERSION to $SWIFT_HOME"
- "mkdir $SWIFT_HOME"
- "curl https://download.swift.org/swift-${SWIFT_VERSION}-release/ubuntu2004/swift-${SWIFT_VERSION}-RELEASE/swift-${SWIFT_VERSION}-RELEASE-ubuntu20.04.tar.gz | tar xvz --strip-components=1 -C $SWIFT_HOME"

tasks:
verify_targets_linux:
name: Verify targets (Linux)
name: Verify Targets (Linux)
platform: ubuntu2004
bazel: 7.x
environment:
CC: "clang"
SWIFT_VERSION: "5.8.1"
SWIFT_VERSION: "6.0.3"
SWIFT_HOME: "$HOME/swift-$SWIFT_VERSION"
PATH: "$PATH:$SWIFT_HOME/usr/bin"
shell_commands: *shell_commands
shell_commands:
- "echo --- Downloading and extracting Swift $SWIFT_VERSION to $SWIFT_HOME"
- "mkdir $SWIFT_HOME"
- "curl https://download.swift.org/swift-${SWIFT_VERSION}-release/ubuntu2004/swift-${SWIFT_VERSION}-RELEASE/swift-${SWIFT_VERSION}-RELEASE-ubuntu20.04.tar.gz | tar xvz --strip-components=1 -C $SWIFT_HOME"
build_flags:
- "--action_env=PATH"
build_targets:
# TODO: Build `:swiftlint` target when the Swift compiler crash is fixed
- '@swiftlint//:SwiftLintFramework'
- '@swiftlint//:swiftlint'
verify_targets_macos:
name: Verify targets (macOS)
name: Verify Targets (macOS)
platform: macos
bazel: 7.x
build_targets:
- '@swiftlint//:swiftlint'
build_flags:
- "--repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1"
3 changes: 2 additions & 1 deletion .bcr/source.template.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"url": "https://github.com/realm/SwiftLint/releases/download/{TAG}/bazel.tar.gz",
"integrity": "",
"strip_prefix": ""
"strip_prefix": "",
"patch_strip": 0
}
22 changes: 6 additions & 16 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,21 @@ steps:
- echo "+++ Build"
- bazel build :swiftlint
- echo "+++ Test"
- bazel test --test_output=errors //Tests/...
- label: "Build With Strict Concurrency"
commands:
- echo "+++ Add @preconcurrency imports"
- ./tools/add-preconcurrency-imports.sh
- echo "+++ Build"
- bazel build --define strict_concurrency_builtin_rules=true :swiftlint
- echo "--- Clean up"
- git reset --hard
- make bazel_test
- label: "SwiftPM"
commands:
- echo "+++ Test"
- swift test --parallel -Xswiftc -DDISABLE_FOCUSED_EXAMPLES
- make spm_test
- label: "Danger"
commands:
- echo "--- Install Bundler"
- echo "+++ Install Bundler"
- gem install bundler -v 2.4.22
- echo "--- Bundle Install"
- bundle install
- echo "+++ Run Danger"
- bundle exec danger --verbose
- echo "+++ Run OSS Scan"
- make oss_scan
- label: "TSan Tests"
commands:
- echo "+++ Test"
- bazel test --test_output=errors --build_tests_only --features=tsan --test_timeout=1000 //Tests/...
- make bazel_test_tsan
- label: "Sourcery"
commands:
- echo "+++ Run Sourcery"
Expand Down
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: Bug Report
about: Create a report to help us improve.

---

### New Issue Checklist

- [ ] I've Updated SwiftLint to the latest version.
- [ ] I've searched for [existing GitHub issues](https://github.com/realm/SwiftLint/issues).

### Bug Description

A clear and concise description of what the bug is. Ideally, provide a small (but compilable) example code snippet that
can be used to reproduce the issue.

```swift
// This triggers a violation:
let foo = try! bar()
```

Mention the command or other SwiftLint integration method that caused the issue. Include stack traces or command output.

```bash
$ swiftlint lint [--no-cache] [--fix]
```

### Environment

* SwiftLint version (run `swiftlint version` to be sure)
* Xcode version (run `xcodebuild -version` to be sure)
* Installation method used (Homebrew, CocoaPods, building from source, etc)
* Configuration file:

```yml
# insert yaml contents here
```

Are you using [nested configurations](https://github.com/realm/SwiftLint#nested-configurations)? If so, paste their
relative paths and respective contents.
42 changes: 0 additions & 42 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

15 changes: 15 additions & 0 deletions .github/ISSUE_TEMPLATE/proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: Feature or Enhancement Proposal
about: Let us know about a feature idea or propose an improvement.

---

### New Issue Checklist

- [ ] I've Updated SwiftLint to the latest version.
- [ ] I've searched for [existing GitHub issues](https://github.com/realm/SwiftLint/issues).

### Feature or Enhancement Proposal

Describe you idea or proposal here. This can be a new feature, an enhancement to an existing feature, or a change to the
project's behavior. Be sure to include the rationale behind the proposal and any relevant context or examples.
9 changes: 4 additions & 5 deletions .github/ISSUE_TEMPLATE/rule-request.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Rule request
about: Share your idea for a new rule
name: Rule Request
about: Share your idea for a new rule.

---

Expand All @@ -9,10 +9,9 @@ about: Share your idea for a new rule
- [ ] Updated SwiftLint to the latest version
- [ ] I searched for [existing GitHub issues](https://github.com/realm/SwiftLint/issues)

### New rule request
### New Rule Request

Please describe the rule idea, format
this issue's title as `Rule Request: [Rule Name]` and describe:
Please describe the rule idea, format this issue's title as `Rule Request: [Rule Name]` and describe:

1. Why should this rule be added? Share links to existing discussion about what
the community thinks about this.
Expand Down
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Keep GitHub Actions up to date with GitHub's Dependabot...
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem
version: 2
updates:
- package-ecosystem: github-actions
directory: /
groups:
github-actions:
patterns:
- "*" # Group all Actions updates into a single larger pull request
schedule:
interval: weekly
2 changes: 2 additions & 0 deletions .github/plugins-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SimplyDanny/SwiftLintPlugins:
- Plugins/
90 changes: 64 additions & 26 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -1,46 +1,84 @@
name: docker
name: Docker Build

on:
push:
branches:
- main
tags:
- '*'
release:
types: published
workflow_call:
inputs:
ref:
description: 'Git reference'
required: true
type: string
tag:
description: 'Docker tag'
required: true
type: string

permissions:
contents: read
packages: write

jobs:
build:
runs-on: ubuntu-20.04

name: Build Docker Image
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3

- name: Extract DOCKER_TAG using tag name
if: startsWith(github.ref, 'refs/tags/')
- name: Define variables on push to `main`
if: github.event_name == 'push'
run: |
echo "DOCKER_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
- name: Use default DOCKER_TAG
if: startsWith(github.ref, 'refs/tags/') != true
{
echo "CHECKOUT_REF=main"
echo "DOCKER_TAG=latest"
echo "OUTPUT_TYPE=type=registry"
} >> "$GITHUB_ENV"
- name: Define variables on release event
if: github.event_name == 'release'
run: |
echo "DOCKER_TAG=latest" >> $GITHUB_ENV
- name: Set lowercase repository name
{
echo "CHECKOUT_REF=${{ github.event.release.tag_name }}"
echo "DOCKER_TAG=${{ github.event.release.tag_name }}"
echo "OUTPUT_TYPE=type=registry"
} >> "$GITHUB_ENV"
- name: Define variables on workflow call
if: github.event_name != 'push' && github.event_name != 'release'
run: |
echo "REPOSITORY_LC=${REPOSITORY,,}" >>${GITHUB_ENV}
{
echo "CHECKOUT_REF=${{ inputs.ref }}"
echo "DOCKER_TAG=${{ inputs.tag }}"
echo "OUTPUT_TYPE=type=local,dest=artifacts"
} >> "$GITHUB_ENV"
- uses: actions/checkout@v4
with:
ref: ${{ env.CHECKOUT_REF }}
- name: Set lowercase repository name
run: echo "REPOSITORY_LC=${REPOSITORY,,}" >> "$GITHUB_ENV"
env:
REPOSITORY: '${{ github.repository }}'

REPOSITORY: ${{ github.repository }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

uses: docker/setup-buildx-action@v3
- name: Login to GitHub registry
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io

- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
push: true
context: .
tags: ghcr.io/${{ env.REPOSITORY_LC }}:${{ env.DOCKER_TAG }}
platforms: linux/amd64
outputs: ${{ env.OUTPUT_TYPE }}
- name: Rename binary artifact
if: contains(env.OUTPUT_TYPE, 'local')
run: mv artifacts/usr/bin/swiftlint artifacts/usr/bin/swiftlint_linux_amd64
- name: Upload binary artifact
if: contains(env.OUTPUT_TYPE, 'local')
uses: actions/upload-artifact@v4
with:
name: swiftlint_linux_amd64
path: artifacts/usr/bin/swiftlint_linux_amd64
if-no-files-found: error
retention-days: 2
Loading