Changelog

2.1.0 - 2023-10-25

Minor feature release

New:

  • Lint and fix via STDIN by passing - as path (#388)

  • Skip linting files when no rules enabled (#379)

Fixed:

  • Reporting violations on Module nodes (#368, #367)

  • Incorrect auto-fixes from CompareSingletonPrimitivesByIs (#391, #378, #375)

  • Parsing error for typing.Literal in NoStringTypeAnnotation rule (#400, #377)

  • Error handling when rules fail to import in child processes (#401, #381)

Thanks:

$ git shortlog -sn v2.0.0.post1...
     8  Amethyst Reese
     2  LW
     1  Dave Turner
     1  Uzumaki
     1  Yajus Gakhar
     1  rembridge

2.0.0 - 2023-07-17

This is the first stable release with the major rework of Fixit. There are many breaking changes since the 0.1.4 release, including configuration formats, CLI commands, and lint rule APIs. Existing users should look at the Upgrade Guide for help migrating to the latest version.

Major Changes

  • Hierarchical configuration via TOML format

  • Support for in-repo custom lint rules relative to project configuration

  • Simplified CLI binary with subcommands to check for errors and apply fixes

  • Interactive review and application of autofixes

  • Dedicated API for integration with alternate frontends

  • Overhauled documentation, with quick start guide

  • Integration with pre-commit

  • Support for configurable target version and selection of applicable rules

  • Support for selecting and filtering rules by tags at runtime

New Rules

  • Added UseAsyncSleepInAsyncDef (#297)

  • Added DeprecatedUnittestAsserts (#314)

2.0.0b1 - 2023-06-26

Beta Release

This is a beta release of a major rework of Fixit. There are many breaking API changes since the 0.1.4 release – existing users should wait for a stable release before upgrading.

Please see the new User Guide for an overview of the new version. A migration guide is planned, but not yet available.

Major Changes

  • New test command for validating local lint rules (#300)

  • Support for configurable target version and selection of applicable rules (#332)

  • Support for selecting and filtering rules by tags at runtime (#333)

  • Support for # lint-ignore and # lint-fixme directives (#334)

New Rules

  • Added UseAsyncSleepInAsyncDefRule (#297)

  • Added DeprecatedUnittestAssertsRule (#314)

2.0.0a1 - 2023-04-07

Alpha Release

This is an alpha release of a major rework of Fixit. There are many breaking API changes since the 0.1.4 release – existing users should wait for a stable release before upgrading.

Please see the new User Guide for an overview of the new version. A migration guide is planned, but not yet available.

Major Changes

  • Hierarchical configuration via TOML format

  • Support for in-repo custom lint rules relative to project configuration

  • Simplified CLI binary with subcommands to check for errors and apply fixes

  • Interactive review and application of autofixes

  • Dedicated API for integration with alternate frontends

  • Overhauled documentation, with quick start guide

  • Integration with pre-commit

0.1.4 - 2021-07-30

Updated

  • Fix typo #163

  • Refactor ipc_main #175

  • Refactor search yaml #172

  • Bug fix for UseTypesFromTypingRule #178

  • Fix sentinel type error #187

  • Autofix docstrings #190

  • Fix pyre type-check errors #196

  • Add JSON Schema for Fixit configs #188

  • Adds allow_list_rules setting for configs #184

  • Adds allow_list_rules to schema #197

  • Fix run_rules bug #200

0.1.3 - 2020-12-09

New Rules

  • Add NoRedundantArgumentsSuperRule #154

  • Add ExplicitFrozenDataclassRule #158

  • Add UseLintFixmeCommentRule #161

  • Add UseAssertInRule #159

Updated

  • await async rule does not account for decorators #150

  • Allow glob patterns instead of parent dirs for matching configs #156

0.1.2 - 2020-10-29

New Rules

  • Add SortedAttributesRule #149

Added

  • New unified fixit CLI #148

Updated

  • Add use_noqa configuration to control support of the noqa Flake8 suppression comment. Defaults to False #151

0.1.1 - 2020-10-08

New Rules

  • Add UseAssertIsNotNoneRule #144

  • Add MissingHeaderRule to check copyright header comments #142

  • Add NoStringTypeAnnotationRule #140

  • Add NoNamedTupleRule #136

  • Add NoAssertTrueForComparisonsRule to catch some incorrect uses of assertTrue() #135

  • Add CollapseIsinstanceChecksRule #116

  • Add NoUnnecessaryFormatStringRule and UseFstringRule #101

  • Add NoRedundantLambdaRule. #112

Added

  • add_new_rule CLI for adding new rule file #123, #131

Updated

  • Ensure first lines remain intact with AddMissingHeaderRule #143

  • Documentation improvements: #113, #117,

#118, #120 #133, #138

  • Improve test message #137

0.1.0 - 2020-09-02

Added

  • First public release of Fixit.

  • Python Lint Framework based on LibCST with autofix functionality.

  • Comes pre-packaged with a set of built-in lint rules.

  • Provides scripts for linting, autofixing and inserting lint suppressions into source code.

  • Provides development kit to build and enforce custom lint rules.

  • Full suite of unit tests.