2015-12-03 16:28:51 +09:00
|
|
|
# linters - each project may have a different version with loose convergence
|
2015-10-20 10:52:27 +13:00
|
|
|
# over time.
|
2017-07-01 08:07:53 +00:00
|
|
|
astroid
|
2017-10-24 18:05:52 +02:00
|
|
|
bandit
|
2015-06-23 07:39:22 +12:00
|
|
|
flake8
|
2017-10-24 15:26:44 +02:00
|
|
|
flake8-docstrings
|
2017-02-13 17:09:51 +09:00
|
|
|
flake8-import-order
|
2015-06-23 07:39:22 +12:00
|
|
|
hacking
|
|
|
|
mccabe
|
Add pep257 as a requirement
PEP257 [1] "documents semantics and conventions associated with Python
docstrings." The pep257 package [2] is "static analysis tool for
checking compliance with Python PEP 257." The flake8_docstrings module
allows us to consume the pep257 package as a flake8 plugin.
[1]: https://www.python.org/dev/peps/pep-0257/
[2]: https://pypi.python.org/pypi/pep257
[3]: https://pypi.python.org/pypi/flake8-docstrings
Consuming projects
==================
Adoption has been proposed to the several keystone projects
including:
- openstack/pycadf
- openstack/keystone
- openstack/keystonemiddleware
- openstack/keystoneauth-saml2
- openstack/keystoneauth
- openstack/python-keystoneclient
- openstack/python-keystoneclient-kerberos
Each of these proposed changes shares the same Change-Id:
http://bit.ly/1jMJvpe
Each of the above patches adds flake8_docstrings as a dependency, but
ignores PEP257 checks which the project is currently failing (in the
near term, this gates against introducing regressions on the subset of
checks which we are currently passing).
The following series of patches proposed against keystone proceeds to
fix one violation at a time and results in increased coverage by pep257:
- https://review.openstack.org/#/c/229689/
- https://review.openstack.org/#/c/229837/
- https://review.openstack.org/#/c/229839/
- https://review.openstack.org/#/c/229853/
- https://review.openstack.org/#/c/229855/
- https://review.openstack.org/#/c/229857/
- https://review.openstack.org/#/c/229865/
- https://review.openstack.org/#/c/229887/
- https://review.openstack.org/#/c/229898/
- https://review.openstack.org/#/c/229916/
Is the library actively maintained?
===================================
flake8_docstrings is maintained by Ian Cordasco (sigmavirus24), a
glance-core reviewer. Given that this project is a wrapper around
pep257, I wouldn't expect much activity in this project, but the latest
release was January 2015. Commit history:
https://gitlab.com/pycqa/flake8-docstrings/commits/master
pep257's last release was July 2015 and it's commit history shows that
it is actively maintained by a small group of contributors:
https://github.com/GreenSteam/pep257/commits/master
Is the library good code?
=========================
flake8_docstrings is comprised of a single, trivial class to expose
pep257 to flake8 (there are no tests written directly against the plugin
that I'm aware of):
http://bit.ly/1MXu9Yv
Nearly half of pep257's codebase is actually tests. The tests, and code
are well written, well documented and easy to read, IMO.
Is the library python 3 compatible?
===================================
flake8_docstrings claims support for both Python 2 and 3.
pep257 claims support for Python 2.6, 2.7, 3.2, 3.3, 3.4, pypy and
pypy3.
Is the library license compatible?
==================================
flake8_docstrings LICENSE is MIT:
http://bit.ly/1MXuaM2
pep257 LICENSE is MIT:
https://github.com/GreenSteam/pep257/blob/master/LICENSE-MIT
Is the library already packaged in the distros we target?
=========================================================
I don't believe either is packaged for Ubuntu or Fedora.
Is the function of this library already covered by other libraries?
===================================================================
All of openstack/hacking's docstrings checks (hacking.checks.docstrings)
are redundant with pep257 standards and can potentially be deprecated in
favor of the more comprehensive coverage provided by pep257. Further, I
don't believe any of hacking's checks assert any direct conflicts with
pep257 (I've written a file that exercises all of pep257's checks and it
passes against hacking as well).
Change-Id: I60adf0dca4aa32f4ef6bca61250b375c8a3703c6
Related-Bug: 1501544
2015-10-06 17:43:14 +00:00
|
|
|
pep257
|
2015-06-23 07:39:22 +12:00
|
|
|
pep8
|
|
|
|
pyflakes
|
2017-10-24 15:22:55 +02:00
|
|
|
pycodestyle
|
2015-06-23 07:39:22 +12:00
|
|
|
pylint
|
Add some OpenStack networking-* projects to global-requirements 1/2
Now that we're publishing them to PyPI we can begin the work of
reworking the plugin projects to depend on the PyPI versions instead
of listing direct git url depends. To do that, we need them in
global-requirements.
Add networking-odl, networking-bagpipe, networking-bgpvpn,
networking-sfc, networking-l2gw, neutron-lbaas, neutron-fwaas,
neutron-vpnaas, neutron-dynamic-routing, and vmware-nsxlib.
Add these only to global-requirements for now - that way
tools/tox_install.sh continues to work. As next step we can migrate from
tox_install.sh to requirements and then add the constraints.
Change-Id: I9feeda89b87bd88636170fee25dc6d1c20208e37
2018-03-14 11:11:05 +01:00
|
|
|
|
|
|
|
# Temporarily until tools/tox_install.sh is updated everywhere
|
2018-03-14 20:56:07 +01:00
|
|
|
horizon
|
Add some OpenStack networking-* projects to global-requirements 1/2
Now that we're publishing them to PyPI we can begin the work of
reworking the plugin projects to depend on the PyPI versions instead
of listing direct git url depends. To do that, we need them in
global-requirements.
Add networking-odl, networking-bagpipe, networking-bgpvpn,
networking-sfc, networking-l2gw, neutron-lbaas, neutron-fwaas,
neutron-vpnaas, neutron-dynamic-routing, and vmware-nsxlib.
Add these only to global-requirements for now - that way
tools/tox_install.sh continues to work. As next step we can migrate from
tox_install.sh to requirements and then add the constraints.
Change-Id: I9feeda89b87bd88636170fee25dc6d1c20208e37
2018-03-14 11:11:05 +01:00
|
|
|
networking-bagpipe
|
|
|
|
networking-bgpvpn
|
|
|
|
networking-l2gw
|
|
|
|
networking-odl
|
|
|
|
networking-sfc
|
|
|
|
neutron
|
|
|
|
neutron-dynamic-routing
|
|
|
|
neutron-fwaas
|
|
|
|
neutron-lbaas
|
|
|
|
neutron-vpnaas
|
|
|
|
vmware-nsxlib
|