<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small">Now it <span class="gmail-il">breaks</span> the kolla's master branch jobs. And have to remove the "horizon"<br></div><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small">and "neutron" in the upper-constraints.txt file. check[1][2]. </div><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small">i wanna know what's the correct way to install horizon develop<br></div><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small">branch with upper-<span class="gmail-il">constraints</span>.txt file?</div><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small">[1] <a href="https://review.openstack.org/#/c/549456/4/docker/neutron/neutron-base/Dockerfile.j2" target="_blank">https://review.openstack.<wbr>org/#/c/549456/4/docker/<wbr>neutron/neutron-base/<wbr>Dockerfile.j2</a><br></div><div class="gmail_default" style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:monospace,monospace;font-size:small">[2] <a href="https://review.openstack.org/#/c/549456/4/docker/horizon/Dockerfile.j2" target="_blank" style="color:rgb(17,85,204)">https://review.openstack.<wbr>org/#/c/549456/4/docker/<wbr>horizon/Dockerfile.j2</a></div><div class="gmail-yj6qo gmail-ajU" style="outline:none;padding:10px 0px;width:22px;margin:2px 0px 0px;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br class="gmail-Apple-interchange-newline"></div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 15, 2018 at 9:28 PM, Doug Hellmann <span dir="ltr"><<a href="mailto:doug@doughellmann.com" target="_blank">doug@doughellmann.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Excerpts from Thomas Morin's message of 2018-03-15 10:15:38 +0100:<br>
<span class="">> Hi Doug,<br>
><br>
> Doug Hellmann, 2018-03-14 23:42:<br>
> > We keep doing lots of infra-related work to make it "easy" to do<br>
> >  when it comes to<br>
> > managing dependencies.  There are three ways to address the issue<br>
> > with horizon and neutron, and none of them involve adding features<br>
> > to pbr.<br>
> ><br>
> > 1. Things that are being used like libraries need to release like<br>
> >    libraries. Real releases. With appropriate version numbers. So<br>
> >    that other things that depend on them can express valid<br>
> > dependencies.<br>
> ><br>
> > 2. Extract the relevant code into libraries and release *those*.<br>
> ><br>
> > 3. Things that are not stable enough to be treated as a library<br>
> >    shouldn't be used that way. Move the things that use the<br>
> > application<br>
> >    code as library code back into the repo with the thing that they<br>
> >    are tied to but that we don't want to (or can't) treat like a<br>
> >    library.<br>
><br>
> What about the case where there is co-development of features across<br>
> repos ? One specific case I have in mind is the Neutron stadium where<br>
<br>
</span>We do that all the time with the Oslo libraries. It's not as easy as<br>
having everything in one repo, but we manage.<br>
<span class=""><br>
> we sometimes have features in neutron repo that are worked on as a pre-<br>
> requisite for things that will be done in a neutron-* or networking-*<br>
> project. Another is a case for instance where we need to add in project<br>
> X a tempest test to validate the resolution of a bug for which the fix<br>
> actually happened in project B (and where B is not a library).<br>
<br>
</span>If the tempest test can't live in B because it uses part of X, then I<br>
think X and B are really one thing and you're doing more work than you<br>
need to be doing to keep them in separate libraries.<br>
<span class=""><br>
> My intuition is that it is not illegitimate to expect this kind of<br>
> development workflow to be feasible; but at the same time I read your<br>
> suggestion above as meaning that it belongs to the real of "things we<br>
> shouldn't be doing in the first place".  The only way I can reconcile<br>
<br>
</span>You read me correctly.<br>
<br>
We install a bunch of components from source for integration tests<br>
in devstack-gate because we want the final releases to work together.<br>
But those things only interact via REST APIs, and don't import each<br>
other.  The cases with neutron and horizon are different. Even the<br>
*unit* tests of the add-ons require code from the "parent" app. That<br>
indicates a level of coupling that is not being properly addressed by<br>
the release model and code management practices for the parent apps.<br>
<span class=""><br>
> the two would be to conclude we should collapse all the module in<br>
> neutron-*/networking-* into neutron, but doing that would have quite a<br>
> lot of side effects (yes, this is an understatement).<br>
<br>
</span>That's not the only way to do it. The other way would be to properly<br>
decompose the shared code into a library and then provide *stable<br>
APIs* so code can be consumed by the add-on modules. That will make<br>
evolving things a little more difficult because of the stability<br>
requirement. So it's a trade off. I think the teams involved should<br>
make that trade off (in one direction or another), instead of<br>
building tools to continue to avoid dealing with it.<br>
<br>
So let's start by examining the root of the problem: Why are the things<br>
that need to import neutron/horizon not part of the neutron/horizon<br>
repositories in the first place?<br>
<span class="HOEnZb"><font color="#888888"><br>
Doug<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="font-size:13px;border-collapse:collapse"><font face="monospace, monospace">Regards,</font></span></div><div><span style="font-size:13px;border-collapse:collapse"><font face="monospace, monospace">Jeffrey Zhang</font></span></div><div><span style="font-family:monospace,monospace;font-size:12.8px">Blog: </span><a href="http://xcodest.me/" style="font-family:monospace,monospace;font-size:12.8px" target="_blank">http://xcodest.me</a><font face="monospace, monospace"><br></font></div></div></div></div></div></div></div></div></div>
</div></div>