Releases: MarketSquare/robotframework-robocop
v7.2.0
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
v7.1.0
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
Features
-
Breaking change Add option
--extend-selectfor linter and formatter (issue #1546)--extend-selectallows to enable rules and formatters on top of theselectconfiguration. 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 CustomFormatterSince previous
--custom-formattersformatter option already behaved like a--extend-selectoption (which was
not documented), it is now deprecated and renamed to--extend-selectinstead.It is also recommended to use
--extend-selectover--configue name.enabled=True. -
Breaking change Split
wrong-case-in-keyword-namerule into two separate rules (issue #1471):wrong-case-in-keyword-namewhich checks case convention in keyword definition name
wrong-case-in-keyword-callwhich checks case convention in keyword call nameIt allows configuring different conventions for keyword definition and keyword call names. If you have existing
configuration forwrong-case-in-keyword-name(you are ignoring it or configuring) you need to apply the same
config towrong-case-in-keyword-callto retain old behaviour. -
SplitTooLongLinecan 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-projectThis command behaves similarly to the
checkcommand, 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-variableonly when reported on theFORheader andbad-indentonly
when reported on the same line as disabler comment. After this change, those issues will be ignored in the whole
FOR loop and the wholeKeywordcall respectively. -
Ignore unused variables starting with
_(${_variable}) (issue #1457
Fixes
- Fix
unused-variableandvariable-overwritten-before-usagerules not reporting violations inTRYblocks (issue #1548) - Fix
wrong-case-in-keyword-callrule false positive report on names with.character with first_word_capitalized = True (issue #1555) - Fix
wrong-case-in-keyword-namerule incorrectly handling names with.character (issue #1555)
Documentation
- Added documentation linters (with MegaLinter) and fixed several issues in our documentation.
Robocop 6.13.0
Features
- Add
per_file_ignoresoption 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 defaultprint_issuesreport (issue #1540) - Add
docs_urlproperty 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-configoption enabled (other configuration files were correctly ignored)
Documentation
- Describe how to extend the Robocop Rule class using
docs_urlas an example (here).
Robocop 6.12.0
Features
- Add
extendsconfiguration 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 acceptsreturn_resultparameter for returning exit code instead of raising SystemExitRenameVariablesnot longer replaces spaces in variable names with the math operators (issue #1428)
Fixes
- Fix
AlignKeywordsSectionandAlignTestCasesSectionnot aligning VAR variables (issue #1493) - Fix optional
no-embedded-keyword-argumentsrule fatal exception when reading a file with invalid syntax - Fix the empty configuration file causing Robocop to fail (issue #1536)
Documentation
- Add
deprecated namessection to all the rules that list previous names and ids of the rule
Robocop 6.11.0
Features
- Add
--silentoption 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
.gitignorefile not ignored (issue #1503) - Fix
migratecommand migrating formatters withenabled=Falsefrom the old transform to select option (issue #1492) - Fix
migratecommand 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
... Somethingbecomes:
*** Test Cases ***
Multiline inline IF
IF True Something- Fix
enabledformatter parameter not validating as a boolean (issue #1476)
Documentation
- Mark disabled rules in the documentation (previously they were not distinguishable from the enabled rules) (issue #1518)
- Add two new sections to the documentation:
Robocop 6.10.1
Fixes
- Fix
verbose,force_excludeandskip_gitignoreoptions not supported in the configuration file
Documentation
- Fix incorrect code examples in the documentation
Robocop 6.10.0
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
Fixed corrupted pyproject.toml file - which led to incorrect Robot Framework dependency version (==6.* instead of >=4.0,<7.5).
Robocop 6.9.1
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)