🐙
Ansible Lintがコケるようになったので解決した
概要
GitHub Pull Request作成時にGitHub ActionsでAnsible Lintを実行するようにしていたのですが、久しぶりに実行したら以下のエラーが出ていました。
ansible-lint -p playbooks
shell: /usr/bin/bash -e {0}
env:
pythonLocation: /opt/hostedtoolcache/Python/3.8.12/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.8.12/x64/lib
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.8.12/x64/bin/ansible-lint", line 8, in <module>
sys.exit(_run_cli_entrypoint())
File "/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/ansiblelint/__main__.py", line 299, in _run_cli_entrypoint
sys.exit(main(sys.argv))
File "/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/ansiblelint/__main__.py", line 211, in main
from ansiblelint.generate_docs import rules_as_rich, rules_as_rst, rules_as_str
File "/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/ansiblelint/generate_docs.py", line 6, in <module>
from rich.console import render_group
ImportError: cannot import name 'render_group' from 'rich.console' (/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/rich/console.py)
Error: Process completed with exit code 1.
実行環境
- Ansible 4.5.0
- Ansible Lint 5.1.3
- Python 3.8.12
原因
以下のIssueに上げられていますが、Ansible Lintが依存しているRich[1]のバージョンがv11.0.0に上がったことで名前空間が変更されたためです。
対処方法
修正PRがすでにマージされていますので、Ansible Lintのバージョンを5.3.2以上にすれば解決です。
Make code compatible with rich 11 by rabi · Pull Request #1797 · ansible-community/ansible-lint
Release v5.3.2 · ansible-community/ansible-lint
-
ターミナル上にリッチなテキストを出力するライブラリ ↩︎
Discussion