Skip to content

Releases: PlasmaFAIR/fortitude

v0.6.2

11 Dec 17:12
a7b0db7
Compare
Choose a tag to compare

Bug-fixes

  • Fixes unnamed-end-statement replacing whitespace after the end statement when running in --fix mode

What's Changed

Full Changelog: v0.6.1...v0.6.2

v0.6.1

10 Dec 15:26
7c25655
Compare
Choose a tag to compare

Bug fixes

  • Fixes to the star-kind rule are now considered unsafe, and the documentation has been updated.
  • Fixed broken link the README.

What's Changed

New Contributors

Full Changelog: v0.6.0...v0.6.1

v0.6.0

10 Dec 11:33
6044a2a
Compare
Choose a tag to compare

Overview

New Features

  • Adds --preview flag. Going forward, many new features will be hidden behind this prior to a stable release.
  • Adds autofixes.
    • A subset of rules can now be fixed automatically by passing --fix or --unsafe-fix (mostly style-based rules)
    • Fixable rules are highlighted in the output
    • See the new rules page for an overview of which rules are now fixable
  • Adds many more output formats, including SARIF and GitHub/GitLab CI
  • Adds rules to the modules category for checking accessibility in modules (both in preview mode)
    • missing-accessibility-statement requires you to explicitly declare the default accessibility to private or public
    • default-public-accessibility requires you to set the default accessibility to private
  • Adds rules to the style category:
    • missing-double-colon requires variable declarations to include ::, e.g. integer :: i instead of integer i.
    • incorrect-space-before-comment requires at least two spaces before an inline comment.
  • Adds rules to the typing category:
    • external-procedure warns for the use of procedures within implicit interfaces using the external declaration.
    • implicit-external-procedures warns when a bare implicit none is used instead of implicit none (type, external), which forbids implicit typing when calling external procedures.
  • Adds the 'obsolescent' rule category for catching outdated Fortran features, with three new rules:
    • common-block
    • statement-function
    • entry-statement
  • Adds an optional progress bar -- useful when running on very large projects or on slower hardware.
  • The no-real-suffix rule has been upgraded, and no longer complains in cases where no precision would be lost, e.g:
use, intrinsic :: iso_fortran_env, only: dp => real64
real(dp), parameter :: x = 3.141592653589  ! Error, RHS is single precision, precision lost in assignment
real(dp), parameter :: x = 3.141592653589_dp  ! Okay
real(dp), parameter :: y = 1.0  ! Okay, no precision lost
  • We have docs! 🎉

Bug-fixes

  • trailing-whitespace and line-too-long can handle multibyte UTF-8 characters in strings and comments
  • Correctly report number of files scanned on completion

Breaking changes

  • The rule external-function has been renamed procedure-not-in-module to avoid confusion with the new external-procedure rule.

What's Changed

Full Changelog: v0.5.1...v0.6.0

v0.5.1

22 Nov 11:06
f4ed948
Compare
Choose a tag to compare

Overview

  • Fixes a performance bug that was limiting the possible speed-up due to parallel file checking.
  • Fixes a bug in which warnings were raised for procedure dummy-arguments without an intent.
  • Clarifies check help text to note that directories are recursively searched.

What's Changed

Full Changelog: v0.5.0...v0.5.1

v0.5.0

20 Nov 15:49
e4a95fc
Compare
Choose a tag to compare

Overview

This release adds a lot of internal Ruff-like functionality (much of it borrowed directly from Ruff!), and has made both the CLI and config files more user-friendly:

  • Outputs a success message when no errors are found.
  • Rules can be selected by name as well as by code, e.g. --select=line-too-long
  • Entire rule categories can be toggled, either by name or by code, e.g. --select=T or --ignore=typing
  • Multiple output modes can be selected using --output-format=full/concise/json
  • Fixed bugs in the config file reader, TOML errors are now propagated to the user
  • Checking now occurs in parallel, giving a speed boost on larger projects

We've also put in place a lot of the required infrastructure for auto-fixes, so we expect to have that working by the next release.

What's Changed

Full Changelog: v0.4.0...v0.5.0

v0.4.0

24 Oct 14:15
914a069
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.3.0...v0.4.0

v0.3.0

10 Oct 13:47
61bc02b
Compare
Choose a tag to compare

v0.3.0

Some big changes over 0.2, including:

  • A rewrite to simplify a lot of the internals
  • Much improved outputs that show a snippet of any offending code
  • Use a updated version of tree-sitter-fortran that can handle more pre-processor statements
  • Many new rules

What's Changed

New Contributors

Full Changelog: v0.2.0...v0.3.0

v0.2.0

15 Sep 18:34
9fbafc1
Compare
Choose a tag to compare

v0.2.0

  • No new rules, but multiple existing rules have been upgraded.
  • The code runs about 10x faster than before!
  • The 'best practices' category is gone, and has been replaced by multiple more descriptive categories.
  • 'strict' mode is gone, and for now all rules are switched on by default.
  • Internally, the project has been largely cleaned up and restructured.
  • Better docs in the repo.

What's Changed

Full Changelog: v0.1.0...v0.2.0

Initial Release

05 Sep 00:08
Compare
Choose a tag to compare
v0.1.0

Fix installed package name