Releases: thindil/nimalyzer
0.12.2
This is the second patch release of the 0.12 version of the program. It brings only one fix for a bug and one update to an existing feature. Below are changes since the last release:
Changed
- Better looking information about the program's error in the
ifStatements
rule. - Better looking information about too long routines in the
hasDocand
hasPragmarules.
Fixed
- Crash when checking very long routines for parameters with
paramsrule. - Crash when checking very long if statements with
ifStatementsrule.
Full Changelog: 0.12.1...0.12.2
0.12.1
This is the first patch release of the 0.12 version of the program. It brings only one fix for a bug and one update to an existing feature. Below are changes since the last release:
Changed
- Better looking information about the program's error in the
varUplevel
rule.
Fixed
- Possible crash when reaching limit of allowed detected errors.
Full Changelog: 0.12.0...0.12.1
0.12.0
This is the third beta release of the program. It brings one change to namedParams rule and several fixes for bugs. As usual, perhaps a couple of new bugs arrived too. :) Tag BREAKING means the change break compatibility with a previous version of the program. Below are changes since the last release:
Changed
- Don't check for named parameters in type procedure by
namedParamsrule.
Fixed
- Crash when the program can't find a file to check.
- The rule
hasDocnow properly detect documentation's comments only in forward declaration of routines. - Crash when checking very long routines for pragmas with
hasPragmarule.
Full Changelog: 0.11.0...0.12.0
0.11.0
This is the second beta release of the program. It brings a couple of new configuration options, breaking changes to behavior of directory configuration option and several fixes for bugs. As usual, a couple of new bugs arrived too. :) Tag BREAKING means the change break compatibility with a previous version of the program. Below are changes since the last release:
Added
- The configuration setting
ignoreDirfor remove all files from the selected
directory from the list of files to check. - The configuration setting
extensionsfor add additional files' extensions
when adding files withdirectoryconfiguration setting.
Changed
- Updated the project's documentation.
- Don't check for named parameters in sizeof procedure by
namedParamsrule. - BREAKING: The
directoryconfiguration setting now adds to check by default
only files with .nim or .nims extensions. It may break configuration if files
to check have their extensions different.
Fixed
- The rule
objectsshould check only types definition. - The rule
objectsdoesn't detect constructors when an object definition
contains pragmas. - The rule
assignmentsshould check only valid shorthand assignments or full
assignments which can be updated. - The rule
hasPragmanow properly detect pragmas only in forward declaration
of routines.
Full Changelog: 0.10.1...0.11.0
0.10.1: docs: updated changelog
This is the first patch release of the 0.10 version of the program. It brings only one fix for a bug. Below are changes since the last release:
Fixed
- Compilation with Nim 2.2.0
0.10.0
This is the first beta release of the program. It brings a new rule for the program, updated the project's documentation and fixes for some bugs. As usual, a couple of new bugs arrived too. Tag BREAKING means the change break compatibility with a previous version of the program. Below are changes since the last release:
Added
- New rule
rangesto check ranges declarations in a code do they have spaces
before and after the sign...
Changed
- Updated the project's documentation.
- Updated README.md.
Fixed
- Building the project's documentation.
- Cross-compiling the Windows version of the program on Linux.
- Checking
refobjects' types with the ruleobjects. - Typos in the project's configuration's file's documentation.
0.9.0
This is the ninth alpha release of the program. It brings a couple of new options for the rules of the program, updated unit tests and fixes for some bugs. As usual, a couple of new bugs arrived too. Tag BREAKING means the change break compatibility with a previous version of the program. Below are changes since the last release:
Added
- The rule
objectscan now check for existence of constructors of objects.
It follows Nim coding standard, the constructors must have names like
newObjectNameorinitObjectNameto be detected. - The rule
namingconvcan now check naming conventions for declared types. - The rule
paramscan now check do routines useintorstringfor their
parameters declarations. - BREAKING: added option fields to
objectsrule to check only fields of
objects. The old option all now also checks for existence of constructors
of objects.
Changed
- Updated the project's documentation.
- BREAKING: changed the name of the rule
paramsUsedtoparams. The
reason after this change is to make the rule more generic, allowing it to
check more things related to routines' parameters.
Removed
- BREAKING: Option checkType from
complexityrule. It wasn't needed as the
the rule checks only cyclomatic complexity. If in the future there will
be added more types of complexities to check, the option can be
reintroduced.
Fixed
- The rule
hasDocdoesn't detect documentation in functions. - Crash when trying to
fixcode documentation withhasDocrule. - Adding code documentation with
hasDocrule. - Checking moveable branches with
ifstatementsrule.
0.8.0
This is the eight alpha release of the program. It brings a couple of new rules for the program, updated unit tests and fixes for many bugs. Plus a couple of new bugs arrived too. Tag BREAKING means the change break compatibility with a previous version of the program. Below are changes since the last release:
Added
- The configuration option to enable the program's summary at the end of its
work. Currently, it shows only how much time elapsed and the highest memory
usage. - New rule
tryStatementsto checktrystatements'exceptbranches in a
code do they are empty or contain an exception with the selected name. - More information about the program's error to error messages
- New rule
object. It can check if the object's type's declarations have all
their fields public or private and do they are declared by usingintor
stringtypes. - More types of the program's rules' options:
naturalfor integer values of 0
or more andpositivefor integer values greater than 0. - The rule
varDeclaredcan now detect do a variable was declared withintor
stringtype.
Changed
- Using unittest2 package for the project's unit tests.
- BREAKING: adding or removing rules from the program doesn't need to
update file rulesList.txt. Now it is just adding or removing the Nim file
with the rule's code to rules directory. - Better detection of
ifstatements by theifStatementsrule. - Better detection of
forstatements by theforStatementsrule. - Updated README.md.
- BREAKING: added the option to set if the log file should be cleared
before the logging starts. It can break the old configuration file, because
the syntax of the settingoutputwas changed. - Better detection of assignments by the
assignmentsrule.
Fixed
- The rule
ifstatementscheckswhenstatements for upgrade tocase
statements. - Showing the explanation for negative checks of the
forStatementsrule. - The result for negative
counttype check forassignmentsand
varuplevelrules. - The result for
counttype check forcasestatements,ifstatementsand
localhidesrules. - Showing the detailed information about found result for
counttype of
the program's rules. - The summary information for negative
counttype check forhasdoc,
hasentity,haspragmaandlocalhidesrules. - The summary information for checks for
paramsusedandvardeclaredrules. - The result for
searchtype check forcasestatements,ifstatements,
forstatements,localhidesandvaruplevelrules. - The summary information for negative
searchtype check forhasdocand
localhidesrules.
0.7.1
This is the first patch release of the 0.7 version of the program. It brings only one fix for a bug. Below are changes since the last release:
Fixed
- Detecting a documentation of types by
hasDocrule if the type has defined a pragma(s).
0.7.0
This is the seventh alpha release of the program. It brings a couple of new settings for the program, and mostly fixes for various bugs. Plus perhaps a couple of new bugs too. Tag BREAKING means the change break compatibility with a previous version of the program. Below are changes since the last release:
Added
- The option to check only not borrowed procedures, functions and methods for
pragmas withhasPragmarule. - The configuration setting
ignoreto remove the selected file from the
list of files to check. - The rule's name to the program's rules' messages.
Changed
- Updated the project's documentation.
- BREAKING: name of module required to import for use the program's pragmas
in the checked code. - Updated contributing guide.
Fixed
- Don't install file rulesList.txt. It is needed only for compilation of the
program. - Checking usage of parameters of procedures by
paramsUsedrule. - Detecting a documentation of definition of procedures, functions, etc. with
hasDocrule. - Crash when checking for named parameters in call by
namedParamsrule when
there are more results than allowed. - Crash when there are more results than set by the user in a configuration
file. - Detecting a documentation of types with
hasDocrule. - Installing the program should also contain file nimalyzer.nim for ability
to disable and enable rules. - Detecting a documentation of variables in
letsection withhasDocrule. - Detecting calls by
namedParamsrule. - Detecting empty
ifstatements withifStatementsrule. - Detecting empty
forstatements withforStatementsrule. - Don't check the last parameter of a call if it is a statements' list with
namedParamsrule. - Crash when checking declarations of variables with
varDeclaredrule. - Crash when checking variables with
localHidesrule. - Checking declarations of multiple variables with
varDeclaredrule.