← Back to team overview

fuel-dev team mailing list archive

[iso build] Inconsistency in eggs requirement files

 

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.

Follow ups