[openstack-dev] [Horizon] HACKING.rst and import standards
Gabriel Hurley
Gabriel.Hurley at nebula.com
Thu Jun 6 18:51:58 UTC 2013
I suggest that we start with enabling H301 (one import per line), H303 (no wildcards), and H306 (alphabetical). I'm honestly surprised by how many violations there are for that last one since we generally try to do that already. Obviously it'll be a sizable patch to make this happen, but it'd be great to get it done. Please file a bug/blueprint for it.
Thanks!
- Gabriel
From: Joe Gordon [mailto:joe.gordon0 at gmail.com]
Sent: Thursday, June 06, 2013 9:09 AM
To: OpenStack Development Mailing List
Subject: Re: [openstack-dev] [Horizon] HACKING.rst and import standards
Although there is no HACKING.rst in Horizon, it does use the hacking plugin to flake8, just that the tests are all disabled.(https://github.com/openstack/horizon/blob/master/tox.ini#L40). You can start gating on one import per line (H301) and alphabetical order (H306), by fixing the issues and re-enabling the checks in tox.ini.
'flake8 --statistics --select H3' shows the number off issues:
194 H301 one import per line
16 H302 import only modules.'from collections import Sequence' does not import a module
7 H303 No wildcard (*) import.
131 H304 No relative imports. 'from .views import UsageView' is a relative import
179 H306 imports not in alphabetical order (django.conf.urls.static.static, django.conf.settings)
On Thu, Jun 6, 2013 at 3:42 AM, Dolph Mathews <dolph.mathews at gmail.com<mailto:dolph.mathews at gmail.com>> wrote:
+1; that's why alphabetical imports and one import per line!
On Thursday, June 6, 2013, Bhandaru, Malini K wrote:
+1
Anything to avoid/ease manual merge. Good job describing problem Tatiana.
Malini
-----Original Message-----
From: Tatiana V. Mazur [mailto:tmazur at mirantis.com]
Sent: Thursday, June 06, 2013 1:44 AM
To: openstack-dev at lists.openstack.org<mailto:openstack-dev at lists.openstack.org>
Subject: [openstack-dev] [Horizon] HACKING.rst and import standards
Hello!
Recently I had to upload some patch sets and rebase some branches for this purpose. It appears that rebasing on changed master branch is not a trivial task. You know, when nearly each Horizon module includes a total mash of comma separated imports, that's really not a trivial task.
Problems start when you add some method from the same module in an existing import statement like here:
from .views import (IndexView, CreateView, EditAttachmentsView, DetailView,
CreateSnapshotView)
or even here:
from .views import IndexView
from .views import AddPoolView, AddMemberView, AddMonitorView, AddVipView from .views import (UpdatePoolView, UpdateMemberView,
UpdateVipView, UpdateMonitorView) from .views import PoolDetailsView, VipDetailsView from .views import MemberDetailsView, MonitorDetailsView from .views import AddPMAssociationView, DeletePMAssociationView
All patch sets including this kind of changes can't be merged automatically. You have to rebase manually, just because of a few imports. I was wondering if there is a local Horizon standard for importing and tried to find it in HACKING.rst (like all standards are described in other projects). And it appears there's no HACKING.rst in Horizon! That's why I have a few questions:
1. Does it make sense to implement all imports uniformly like that is done in other projects?
Something like this would be nice:
from quantum.api.extensions import (
ExtensionMiddleware,
PluginAwareExtensionManager,
)
from quantum.common import config
from quantum.extensions import (
credential,
qos,
)
Or just one import per line. That would solve merging problems and code would look much better.
2. Does it make sense to add HACKING.rst in Horizon?
I think yes. We could describe standards there and we would never get such kind of rebase and merge problems.
What do you think about it? I could do it if you find it reasonable .
Kind regards,
Tatiana
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org<mailto:OpenStack-dev at lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org<mailto:OpenStack-dev at lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
--
-Dolph
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org<mailto:OpenStack-dev at lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130606/5e630afe/attachment-0001.html>
More information about the OpenStack-dev
mailing list