Hi Dmitry,

I'm absolutely agree with you about keeping requirements.txt closer to
sources.

And by default pypi packages are taken from our mirrors, where we have
> packages only for current master.


Unfortunately, we don't have all packages in mirrors. For now, several of
them are building during ISO creation. AFAIK, it will be fixed in a next
release. Also, we can't install all requirements from
https://github.com/stackforge/fuel-web/blob/master/nailgun/requirements.txt
because
the are no Shotgun package in any mirror or original PyPI.

Because dependencies usually are written in ">=" format, we will get latest
> versions of modules. Solution: use "==" format in requirement.txt files


I vote for less strong solution like
"pakage_name>=min.version<=max.version'. Such solution is more friendly for
integration with any other project. And don't forget for OpenStack global
requirements.

Regards,
Ivan Kolodyazhny


On Fri, Feb 14, 2014 at 4:16 PM, Dmitry Pyzhov <[email protected]> wrote:

> Guys,
>
>
> We have several overcomplicated places in our iso build system. It
> produces pain for developers and for anyone who wants to build custom iso.
> On of the places is in eggs requirements lists.
>
>
> We have two requirements files for the iso:
>
> https://github.com/stackforge/fuel-main/blob/master/requirements-eggs.txt
>
>
> https://github.com/stackforge/fuel-library/blob/master/deployment/puppet/nailgun/files/venv-ostf.txt
>
>
> And we have several python modules installed from eggs:
>
> nailgun, with dep-list in
> https://github.com/stackforge/fuel-web/blob/master/nailgun/requirements.txt
>
> shotgun with dep-list hardcoded in
> https://github.com/stackforge/fuel-web/blob/master/shotgun/setup.py
>
> ostf with dep-list hardcoded in
> https://github.com/stackforge/fuel-ostf/blob/master/setup.py
>
> fuelclient with dep-list hardcoded in
> https://github.com/stackforge/fuel-web/blob/master/fuelclient/setup.py
>
>
> And by default pypi packages are taken from our mirrors, where we have
> packages only for current master.
>
>
> It is inconvenient because everyone has to keep in mind this information
> in order to build an iso or update module dependencies.
>
>
> I have a proposal to keep requirements.txt files next to sources, update
> our build system for use of this files. And learn our build system to use
> global pypi database as a fallback for missed packages.
>
>
> As an option, ostf requirements.txt can be split into several parts in
> order to keep savanna/murano/heat clients dependencies separately.
>
>
> Possible issues:
>
> Because dependencies usually are written in ">=" format, we will get
> latest versions of modules. Solution: use "==" format in requirement.txt
> files.
>
> OSTF installation can be broken because for some unclear reason it
> requires installation of dependencies in one pip run and installation of
> the module in another. Solution: create venv-ostf.txt file during build
> time.
>
> We will get bunch of versions for every single module. Solution is not
> required, python is ok with it.
>
>
> I think this will be done with little effort and will make our life easier
> for next three months.
>
>
> --
> Mailing list: https://launchpad.net/~fuel-dev
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~fuel-dev
> More help   : https://help.launchpad.net/ListHelp
>
>
-- 
Mailing list: https://launchpad.net/~fuel-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~fuel-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to