[all] pep8 results for maintenance branches over time
Sorin Sbarnea
ssbarnea at redhat.com
Thu Jan 23 16:36:26 UTC 2020
While more or less complex fixes may be implemented to keep linting working on older branches we will clearly face an interesting challenge:
- project adopts new syntax/linter, backporting a fix will need rewriting
- outdated linters in maintenance branches will start to misbehave: false positives, failure to install, ....
- unable to upgrade linters on maintenance branches due dependency conflicts, dropped py27 support, pip or other time-bombs
My gut feeling about it is that sooner or later we may be forced to silence `tox -e linters` on old branches.
This is easily achievable via tox.ini even without changing any jobs,
I will give an example:
```
[linters:venv]
commands =
flake8
```
If you add a minus before flake8, tox will ignore the exit code of flake8, but it will still run it.
This is not an invitation to use this as a general practice, just an idea about how to unblock backports in some unfortunate cases.
Cheers
Sorin Sbarnea
> On 23 Jan 2020, at 14:57, John Fulton <johfulto at redhat.com> wrote:
>
> What are projects doing about new linters working only with newer deps
> or even python3 only? For example [1] [2]. Might it be OK to ignore
> pep8 results on maintenance branches?
>
> Thanks,
> John
>
> [1]
> https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_82b/703943/1/check/openstack-tox-pep8/82b01fb/tox/pep8-1.log
>
> Ignoring ruamel.yaml: markers 'python_version == "3.4"' don't match
> your environment
> ERROR: ansible-lint 4.2.0 has requirement ruamel.yaml<1,>=0.15.34;
> python_version < "3.7", but you'll have ruamel-yaml 0.13.14 which is
> incompatible.
>
>
> [2] https://zuul.opendev.org/t/openstack/build/82b01fb8a8c04068a906bf0cb888de58
> AttributeError: module 'ruamel.yaml' has no attribute 'YAML'
> Examining undercloud-debug.yaml of type playbook
> Traceback (most recent call last):
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/bin/ansible-lint",
> line 8, in <module>
> sys.exit(main())
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/__main__.py",
> line 187, in main
> matches.extend(runner.run())
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/__init__.py",
> line 287, in run
> skip_list=self.skip_list))
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/__init__.py",
> line 177, in run
> matches.extend(rule.matchtasks(playbookfile, text))
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/__init__.py",
> line 87, in matchtasks
> yaml = ansiblelint.utils.append_skipped_rules(yaml, text, file['type'])
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/utils.py",
> line 596, in append_skipped_rules
> yaml_skip = _append_skipped_rules(pyyaml_data, file_text, file_type)
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/utils.py",
> line 606, in _append_skipped_rules
> yaml = ruamel.yaml.YAML()
> AttributeError: module 'ruamel.yaml' has no attribute 'YAML'
> Examining undercloud-service-status.yaml of type playbook
> Traceback (most recent call last):
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/bin/ansible-lint",
> line 8, in <module>
> sys.exit(main())
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/__main__.py",
> line 187, in main
> matches.extend(runner.run())
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/__init__.py",
> line 287, in run
> skip_list=self.skip_list))
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/__init__.py",
> line 177, in run
> matches.extend(rule.matchtasks(playbookfile, text))
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/__init__.py",
> line 87, in matchtasks
> yaml = ansiblelint.utils.append_skipped_rules(yaml, text, file['type'])
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/utils.py",
> line 596, in append_skipped_rules
> yaml_skip = _append_skipped_rules(pyyaml_data, file_text, file_type)
> File "/home/zuul/src/opendev.org/openstack/tripleo-validations/.tox/pep8/lib/python3.5/site-packages/ansiblelint/utils.py",
> line 606, in _append_skipped_rules
> yaml = ruamel.yaml.YAML()
> AttributeError: module 'ruamel.yaml' has no attribute 'YAML'
> /home/zuul/src/opendev.org/openstack/tripleo-validations
> ERROR: InvocationError for command /bin/bash tools/ansible-lint.sh
> (exited with code 1)
> pep8 finish: run-test after 45.18 seconds
> pep8 start: run-test-post
> pep8 finish: run-test-post after 0.00 seconds
> ___________________________________ summary ____________________________________
> ERROR: pep8: commands failed
>
>
More information about the openstack-discuss
mailing list