github sqlfluff/sqlfluff 3.0.0
[3.0.0] - 2024-03-12

latest releases: 4.2.2, 4.2.1, 4.2.0...
2 years ago

Highlights

This release brings several breaking changes to previous releases. Most notably:

  • It drops support for python 3.7, which reached end of life in June 2023.

  • It migrates to pyproject.toml rather than setup.cfg as the python packaging configuration file (although keeping setuptools as the default backend).

  • The serialised output for sqlfluff lint (and the corresponding API methods) now contains more information about the span of linting issues, initial proposed fixes and several statistics which were previously only accessible via csv export. Beside the new fields, the original fields of line_pos and line_no have been renamed to start_line_pos and start_line_no, to distinguish them from the new fields starting end_*.

  • The default annotation_level set by the --annotation-level option on the sqlfluff lint command has been changed from notice to warning, to better distinguish linting errors from warnings, which always now have the level of notice. This is only relevant when using the github-annotation or github-annotation-native formats.

  • A change in the default behaviour for convention.not_equals. The new default is to be consistent, which is slightly more relaxed than the original behaviour.

  • The --force option has been deprecated on sqlfluff fix as that option is now the default behaviour. This is to enable significant reductions in memory overhead when linting large projects.

  • The long since deprecated --disable_progress_bar option has been removed (which was replaced by the kabab-case --disable-progress-bar more than a year ago).

  • Plugins are now loaded progressively, and with error handling. If a plugin fails to load, SQLFluff will now continue onward and try to run regardless while also showing a more helpful error message.

On top of these changes, there have a been a whole host of dialect improvements and additions, in particular the inclusion of avertica dialect for the first time. There's also:

  • A new rule (aliasing.self_alias.column) which prevents aliasing a column as itself.

  • A change to disables AL01 (aliasing.table) by default for Oracle.

  • A change to allow AL05 to allow aliasing for a VALUES clause.

For more specifics please take a look at the release notes.

Thanks to the community for patience during the release cycle for 3.0.0, which has taken a little longer than expected. Thanks also to the TWENTY SEVEN new contributors whose changes are included in this release. πŸŽ‰πŸŽ‰πŸ†πŸŽ‰πŸŽ‰

What’s Changed

New Contributors

Don't miss a new sqlfluff release

NewReleases is sending notifications on new releases.