Skip to content

Releases: sscpac/statick

v0.11.1

20 Jan 14:42
df319ea
Compare
Choose a tag to compare

API breaking changes introduced. Pin statick<0.11 if you need the older plugin approach based on yapsy.

Added

  • Use of pyproject.toml instead of setup.py and requirements.txt.
  • Added support for Python 3.12 and 3.13.
  • Switched from yapsy to setuptools for plugin mechanism. (#508)

Fixed

  • Run isort on unit test files.
  • Handle updated warning type from cppcheck introduced in version 2.8.

v0.10.0

03 Jan 18:24
c8dd003
Compare
Choose a tag to compare

Added

  • Statick-tex and json-merger included in Statick Docker image. (#506)

Removed

  • Removed support for Python 3.8.

Fixed

  • Updates for new tool versions. (#493)
  • Fix command used to run ruff tool.
    • Ruff v0.5.0 requires use of ruff check instead of ruff.
  • Update list of files in clean script to fix shellscript warnings about globs for files with hyphens.
  • Ignore new pylint finding for too many positional arguments.
    Finding showed up with pylint 3.3.0.
  • Change default value of deep get method to match valid type for reduce function.

v0.9.5

29 Feb 19:13
a56ae69
Compare
Choose a tag to compare

Added

  • Allow short flag names. (#489, @qdang922)
    • --output-directory supports -o
    • --user-paths supports -u
  • Add usage examples for reporting plugins to README. (#491, @m0g3ns)
  • Install lark as test dependency.
  • Process all files at once for groovylint tool plugin. (#493)
    • Similar addition as in v0.9.3.

Fixed

  • Updates for new tool versions. (#493)
    • Latest versions: black (24.1.1), npm-groovy-lint (14.2.0).
    • Fixed unit tests for groovylint tool plugin.
    • Handle parsing issues when CodeNarcServer errors are present.
    • Update source file formatting with latest version of black.

v0.9.4

25 Apr 02:19
303b504
Compare
Choose a tag to compare

Added

  • Unit tests were added to the exceptions module with troublesome file to check for UnicodeDecodeError. (#478)
  • Unit tests were added to the exceptions module to check that packages to ignore are parsed correctly from
    exceptions configuration file. (#478)
  • Unit tests were added to the config module to check that multi-line yaml syntax configurations are successfully
    parsed. (#481)
  • Use multi-line yaml for tool flags in default configuration file. (#481)

Fixed

  • Some files cause a UnicodeDecodeError exception to be thrown in the exceptions module.
    Fixed that bug and now a warning is printed if a file like that is encountered. (#478)
  • Fix for Dockerfile smell DL4000. (#482)

Changed

  • Pin version of docformatter dependency to be compatible with black.
    Update docstrings to match what new version of docformatter expects. (#483)

  • Ran black and docformatter against all the Python test files. (#479)

    cd tests
    find . -name test_\*.py -exec black {} \;
    find . -name test_\*.py -exec docformatter -i --wrap-summaries 88 --wrap-descriptions 88 {} \;

Removed

  • Remove codecov package from tox configuration. (#485)

v0.9.3

30 Jan 23:10
98e5b3a
Compare
Choose a tag to compare

Tools that accept a list of files have been sped up considerably.
This is the timing information of running self_check level against the main branch and the development branch of
the Statick repository with an AMD 3700x, Ubuntu 20.04, and Python 3.8.
The development branch shows a significant improvement in runtime performance.
The command used was

./statick . --output-directory /tmp/x --level self_check --log info --timings
package name plugin_type duration (v0.9.2) duration (unreleased)
statick find files Discovery 9.2810 9.3033
statick black Tool 4.5896 0.1365
statick docformatter Tool 3.7007 0.8105
statick isort Tool 4.2516 0.1088
statick mypy Tool 6.7002 1.8145
statick pydocstyle Tool 5.2146 0.8606
statick pyflakes Tool 4.2164 0.1893
statick pylint Tool 2.2831 2.2545
statick shellcheck Tool 0.0762 0.0352
statick uncrustify Tool 0.0001 0.0001
statick xmllint Tool 0.0039 0.0037
statick yamllint Tool 1.0534 0.1654
Overall 41.4780 15.8050

Looking at times for Github Actions to run the self_check level of Statick shows improvements.

Ubuntu Version Python Version v0.9.1 v0.9.2 Unreleased
20.04 3.7 173 97 60
20.04 3.8 187 90 50
20.04 3.9 197 127 51
20.04 3.10 196 84 55
20.04 3.11 159 101 46
22.04 3.7 223 101 52
22.04 3.8 208 95 62
22.04 3.9 186 94 64
22.04 3.10 168 89 40
22.04 3.11 167 79 38
mean 186.4 95.7 51.8
min 159 79 38
max 223 127 64

Added

  • Process all source files at once with tools that support passing in a list of files, instead of invoking each tool
    per file. (#470)
  • New tool plugin for the ruff tool.

Changed

  • Change json reporting plugin output file suffix from .json to .statick.json. (#472, #475)
  • In GitHub workflow use node action instead of custom node install from source. (#476)

Fixed

  • Using example file in the black test space in unit tests for the black tool plugin. (#470)
  • Add missing dependencies to install_requires.
    The docformatter and mypy tools are run by default (if Python files are
    discovered) but they were not included in the package install_requires
    list of dependencies.
    Now installing statick in a fresh virtual environment will include and run all
    the available tools. (#465)
  • Add check for an empty issue file before trying to read the line for NOLINT.
    Crashes happen if trying to read a line that does not exist. (#467)
  • Move flake8 configuration max-line-length option to correct location.
    When running pytest a warning was given about this. The max-line-length
    was being set in the pytest section of our configuration. Moving it to
    the flake8 section fixes the warning and makes more sense logically. (#466, #469)
  • In the code climate and json reporting plugins write output files to current directory
    if no output directory is specified. (#471)
  • In tex level configuration only use the tex discovery plugin. (#477)

v0.9.2

21 Dec 23:52
f8bf6f8
Compare
Choose a tag to compare

Added

  • Run pylint against all Python files at once. Support parallel processing flag of pylint. (#460)

Fixed

  • Updating action versions to get rid of deprecation warnings. (#458)
  • Add blank line before URL in docstring for ROS discovery plugin. Fixes warning from new version of docformatter. (#459)

Removed

  • Remove debug print statement when the threshold level is used. (#457)

v0.9.1

12 Dec 15:33
fb55827
Compare
Choose a tag to compare

Added

  • Continuous integration tests with Ubuntu 22.04. (#454)
  • Continuous integration tests with Python 3.11. (#455)
  • Docker image installs Python packages into a Python virtual environment. (#448)

Changed

  • Docker image installs Python tool packages from PyPI instead of apt.
    Uses newer versions of Python tools. (#448)
  • Continuous integration uses latest versions of Actions. (#454)

Fixed

  • Groovylint tool plugin specifies flags for host and port to run on loopback device.
    Fixes unit tests in continuous integration. (#454)

Removed

  • Continuous integration tests with Ubuntu 18.04. (#454)

v0.9.0

12 Sep 17:58
6d2b1a6
Compare
Choose a tag to compare

Added

  • The new --level flag can be set on the command line and will override all other levels, even non-default levels
    specified in a --profile flag when running Statick.
    The expectation is that a user setting the --level flag will explicitly want that level for the entire Statick run
    (single package or multiple packages in a workspace).
    If separate levels are desired per package then the user should not use the --level flag. (#429, #436)
  • Ubuntu 22.04 is now included in the main test environment matrix when running GitHub Actions. (#444)
  • The --timings flag will print timing information to the console after a Statick run.
    Timing information is available for file discovery, for each individual plugin, and for overall duration. (#443)

Changed

  • Default behavior for Statick will now run all available discovery plugins, and run all tool plugins where
    their desired source files are available, then output results only on the terminal.
    The old default behavior was to run the "sei_cert" profile, this is still doable via either of the
    following arguments: --profile sei_cert.yaml or --level sei_cert. (#432, #435)
  • When running unit tests with tox, Statick uses pytest-flake8.
    A recent upstream bug causes issues when using the latest version of pytest-flake8.
    Statick is now pinning the version of pytest-flake8 to the previous major version.
    Details of the upstream issue are at tholo/pytest-flake8#87. (#440)
  • Updated configuration files that come with Statick to use the recommended list format when specifying plugins on
    the inherits_from setting. (#427)

Fixed

  • CMake discovery plugin and cmakelint tool plugin handle files with .cmake extension. (#434)
  • Support latest PyPI version of mypy.
    Required removing a mypy ignore comment. (#437)
  • The ROS discovery plugin was setting the file type of the package to a boolean value rather than a string describing
    the actual file type.
    Mixing types between packages caused bugs in tool plugins.
    The ROS discovery plugin now acts consistently with other discovery plugins. (#439)

Removed

  • Usage of inherits_from flag in configuration files as a string is no longer supported.
    The levels specified in inherits_from must now be in list format.
    The string usage has been deprecated since v0.7.1. (#427)

v0.8.1

06 Jun 16:44
5fef517
Compare
Choose a tag to compare

Fixed

  • Update pylint configurations to not disable bad-continuation.
    Pylint is warning that that option is no longer available.

v0.8.0

31 May 22:20
7608965
Compare
Choose a tag to compare

Overview

Bugs were fixed in the cccc and isort tool plugins.
The nature of the bugs in each tool resulted in under-reporting of issues discovered by using the tools.
By fixing the tool plugins it is possible that users may find that more issues are now discovered using
the same tool configurations as before.
If a user does not want to fix the additional warnings yet they can pin the version of Statick to statick<=0.7.

Added

  • Code Climate reporting plugin.
    This plugin can be used to provide output in GitLab merge requests via the
    Code Quality
    feature. (#416)
  • List of existing reporting plugins to README. (#417)
  • Survey of metrics for software quality assurance to docs. (#413)

Changed

  • Update Docker image tag to remove the v prefix. (#409)

Fixed

  • Support for user flags passed to the isort tool (#414).
  • Collect output of CCCC tool for each file individually instead of using the output from the last file it ran on. (#412)
    NOTE: This change will likely result in more issues being found by this tool.