![]() * SwiftLintCore * SwiftLintBuiltInRules * SwiftLintExtraRules Keep SwiftLintFramework as a wrapper around SwiftLintCore, SwiftLintBuiltInRules and SwiftLintExtraRules. This required making a number of `SwiftLintCore` declarations public that previously were internal in SwiftLintFramework. This significantly reduces the amount of time spent rebuilding SwiftLintFramework or the SwiftLint CLI when working on rules outside of the core SwiftLint API. In my testing, incremental compilation is over twice as fast, with adding new rules taking 33s before and 12s after this modularization. This also has the benefit of custom external rules not be able to access internal SwiftLint APIs. Now all rules, built-in or external, depend on the public API of the SwiftLintCore module. The SwiftLintBuiltInRules and SwiftLintExtraRules modules both make SwiftLintCore's public API available to all their source files without requiring an explicit `import` statement in that file. This is because you nearly always want access to the core APIs when defining rules. It also makes the migration leaner, requiring fewer changes. |
||
---|---|---|
.. | ||
BUILD | ||
Version.swift.template | ||
get-version | ||
info-macos.json.template | ||
oss-check | ||
push-docs | ||
test-analyze.sh | ||
update-artifact-bundle.sh | ||
update-swift-syntax.sh |