+1; that's why alphabetical imports and one import per line!<span></span><br><br>On Thursday, June 6, 2013, Bhandaru, Malini K  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+1<br>
<br>
Anything to avoid/ease manual merge.  Good job describing problem Tatiana.<br>
Malini<br>
<br>
-----Original Message-----<br>
From: Tatiana V. Mazur [mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'tmazur@mirantis.com')">tmazur@mirantis.com</a>]<br>
Sent: Thursday, June 06, 2013 1:44 AM<br>
To: <a href="javascript:;" onclick="_e(event, 'cvml', 'openstack-dev@lists.openstack.org')">openstack-dev@lists.openstack.org</a><br>
Subject: [openstack-dev] [Horizon] HACKING.rst and import standards<br>
<br>
Hello!<br>
<br>
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.<br>

Problems start when you add some method from the same module in an existing import statement like here:<br>
<br>
from .views import (IndexView, CreateView, EditAttachmentsView, DetailView,<br>
                     CreateSnapshotView)<br>
<br>
or even here:<br>
<br>
from .views import IndexView<br>
from .views import AddPoolView, AddMemberView, AddMonitorView, AddVipView from .views import (UpdatePoolView, UpdateMemberView,<br>
                     UpdateVipView, UpdateMonitorView) from .views import PoolDetailsView, VipDetailsView from .views import MemberDetailsView, MonitorDetailsView from .views import AddPMAssociationView, DeletePMAssociationView<br>

<br>
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:<br>

<br>
1. Does it make sense to implement all imports uniformly like that is done in other projects?<br>
<br>
Something like this would be nice:<br>
<br>
from quantum.api.extensions import (<br>
     ExtensionMiddleware,<br>
     PluginAwareExtensionManager,<br>
)<br>
from quantum.common import config<br>
from quantum.extensions import (<br>
     credential,<br>
     qos,<br>
)<br>
<br>
Or just one import per line. That would solve merging problems and code would look much better.<br>
<br>
2. Does it make sense to add HACKING.rst in Horizon?<br>
<br>
I think yes. We could describe standards there and we would never get such kind of rebase and merge problems.<br>
<br>
What do you think about it? I could do it if you find it reasonable .<br>
<br>
<br>
Kind regards,<br>
Tatiana<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'OpenStack-dev@lists.openstack.org')">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'OpenStack-dev@lists.openstack.org')">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote><br><br>-- <br><div><br></div>-Dolph<br>