Current changes can now be accessed from github releases.
Major Changes:
- Require Python 3.6 or newer (#775) @ssbarnea
- Require Ansible 2.8 or newer (#721) @ssbarnea
- LRU Cache for frequently called functions (#891) @ragne
- Change documentation website to RTD (#875) @ssbarnea
- Add rules for verifying the existence of imported and included files (#691) @jlusiardi
- Add a new rule for detecting nested jinja mustache syntax (#686) @europ
Minor Changes:
- Refactored import_playbook tests (#951) @ssbarnea
- Added MissingFilePermissionsRule (#943) @ssbarnea
- Enable github actions parsable format (#926) @ssbarnea
- Add linter branding for docs (#914) @ssbarnea
- Assure we do not produce duplicated matches (#912) @ssbarnea
- Enable annotations on failed tests (#910) @ssbarnea
- Refactor _taskshandlers_children complexity (#903) @webknjaz
- Make import sections consistent (#897) @ssbarnea
- Allow backticks in shell commands (#894) @turettn
- Add ansible210 testing (#888) @ssbarnea
- Enable isort (#887) @ssbarnea
- Combine MatchError into Match (#884) @ssbarnea
- Improve MatchError class (#881) @ssbarnea
- Expose package version (#867) @ssbarnea
- Replace custom theme with sphinx-ansible-theme (#856) @ssbarnea
- Improve unjinja function (#853) @ssbarnea
- Refactor MetaMainHasInfoRule (#846) @ssato
- Remove dependency on ansible.utils.color (#833) @ssbarnea
- Moved exit codes to constants (#821) @ssbarnea
- Document module dependencies (#817) @ssbarnea
- Refactor Runner out of __init__ (#816) @ssbarnea
- Added reproducer for become in blocks (#793) @ssbarnea
- Convert failed to find required 'name' key in include_role into a match (#781) @ssbarnea
- Fix exclude_paths from get_playbooks_and_roles (#774) @ssbarnea
- Update ComparisonToEmptyStringRule.py (#770) @vbotka
- Remove bin/ansible-lint script (#762) @ssbarnea
- Fix logging configuration (#757) @ssbarnea
- Allow returning line number in matchplay (#756) @albinvass
- Update cli output on README (#754) @ssbarnea
- Migrate some test to pytest (#740) @cans
- Use python logging (#732) @ssbarnea
- Make config loading failures visible (#726) @ssbarnea
- Add a test that fails with AttributeError on malformed import_tasks file content (#720) @mdaniel
- Consistent relative path display (#692) @cans
Bugfixes:
- E501: Add become_user and become inheritance (#964) @Tompage1994
- Add missing hosts to test files (#952) @ssbarnea
- E208: Improve MissingFilePermissionsRule detection (#949) @ssbarnea
- Make pre-commit hook use auto-detect mode (#932) @ssbarnea
- Fix severity formatter wrong use of color (#919) @ssbarnea
- Avoid displaying Null with missing filenames (#918) @ssbarnea
- Include contributing inside docs (#905) @ssbarnea
- Fix spelling mistakes in documentation (#901) @MorganGeek
- Avoid failure with playbooks having tasks key a null value (#899) @ssbarnea
- Fix MatchError comparison fallback implementation (#896) @webknjaz
- Avoid sorting failure with matches without an id (#879) @ssbarnea
- Fix broken always_run rule on Ansible 2.10 (#878) @ssbarnea
- Allow null config file (#814) @ssbarnea
- Fixed the search method when the file path not exists (#807) @cahlchang
- Restore playbook auto-detection (#767) @ssbarnea
- Gracefully process a missing git binary when falling-back to pure-python discovery (#738) @anryko
- Resurrect support for editable mode installs (#722) @webknjaz
- Avoid exception from 505 rule (#709) @ssbarnea
Features:
Bugfixes:
- Fix role detection to include tasks/main.yml #631
- Fix pre-commit hooks #612
- Ensure variable syntax before matching in VariableHasSpacesRule #535
- Fix false positive with multiline template in UsingBareVariablesIsDeprecatedRule #251
- Fix role metadata checks when they include unexpected types #533 #513
- Support inline rule skipping inside a block #528
- Look for noqa skips in handlers, pre_tasks, and post_tasks #520
- Fix skipping when using import_playbook #517
- Fix parsing inline args for import_role and include_role #511
- Fix syntax proposed by 104 to not fail 206 #501
- Fix VariableHasSpacesRule false positive for whitespace control chars in vars #500
Docs/Misc:
- Disable docs build on macos with py38 #630
- Update dependencies and CI to supported versions of ansible #530
- Declare support for Python 3.8 #601
Dev/Contributor:
- Enable flake-docstrings to check for pep257 #621
- Remove code related to unsupported ansible versions before 2.4 #622
- Replace nosetests with pytest #604
- Support newer setuptools and require 34.0.0 or later #591 #600
- Added SSL proxy variables to tox passenv #593
- Have RunFromText test helper use named files for playbooks #519
- Fully depend on Pip having PEP 517 implementation #607
- Fixed metadata and travis deployment #598
- Support skipping specific rule(s) for a specific task #460
- Lint all yaml in tasks/ and handlers/ regardless of import or include #462
- New rule: shell task uses pipeline without pipefail #199
- Remove rule 405 checking for retry on package modules #465
- Limit env var check to command, not shell #477
- Extend max line length rule from 120 to 160 #474
- Do not flag octal file mode permission when it is a string #480
- Check ANSIBLE_ROLES_PATH before basedir #478
- Fix crash on indexing empty cmd arguments #473
- Handle argv syntax for the command module #424
- Add another possible license default with SPDX #472
- Ignore comments for line-based rules #453
- Allow config skip_list to have rule number id not in quotes #463
Bugfix release
- Allow install with python35 and add to tox testing #452
- Fix 503 UseHandlerRatherThanWhenChangedRule attempt to iterate on bool #455
- Improve regex on rule 602 #454
- Refactor RoleRelativePathRule, fix keyerror #446
- Rule 405 now ignore case of 'yum: list=package' #444
- Allow jinja escaping in variables #440
- New documentation site docs.ansible.com/ansible-lint
- Additional default rules for ansible-lint, listed in docsite default rules
- Fixed running with role path containing single or multiple dirs #390
- Fixed double sudo rule output #393
- Severity property added to rules to be used by Galaxy #379
- Packaging: consistency and automation #389
- Updated rule TrailingWhitespaceRule.py to remove carriage return char #323
- Allow snake_case module names for rules #82
- Suggest tempfile module instead of mktemp command #422
- Update tox to run with only supported ansible versions #406
- GitHub repository edits: move to ansible org, add CODE_OF_CONDUCT, add ROADMAP, label edits
Use yaml.safe_load
for loading the configuration file
- New ids and tags, add doc generator. Old tag names remain backwardly compatible (awcrosby)
- Add more package formats to PackageIsNotLatestRule (simon04)
- Improve handling of meta/main.yml dependencies (MatrixCrawler)
- Correctly handle role argument trailing slash (zoredache)
- Handle
include_task
andimport_task
(zeot) - Add a new rule to detect jinja in when clauses (greg-hellings)
- Suggest
replace
as another alternative tosed
(inponomarev) - YAML syntax highlighting for false positives (gundalow)
Fix bug with using comma-separated skip_list
arguments
- Allow
include_role
andimport_role
(willthames) - Support arbitrary number of exclude flags (KellerFuchs)
- Fix task has name check for empty name fields (ekeih)
- Allow vault encrypted variables in YAML files (mozz)
- Octal permission check improvements - readability, test coverage and bug fixes (willthames)
- Fix very weird bug with line numbers in some test environments (kouk)
- Python 3 fixes for octal literals in tests (willthames)