[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