<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 23, 2015 at 11:04 AM, 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:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5"><br>
<br>
On Mon, Feb 23, 2015, at 12:26 PM, Joe Gordon wrote:<br>
> On Mon, Feb 23, 2015 at 8:49 AM, Ihar Hrachyshka <<a href="mailto:ihrachys@redhat.com">ihrachys@redhat.com</a>><br>
> wrote:<br>
><br>
> > -----BEGIN PGP SIGNED MESSAGE-----<br>
> > Hash: SHA1<br>
> ><br>
> > On 02/20/2015 07:16 PM, Joshua Harlow wrote:<br>
> > > Sean Dague wrote:<br>
> > >> On 02/20/2015 12:26 AM, Adam Gandelman wrote:<br>
> > >>> Its more than just the naming. In the original proposal,<br>
> > >>> requirements.txt is the compiled list of all pinned deps<br>
> > >>> (direct and transitive), while<br>
> > >>> <a href="http://requirements.in" target="_blank">requirements.in</a><<a href="http://requirements.in" target="_blank">http://requirements.in</a>> reflects what people<br>
> > >>> will actually use. Whatever is in requirements.txt affects the<br>
> > >>> egg's requires.txt. Instead, we can keep requirements.txt<br>
> > >>> unchanged and have it still be the canonical list of<br>
> > >>> dependencies, while<br>
> > >>> reqiurements.out/requirements.gate/requirements.whatever is an<br>
> > >>> upstream utility we produce and use to keep things sane on our<br>
> > >>> slaves.<br>
> > >>><br>
> > >>> Maybe all we need is:<br>
> > >>><br>
> > >>> * update the existing post-merge job on the requirements repo<br>
> > >>> to produce a requirements.txt (as it does now) as well the<br>
> > >>> compiled version.<br>
> > >>><br>
> > >>> * modify devstack in some way with a toggle to have it process<br>
> > >>> dependencies from the compiled version when necessary<br>
> > >>><br>
> > >>> I'm not sure how the second bit jives with the existing<br>
> > >>> devstack installation code, specifically with the libraries<br>
> > >>> from git-or-master but we can probably add something to warm<br>
> > >>> the system with dependencies from the compiled version prior to<br>
> > >>> calling pip/<a href="http://setup.py/etc" target="_blank">setup.py/etc</a> <<a href="http://setup.py/etc" target="_blank">http://setup.py/etc</a>><br>
> > >><br>
> > >> It sounds like you are suggesting we take the tool we use to<br>
> > >> ensure that all of OpenStack is installable together in a unified<br>
> > >> way, and change it's installation so that it doesn't do that any<br>
> > >> more.<br>
> > >><br>
> > >> Which I'm fine with.<br>
> > >><br>
> > >> But if we are doing that we should just whole hog give up on the<br>
> > >> idea that OpenStack can be run all together in a single<br>
> > >> environment, and just double down on the devstack venv work<br>
> > >> instead.<br>
> > ><br>
> > > It'd be interesting to see what a distribution (canonical,<br>
> > > redhat...) would think about this movement. I know yahoo! has been<br>
> > > looking into it for similar reasons (but we are more flexibly then<br>
> > > I think a packager such as canonical/redhat/debian/... would/culd<br>
> > > be). With a move to venv's that seems like it would just offload<br>
> > > the work to find the set of dependencies that work together (in a<br>
> > > single-install) to packagers instead.<br>
> > ><br>
> > > Is that ok/desired at this point?<br>
> > ><br>
> ><br>
> > Honestly, I failed to track all the different proposals. Just saying<br>
> > from packager perspective: we absolutely rely on requirements.txt not<br>
> > being a list of hardcoded values from pip freeze, but present us a<br>
> > reasonable freedom in choosing versions we want to run in packaged<br>
> > products.<br>
> ><br>
> ><br>
> in short the current proposal for stable branches is:<br>
><br>
> keep requirements.txt as is, except maybe put some upper bounds on the<br>
> requirements.<br>
><br>
> Add requirements.gate to specify the *exact* versions we are gating<br>
> against<br>
> (this would be a full list including all transitive dependencies).<br>
<br>
</div></div>The gate syncs requirements into projects before installing them. Would<br>
we change the sync script for the gate to work from the<br>
requirements.gate file, or keep it pulling from requirements.txt?<br></blockquote><div><br></div><div>We would only add requirements.gate for stable branches (because we don't want to cap/pin things on master). So I think the answer is sync script should work for both. I am not sure on the exact mechanics of how this would work. Whoever ends up driving this bit of work (I think Adam G), will have to sort out the details.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><font color="#888888"><br>
Doug<br>
</font></span><div class=""><div class="h5"><br>
><br>
><br>
> > That's why I asked before we should have caps and not pins.<br>
> ><br>
> > /Ihar<br>
> > -----BEGIN PGP SIGNATURE-----<br>
> > Version: GnuPG v1<br>
> ><br>
> > iQEcBAEBAgAGBQJU61oJAAoJEC5aWaUY1u57T7cIALySnlpLV0tjrsTH2gZxskH+<br>
> > zY+L6E/DukFNZsWxB2XSaOuVdVaP3Oj4eYCZ2iL8OoxLrBotiOYyRFH29f9vjNSX<br>
> > h++dErBr0SwIeUtcnEjbk9re6fNP6y5Hqhk1Ac+NSxwL75KlS3bgKnJAhLA08MVB<br>
> > 5xkGRR7xl2cuYf9eylPlQaAy9rXPCyyRdxZs6mNjZ2vlY6hZx/w/Y7V28R/V4gO4<br>
> > qsvMg6Kv+3urDTRuJdEsV6HbN/cXr2+o543Unzq7gcPpDYXRFTLkpCRV2k8mnmA1<br>
> > pO9W10F1FCQZiBnLk0c6OypFz9rQmKxpwlNUN5MTMF15Et6DOxGBxMcfr7TpRaQ=<br>
> > =WHOH<br>
> > -----END PGP SIGNATURE-----<br>
> ><br>
> > __________________________________________________________________________<br>
> > OpenStack Development Mailing List (not for usage questions)<br>
> > Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</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 Development Mailing List (not for usage questions)<br>
> Unsubscribe:<br>
> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</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 Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</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>
</div></div></blockquote></div><br></div></div>