Skip to content

Releases: MarketSquare/robotframework-robocop

v7.2.0

02 Jan 09:39
3e1df7d

Choose a tag to compare

7.2.0 (2026-01-01)

Features

  • mcp: add new tools and improve UX for large codebases (#1601) (9b1d871)
  • mcp: add response caching and error handling middleware (#1599) (406cfbe)
  • mcp: enhance MCP server with batch operations, quality metrics, and improved LLM guidance (#1593) (c6a853b)
  • Refactor print_issues report to gain 3x perfomance gain on printing (#1605) (6755d96)

Bug Fixes

  • caching: Fix CLI always overriding cache=true/false in the configuration file (#1608) (b31a5ef)
  • release: fix triggering Github workflows from automated scripts (#1594) (72ce0ff)

v7.1.0

23 Dec 17:32
2df3a3e

Choose a tag to compare

7.1.0 (2025-12-23)

Features

  • add commented-out-code detection rule (COM06) (#1564) (8afa9d2)
  • add file-level caching for linter and formatter to skip unchanged files (#1565) (ceb02cc)
  • add MCP server for AI assistant integration (#1583) (c68330a)
  • add three separate rules for variable type annotations (RF 7.3+) (#1579) (03ef483)
  • automate release process with release-please (#1571) (4bd6d3f)
  • VAR02: add ignore parameter for unused-variable rule (#1576) (0c2ebf4)

Bug Fixes

  • Invalid Robocop disabler accepted as disabler for all rules (#1569) (595ffdb)
  • mcp: fix limit handling bugs and add enhancements (#1589) (0926a4d)

Documentation

Robocop 7.0.0

14 Dec 12:22
97f429b

Choose a tag to compare

Features

  • Breaking change Add option --extend-select for linter and formatter (issue #1546)

    --extend-select allows to enable rules and formatters on top of the select configuration. It can be used to
    retain all default rules or formatters and only add additional ones:

    robocop check --extend-select no-embedded-keyword-arguments
    robocop format --extend-select AlignKeywordsSection --extend-select CustomFormatter
    

    Since previous --custom-formatters formatter option already behaved like a --extend-select option (which was
    not documented), it is now deprecated and renamed to --extend-select instead.

    It is also recommended to use --extend-select over --configue name.enabled=True.

  • Breaking change Split wrong-case-in-keyword-name rule into two separate rules (issue #1471):

    wrong-case-in-keyword-name which checks case convention in keyword definition name
    wrong-case-in-keyword-call which checks case convention in keyword call name

    It allows configuring different conventions for keyword definition and keyword call names. If you have existing
    configuration for wrong-case-in-keyword-name (you are ignoring it or configuring) you need to apply the same
    config to wrong-case-in-keyword-call to retain old behaviour.

  • SplitTooLongLine can now split more settings types: Library imports, Test Tags and Keyword Tags (issue #1454)

    Example code before and after the change:

    Library    CustomLibraryWithLongerNameAndSeveralArguments    first_argument    second_argument=${longer_variable_name}    WITH NAME    name
    Library             CustomLibraryWithLongerNameAndSeveralArguments
    ...                     first_argument
    ...                     second_argument=${longer_variable_name}
    ...                 WITH NAME    name
  • Restore project checkers (issue #1108)

    Project checkers were temporarily removed in the Robocop 6.0. There are now brought back in a new form, as a separate
    command:

    robocop check-project
    

    This command behaves similarly to the check command, but it only runs project rules.

    The project checks itself were also refactored to be more flexible. See project checker
    and custom rules project checker for reference.

  • Extend robocop disablers to the whole node (issue #1515

    Robocop will now ignore issues in the whole node (keyword, test case, for loop, keyword call, etc.) when the disabler
    is set in the header / keyword call body. For example:

    *** Keywords ***
    My Keyword  
        FOR    ${var}    IN    1  2  3  # robocop: off=unused-variable
             Log    1
        END
        Keyword    # robocop: off=bad-indent
        ...    ${var}
        ...    ${var2}

    Previously, Robocop would ignore unused-variable only when reported on the FOR header and bad-indent only
    when reported on the same line as disabler comment. After this change, those issues will be ignored in the whole
    FOR loop and the whole Keyword call respectively.

  • Ignore unused variables starting with _ (${_variable}) (issue #1457

Fixes

  • Fix unused-variable and variable-overwritten-before-usage rules not reporting violations in TRY blocks (issue #1548)
  • Fix wrong-case-in-keyword-call rule false positive report on names with . character with first_word_capitalized = True (issue #1555)
  • Fix wrong-case-in-keyword-name rule incorrectly handling names with . character (issue #1555)

Documentation

  • Added documentation linters (with MegaLinter) and fixed several issues in our documentation.

Robocop 6.13.0

27 Nov 17:45
ab29942

Choose a tag to compare

Features

  • Add per_file_ignores option to ignore rules matching file patterns (issue #1134)

Example configuration:

[tool.robocop.lint.per_file_ignores]
"test.robot" = ["VAR02"]
"ignore_subdir/*" = ["empty-line-after-section", "DOC01"]
"ignore_file_in_subpath/test2.robot" = ["SPC10"]
  • Allow manually disabling reports with enabled=False. It can be used to disable default print_issues report (issue #1540)
  • Add docs_url property to rule class which points to rule documentation URL (issue #1432)

Fixes

  • Fix piping output (robocop check > output.txt) not working on Windows because of code lines converted to emojis (issue #1539)
  • Fix configuration file loaded from the root directory with --ignore-file-config option enabled (other configuration files were correctly ignored)

Documentation

  • Describe how to extend the Robocop Rule class using docs_url as an example (here).

Robocop 6.12.0

24 Nov 10:27
6a514b1

Choose a tag to compare

Features

  • Add extends configuration parameter which allows to inherit configuration from another file. Read more in the documentation (issue #1453)
  • Change mixed-tabs-and-spaces (SPC06) rule behaviour to report all occurrences of mixed tabs and spaces in a file (issue #848)
  • format_files (robocop API entrypoint for formatting files) now accepts return_result parameter for returning exit code instead of raising SystemExit
  • RenameVariables not longer replaces spaces in variable names with the math operators (issue #1428)

Fixes

  • Fix AlignKeywordsSection and AlignTestCasesSection not aligning VAR variables (issue #1493)
  • Fix optional no-embedded-keyword-arguments rule fatal exception when reading a file with invalid syntax
  • Fix the empty configuration file causing Robocop to fail (issue #1536)

Documentation

  • Add deprecated names section to all the rules that list previous names and ids of the rule

Robocop 6.11.0

19 Nov 17:48
1cc7470

Choose a tag to compare

Features

  • Add --silent option to disable all output when running Robocop (issue #1512)
  • Improve startup performance of the Robocop (using a Robocop repository as a benchmark: from 5s to 0.3s). It was done
    by fixing issues in handling ignored files and by properly caching configuration files (to avoid multiple lookups).
    The difference may be noticeable only for the large, complex projects (issue #1503)

Fixes

  • Fix directories from the .gitignore file not ignored (issue #1503)
  • Fix migrate command migrating formatters with enabled=False from the old transform to select option (issue #1492)
  • Fix migrate command not splitting multiline configurations (issue #1491)
  • Fix multiline inline IF splitting. To avoid issues when formatting such code, all inline IFs are now flattened to a single line (issue #1506):
*** Test Cases ***
Multiline inline IF
    IF    True
    ...    Something

becomes:

*** Test Cases ***
Multiline inline IF
    IF    True    Something
  • Fix enabled formatter parameter not validating as a boolean (issue #1476)

Documentation

Robocop 6.10.1

17 Nov 10:15
ed238e2

Choose a tag to compare

Fixes

  • Fix verbose, force_exclude and skip_gitignore options not supported in the configuration file

Documentation

  • Fix incorrect code examples in the documentation

Robocop 6.10.0

12 Nov 09:13
c166774

Choose a tag to compare

Release a new documentation website.

Rewrite of our documentation from Sphinx to MkDocs, now hosted at https://robocop.dev.

Update all internal links to new urls.

Robocop 6.9.2

01 Nov 17:34
7ef299e

Choose a tag to compare

Fixed corrupted pyproject.toml file - which led to incorrect Robot Framework dependency version (==6.* instead of >=4.0,<7.5).

Robocop 6.9.1

01 Nov 17:23
70cc164

Choose a tag to compare

Fix invalid rule positions stopping Sonar Qube import (#1417)

End-to-end testing of Sonar Qube issue imports revealed multiple problems with diagnostic positioning.
All problematic rules included an incorrect offset of 1. The following rules have been corrected:

  • invalid-setting-in-resource (ERR16)
  • unreachable-code (MISC10)
  • keyword-name-is-reserved-word (NAME03)
  • invalid-section (NAME16)