- Add rule
double-precision-literal
(#390) - Add rule to detect missing function result clause (#386)
- Add rule to flag implicit save in pointer initialization (#396)
- Add rules preferring multi-word keywords to include spaces (#393)
- Fix
fpm.toml
examples indocs/settings.md
(#387)
- Raise
SyntaxError
for missing nodes (#394)
This is a bug-fix release, with one new rule. Thanks to our new contributors for improving the documentation, and packaging for AUR!
- Add rule for
exit
/cycle
in unlabelled loop (#364) - Expand rule for
character*(*)
to handlecharacter*N
,character*(:)
, andcharacter*(expression)
(#354)
- Don't print diagnostics in
--fix-only
mode (#359) - Fix
--statistics
reporting for unsafe fixes (#368) - Fix false positive
real-implicit-kind
intype
declaration (#378) - Move
default-public-accessibility
highlight topublic
statement (#351) - Write to stdout even when no fixes are applied in stdin mode (#358)
- Update introduction to
README.dev.md
(#360) - docs(index): fix link to best practices (#350)
- docs: add package manager install instructions (#377)
- docs: fix links to best practice (#357)
- fixing some spelling and grammar (#352)
- Add pre-commit hooks (#376)
This release features 25 new rules, many more options for controlling exactly which rules are enabled anywhere from per-file to per-line, and some useful command line options.
We've reorganised a lot of the rules and categories. Rule and category redirects should minimise any breakages, but you should update your config appropriately.
We have also changed the rules that are on by default. This may mean you now have to explicitly enable some rules there were previously checked, and you may find more warnings being raised from new rules.
The rule statement-function
has been temporarily removed while we
work to reduce false positives.
The following rules have been stabilised and are no longer in preview:
missing-accessibility-statement
(C131
)default-public-accessibility
(C132
)implicit-external-procedures
(C003
)
- Add
missing-default-case
(#240) - Add check for use of specific names for intrinsic functions (#254)
- Add rule
magic-number-in-array-size
(#236) - Add rule
missing-action-specifier
andIo
rule category (#230) - Add rule for deleted feature
pause
statements (#304) - Add rule to find computed go to statements (#264)
- Add rule to find missing intrinsic specifiers in
use
statements (#253) - Add rule to flag trailing backslash (#311)
- Add rule to test for uninitialized pointers in derived types (#299)
- Add rules for magic/non-portable IO units (#239)
- Add rules for multiple modules/programs in same file; Add rule for
include
statements (#268) - Add rules for unused/duplicated/redirected allow comments (#334)
- Rule:
multiple-statements-per-line
(#246) - Temporarily remove
statement-function
(#339) - Warn about invalid rules in allow-comments (#266)
- Suggest
iso_fortran_env
parameters for literal kinds (#245)
- Add
--exit-zero
and--exit-non-zero-on-fix
CLI options (#328) - Add
--statistics
CLI flag to show counts of violations (#330) - Add ability to read from stdin (#307)
- Add command to generate shell completion scripts (#340)
- Add logging framework and
--verbose/quiet/silent
flags (#274)
- Add "allow" comments (#242)
- Add options to exclude files (#238)
- Add per-file-ignores (#232)
- Decouple CLI and config file (#312)
- Mark rules as
Default
orOptional
inmap_codes
(#324) - Recategorise rules (#329)
- Respect
.gitignore
(#285) - Warn when selected rules are ignored for some reason (#305)
- Bugfix: Catch negative exponents in
missing-kind-suffix
(#244) - Bugfix: Count files scanned and files skipped correctly (#309)
- Bugfix:
line-length
andfile-extensions
ignored in toml files (#251) - Bugfix: fix
get_files
force excluding with directories (#296) - Bugfix: make
specific-names
an unsafe fix (#263) - Catch syntax errors introduced by fixes (#227)
- Don't raise linter violations or apply fixes when syntax errors are detected (#336)
- Fix Windows testing issues (#318)
- Fix some issues with newlines in fixes on Windows (#315)
- Handle broken pipes (#290)
- Add guide for adding new rules to
README.dev.md
(#300) - T042: Fix example code in assumed-size-character-intent rule (#234)
- Fix
Node::edit_replacement
eating newlines (#225)
- Bugfix:
star-kind
fix set to unsafe (#218)
- Fix link to rules table in Readme (#217)
- Move statement-function rule to preview set (#164)
- Add automatic fixes (#181)
- Add check for
external
procedures (#195) - Add fix for
deprecated-relational-operators
(#182) - Add fix for
old-style-array-literal
(#183) - Add fix for
star-kinds
(#186) - Add fix for
trailing-whitespace
(#187) - Add fix for
unnamed-end-statement
(#185) - Add fix for missing label on
exit
/cycle
(#184) - Add rule
common-block
(#165) - Add rule for implicit external procedures (#192)
- Add rule for incorrect whitespace before comment (#194)
- Add rule for missing
private
statements in modules (#150) - Add rule for missing double-colon in variable decls (#171)
- Add rule for obsolescent
entry
statement (#169) - Add rule for statement functions (#162)
- Rename
external-function
toprocedure-not-in-module
(#200)
- Add
--preview
option (#151) - Add fancy progress bar (#145)
- Don't require argument for CLI
--preview
(#153) - Print git commit and extra info with
--version
(#174) - Show preview rules in
explain
(#154)
- Add (many) more output formats (#177)
- Bugfix:
DiagnosticMessages
were created on pre-transformed file (#191) - Bugfix: report number of files scanned (#173)
- Bugfix: utf-8 multi-byte characters breaking diagnostic output (#198)
- Less aggressive warnings for
no-real-suffix
(#156)
- Add basic docs (#210)
- Better parallel performance (#137)
- Don't warn on missing intent for
procedure
arguments (#139)
- Clarify check help text for recursive file searches (#143)
- Parallelise check (#129)
- Add a success message when all checks are passed and a summary of number of files scanned (#104)
- Make
explain
arguments positional (#113) - Select categories by name (#112)
- Select rules by name (#111)
- Add fix for superfluous implicit none (#99)
- Fix explain bug with RuleSelector, improve explain output (#110)
- Fix reading config files (#124)
- Remove deleted flag from help text (#115)
- Enable more sophisticated rule selection (#108)
- Add check for old-style array literals
(/.../)
(#54) - Add rule for assumed size dummy arguments (#57)
- Add rule for deprecated relational operators (#82)
- Add rule for initialisation in declarations (#72)
- Add rule for missing
intent
attribute (#50) - Add rule for missing label on
exit
/cycle
(#53) - Add rule for non-explicit end statements (#84)
- Add rules for
character
assumed size issues (#75) - Implicit real kinds rule (#81)
- Print context of violations (#45)
- Bugfix: newline printed for files without rule violations (#42)