Skip to content

Latest commit

 

History

History
877 lines (603 loc) · 27.7 KB

CHANGELOG.md

File metadata and controls

877 lines (603 loc) · 27.7 KB

Master

Breaking
  • Now type_name allows lowercase enum values to match the Swift API Design Guidelines. Jorge Bernal #654
Enhancements
  • Improve error messages for invalid configuration files. Brian Hardy
Bug Fixes

0.10.0: laundry-select edition

Breaking
  • None.
Enhancements
  • Now libclang.dylib and sourcekitd.framework are dynamically loaded at runtime by SourceKittenFramework to use the versions included in the Xcode version specified by xcode-select -p or custom toolchains.
    Norio Nomura #167

  • Add LegacyCGGeometryFunctionsRule rule.
    Sarr Blaise #625

  • SwiftLint no longer crashes when SourceKitService crashes.
    Norio Nomura

  • Rewrite conditional_binding_cascade rule.
    Norio Nomura #617

  • Add autocorrect for ReturnArrowWhitespaceRule.
    Craig Siemens

Bug Fixes
  • Failed to launch swiftlint when Xcode.app was placed at non standard path.
    Norio Nomura #593

  • ClosingBraceRule no longer triggers across line breaks.
    Josh Friend #592

  • LegacyConstantRule and LegacyConstructorRule failed to autocorrect.
    Norio Nomura #623

0.9.2: Multiple Exhaust Codes

Breaking
  • None.
Enhancements
  • Return different exit codes to distinguish between types of errors:

    • 0: No errors, maybe warnings in non-strict mode
    • 1: Usage or system error
    • 2: Style violations of severity "Error"
    • 3: No style violations of severity "Error", but violations of severity "warning" with --strict
      JP Simard #166
  • VariableNameRule now accepts symbols starting with more than one uppercase letter to allow for names like XMLString or MIMEType.
    Erik Aigner #566

Bug Fixes

0.9.1: Air Duct Cleaning

Breaking
  • None.
Enhancements
  • None.
Bug Fixes

0.9.0: Appliance Maintenance

Breaking
  • Linter.reporter has been removed and Configuration.reporterFromString(_:) has been renamed to a free function: reporterFromString(_:).
    JP Simard

  • _ConfigProviderRule & ConfigurableRule have been removed and their requirements have been moved to Rule.
    JP Simard

  • Configuration(path:optional:silent) has been changed to Configuration(path:rootPath:optional:quiet:).
    JP Simard

  • The static function Configuration.rulesFromDict(_:ruleList:) has been moved to an instance method: RuleList.configuredRulesWithDictionary(_:).
    JP Simard

  • The rules parameter in the Configuration initializer has been renamed to configuredRules.
    JP Simard

  • Removed a large number of declarations from the public SwiftLintFramework API. This is being done to minimize the API surface area in preparation of a 1.0 release. See #507 for a complete record of this change.
    JP Simard #479

  • All instances of the abbreviation "config" in the API have been expanded to "configuration". The --config command line parameter and use_nested_configs configuration key are unaffected.
    JP Simard

  • The use_nested_configs configuration key has been deprecated and its value is now ignored. Nested configuration files are now always considered.
    JP Simard

Enhancements
  • swiftlint lint now accepts an optional --reporter parameter which overrides existing reporter values in the configuration file. Choose between xcode (default), json, csv or checkstyle.
    JP Simard #440

  • swiftlint rules now shows a configuration description for all rules.
    JP Simard

  • lint and autocorrect commands now accept a --quiet flag that prevents status messages like 'Linting ' & 'Done linting' from being logged.
    JP Simard #386

  • All top-level keys in a configuration file that accept an array now also accept a single value.
    e.g. included: Source is equivalent to included:\n - Source.
    JP Simard #120

  • Improve performance of FunctionParameterCountRule.
    Norio Nomura

  • Improve performance of ColonRule.
    Norio Nomura

Bug Fixes
  • Fix case sensitivity of keywords for valid_docs.
    Ankit Aggarwal #298

  • Fixed inconsistencies between violations & corrections in StatementPositionRule.
    JP Simard #466

  • A warning will now be logged when invalid top-level keys are included in the configuration file.
    JP Simard #120

  • Fixed LegacyConstructorRule from correcting legacy constructors in string literals.
    JP Simard #466

  • Fixed an issue where variable_name or type_name would always report a violation when configured with only a warning value on either min_length or max_length.
    JP Simard #522

0.8.0: High Heat

Breaking
  • Setting only warning on SeverityLevelsConfig rules now disables the error value.
    Robin Kunde #409

  • enabled_rules has been renamed to opt_in_rules.
    Daniel Beard

Enhancements
  • Add whitelist_rules rule whitelists in config files.
    Daniel Beard #256

  • Improve performance of ColonRule, LineLengthRule & syntaxKindsByLine.
    Norio Nomura

  • Add command to display rule description: swiftlint rules <rule identifier>.
    Tony Li #392

  • Add FunctionParameterCountRule.
    Denis Lebedev #415

  • Measure complexity of nested functions separately in CyclomaticComplexityRule.
    Denis Lebedev #424

  • Added exception for multi-line if/guard/while conditions to allow opening brace to be on a new line in OpeningBraceRule.
    Scott Hoyt #355

  • The rules command now prints a table containing values for: identifier, opt-in, correctable, enabled in your config & configuration.
    JP Simard #392

  • Reduce maximum memory usage.
    Norio Nomura

Bug Fixes
  • Fix more false positives in ValidDocsRule.
    diogoguimaraes #451

  • Fix trailing_newline autocorrect to handle more than one violation per line.
    Daniel Beard #465

  • Fix complexity measurement for switch statements in CyclomaticComplexityRule.
    Denis Lebedev #461

0.7.2: Appliance Manual

Breaking
  • None.
Enhancements
  • None.
Bug Fixes

0.7.1: Delicate Cycle

Breaking
  • None.
Enhancements
Bug Fixes

0.7.0: Automatic Permanent Press

Breaking
  • Replaced all uses of XPCDictionary with [String: SourceKitRepresentable].
    JP Simard

  • VariableNameMinLengthRule and VariableNameMaxLengthRule have been removed. VariableNameRule now has this functionality.
    Scott Hoyt

  • ViolationLevelRule has been removed. This functionality is now provided by ConfigProviderRule and SeverityLevelsConfig.
    Scott Hoyt

Enhancements
  • TypeBodyLengthRule now does not count comment or whitespace lines.
    Marcelo Fabri #369

  • FunctionBodyLengthRule now does not count comment or whitespace lines.
    Marcelo Fabri #258

  • All Rules are now configurable in at least their severity: SeverityConfig.
    Scott Hoyt #371 #130 #268

  • TypeNameRule and VariableNameRule conform to ConfigProviderRule using NameConfig to support min_length, max_length, and excluded names.
    Scott Hoyt #388 #259 #191

  • Add CyclomaticComplexityRule.
    Denis Lebedev

Bug Fixes
  • Fix crash caused by infinite recursion when using nested config files.
    JP Simard #368

  • Fix crash when file contains NULL character.
    Norio Nomura #379

0.6.0: Steam Cycle

Breaking
  • ParameterizedRule is removed. Use ConfigurableRule instead.
    Scott Hoyt #353

  • To activate a Rule, it must be added to the global masterRuleList.
    Scott Hoyt

Enhancements
  • ConfigurableRule protocol allows for improved rule configuration. See CONTRIBUTING for more details.
    Scott Hoyt #303

  • VariableNameMinLengthRule now supports excluding certain variable names (e.g. "id").
    Scott Hoyt #231

  • ViolationLevelRule provides default ConfigurableRule implementation for rules that only need integer error and warning levels.
    Scott Hoyt

  • Add AutoCorrect for StatementPositionRule.
    Raphael Randschau

  • Add AutoCorrect for CommaRule.
    Raphael Randschau

  • Add AutoCorrect for LegacyConstructorRule.
    Raphael Randschau

  • Improve performance of LineLengthRule.
    Norio Nomura

  • Add ConditionalBindingCascadeRule.
    Aaron McTavish #202

  • Opt-in rules are now supported.
    JP Simard #256

  • Add LegacyConstantRule.
    Aaron McTavish #319

  • Add opt-in rule to encourage checking isEmpty over comparing count to zero.
    JP Simard #202

  • Add opt-in "Missing Docs" rule to detect undocumented public declarations.
    JP Simard

Bug Fixes
  • None.

0.5.6: Bug FixLint

Breaking
  • None.
Enhancements
  • Improve performance by reducing calls to SourceKit.
    Norio Nomura
Bug Fixes

0.5.5: Magic Drying Fluff Balls™

https://www.amazon.com/Magic-Drying-Fluff-Balls-Softening/dp/B001EIW1SG

Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Always fail if a YAML configuration file was found but could not be parsed.
    JP Simard #310

  • Make commands with modifiers work for violations with line-only locations.
    JP Simard #316

0.5.4: Bounce™

Breaking
  • Remove Location.init(file:offset:) in favor of the more explicit Location.init(file:byteOffset:) & Location.init(file:characterOffset:).
    JP Simard
Enhancements
  • Add checkstyle reporter to generate XML reports in the Checkstyle 4.3 format. JP Simard #277

  • Support command comment modifiers (previous, this & next) to limit the command's scope to a single line. JP Simard #222

  • Add nested .swiftlint.yml configuration support.
    Scott Hoyt #299

Bug Fixes

0.5.3: Mountain Scent

Breaking
  • None.
Enhancements
Bug Fixes

0.5.2: Snuggle™

Breaking
  • None.
Enhancements
  • Performance improvements & unicode fixes (via SourceKitten).
    Norio Nomura
Bug Fixes
  • Fix ValidDocsRule false positive when documenting functions with closure parameters.
    diogoguimaraes #267

0.5.1: Lint Tray Malfunction

Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Make linting faster than 0.5.0, but slower than 0.4.0
    Norio Nomura #119

  • Re-introduce --use-script-input-files option for lint & autocorrect commands. Should also fix some issues when running SwiftLint from an Xcode build phase.
    JP Simard #264

0.5.0: Downy™

Breaking
  • init() is no longer a member of the Rule protocol.
Enhancements
  • Add legacy constructor rule.
    Marcelo Fabri #202

  • The VariableNameRule now allows variable names when the entire name is capitalized. This allows stylistic usage common in cases like URL and other acronyms.
    Marcelo Fabri #161

  • Add autocorrect command to automatically correct certain violations (currently only trailing_newline, trailing_semicolon & trailing_whitespace). JP Simard #5

  • Allow to exclude files from included directory with excluded.
    Michal Laskowski

Bug Fixes
  • Statement position rule no longer triggers for non-keyword uses of catch and else.
    JP Simard #237

  • Fix issues with multi-byte characters.
    JP Simard #234

0.4.0: Wrinkle Release

Breaking
  • API: Rename RuleExample to RuleDescription, remove StyleViolationType and combine Rule().identifier and Rule().example into Rule.description.
    JP Simard #183
Enhancements
  • The VariableNameRule now allows capitalized variable names when they are declared static. This allows stylistic usage common in cases like OptionSetType subclasses.
    Will Fleming

  • Add VariableNameMaxLengthRule and VariableNameMinLengthRule parameter rules. Remove length checks on VariableNameRule.
    Mickael Morier

  • Add trailing semicolon rule.
    JP Simard

  • Add force try rule.
    JP Simard

  • Support linting from Input Files provided by Run Script Phase of Xcode with --use-script-input-files.
    Norio Nomura #193

Bug Fixes
  • All rules now print their identifiers in reports.
    JP Simard #180

  • ControlStatementRule now detects all violations.
    Mickael Morier #187

  • ControlStatementRule no longer triggers a violation for acceptable use of parentheses.
    Mickael Morier #189

  • Nesting rule no longer triggers a violation for enums nested one level deep.
    JP Simard #190

  • ColonRule now triggers a violation even if equal operator is collapse to type and value.
    Mickael Morier #135

  • Fix an issue where logs would be printed asynchronously over each other.
    JP Simard #200

0.3.0: Wrinkly Rules

Breaking
  • swiftlint rules now just prints a list of all available rules and their identifiers.
Enhancements
  • Support for Swift 2.1.
    JP Simard

  • Added StatementPositionRule to make sure that catch, else if and else statements are on the same line as closing brace preceding them and after one space.
    Alex Culeva

  • Added Comma Rule to ensure there is a single space after a comma.
    Alex Culeva

  • Add rule identifier to all linter reports.
    zippy1978

  • Add OpeningBraceRule to make sure there is exactly a space before opening brace and it is on the same line as declaration. Alex Culeva

  • Print to stderr for all informational logs. Only reporter outputs is logged to stdout.
    JP Simard

  • JSON and CSV reporters now only print at the very end of the linting process.
    JP Simard

  • Add support for guard statements to ControlStatementRule.
    David Potter

  • Lint parameter variables.
    JP Simard

Bug Fixes
  • Custom reporters are now supported even when not running with --use-stdin.
    JP Simard #151

  • Deduplicate files in the current directory.
    JP Simard #154

0.2.0: Tumble Dry

Breaking
  • SwiftLint now exclusively supports Swift 2.0.
    JP Simard #77

  • ViolationSeverity now has an associated type of String and two members: .Warning and .Error.
    JP Simard #113

Enhancements
  • Configure SwiftLint via a YAML file: Supports disabled_rules, included, excluded and passing parameters to parameterized rules. Pass a configuration file path to --config, defaults to .swiftlint.yml.
    JP Simard #1 #3 #20 #26

  • Updated TypeNameRule and VariableNameRule to allow private type & variable names to start with an underscore. JP Simard

  • Disable and re-enable rules from within source code comments using // swiftlint:disable $IDENTIFIER and // swiftlint:enable $IDENTIFIER.
    JP Simard #4

  • Add --strict lint flag which makes the lint fail if there are any warnings.
    Keith Smiley

  • Violations are now printed to stderr.
    Keith Smiley

  • Custom reporters are now supported. Specify a value for the reporter: key in your configuration file. Available reporters are xcode (default), json, csv.
    JP Simard #42

Bug Fixes
  • Improve performance of TrailingWhitespaceRule.
    Keith Smiley

  • Allow newlines in function return arrow.
    JP Simard

0.1.2: FabricSoftenerRule

Breaking
  • None.
Enhancements
  • Added OperatorFunctionWhitespaceRule to make sure that you use whitespace around operators when defining them.
    Akira Hirakawa #60

  • Added ReturnArrowWhitespaceRule to make sure that you have 1 space before return arrow and return type.
    Akira Hirakawa

  • Support linting from standard input (use --use-stdin).
    JP Simard #78

  • Improve performance of TrailingNewlineRule.
    Keith Smiley

  • Lint parentheses around switch statements.
    Keith Smiley

Bug Fixes
  • None.

0.1.1: Top Loading

Breaking
  • The Rule and ASTRule protocol members are now non-static.
    aarondaub

  • Split Rule into Rule and ParameterizedRule protocols.
    aarondaub #21

Enhancements
  • Added a command line option --path to specify a path to lint.
    Lars Lockefeer #16

  • swiftlint now returns a non-zero error code when a warning of high-severity or above is found in the source files being linted.
    Pat Wallace #30

  • Added rules command to display which rules are currently applied along with examples.
    Chris Eidhof

  • Cache parsing to reduce execution time by more than 50%.
    Nikolaj Schumacher

  • Added ControlStatementRule to make sure that if/for/while/do statements do not wrap their conditionals in parentheses.
    Andrea Mazzini

  • Character position is now included in violation location where appropriate.
    JP Simard #62

  • The following rules now conform to ASTRule: FunctionBodyLength, Nesting, TypeBodyLength, TypeName, VariableName.
    JP Simard

Bug Fixes
  • Trailing newline and file length violations are now displayed in Xcode.
    JP Simard #43

0.1.0: Fresh Out Of The Dryer

First Version!