[all] pep8 results for maintenance branches over time
Ghanshyam Mann
gmann at ghanshyammann.com
Thu Jan 23 18:25:56 UTC 2020
---- On Thu, 23 Jan 2020 11:34:23 -0600 Stephen Finucane <sfinucan at redhat.com> wrote ----
> On Thu, 2020-01-23 at 16:36 +0000, Sorin Sbarnea wrote:
> > 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.
>
> Before anyone does this, it's worth noting smcginnis' point that
> linters generally aren't versioned by upper-constraints so you can't
> rely on that to cap your versions for a given stable release. Instead,
> you should probably cap it at a given MINOR release and periodically
> update this range. Not only does this prevent a change in one of the
> linters breaking master, but it will ensure stable branches keep
> working as they did over the long term. We've done this in nova for
> years [1][2][3] and I'd just assumed everyone else was doing the same,
> to be honest :)
I hope so until they have not removed the cap from when I did for many projects gate year ago.
- https://review.opendev.org/#/q/topic:cap-hacking+(status:open+OR+status:merged)
-gmann
>
> Stephen
>
> [1] https://review.opendev.org/#/c/703405/
> [2] https://github.com/openstack/nova/blob/19.0.0/test-requirements.txt#L5
> [2] https://github.com/openstack/nova/blob/20.0.0/test-requirements.txt#L5
>
> 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