1
0
mirror of https://github.com/ansible/awx.git synced 2024-10-31 06:51:10 +03:00
awx/requirements
AlanCoding 4a01805a19
add shade back into AWX requirements
Last round of dependency updates showed that AWX
depended on packages which came implicitly from shade
decorator is added as an explicit dependency
and all of the rest of shade requirements are
added back in here.
2018-03-08 10:32:19 -05:00
..
README.md Dependency Updates 2018-03-06 16:04:01 -05:00
requirements_ansible_git.txt Add boto3 dependency and remove requests freezing 2017-06-29 16:03:07 -04:00
requirements_ansible_uninstall.txt don't install pycurl from pypi; use a system package instead 2017-10-10 14:38:44 -04:00
requirements_ansible.in Dependency Updates 2018-03-06 16:04:01 -05:00
requirements_ansible.txt Dependency Updates 2018-03-06 16:04:01 -05:00
requirements_dev.txt replace our rdb tooling w/ the sdb PyPI package 2018-02-26 19:05:50 -05:00
requirements_git.txt Add boto3 dependency and remove requests freezing 2017-06-29 16:03:07 -04:00
requirements_isolated.txt Dependency Updates 2018-03-06 16:04:01 -05:00
requirements_setup_requires.txt Add m2r to setup requirements file 2017-12-05 15:26:56 -05:00
requirements_tower_uninstall.txt uninstall certifi if installed in venv's 2016-12-14 09:53:24 -05:00
requirements.in add shade back into AWX requirements 2018-03-08 10:32:19 -05:00
requirements.txt add shade back into AWX requirements 2018-03-08 10:32:19 -05:00

The requirements.txt and requirements_ansible.txt files are generated from requirements.in and requirements_ansible.in, respectively, using pip-tools pip-compile. The following commands should do this if ran inside the tower_tools container.

NOTE: before running pip-compile, please copy-paste contents in requirements/requirements_git.txt to the top of requirements/requirements.in and prepend each copied line with -e . Later after requirements.txt is generated, don't forget to remove all git+https://github.com...-like lines from both requirements.txt and requirements.in (repeat for requirements_ansible_git.txt and requirements_ansible.in)

At the end of requirements/requirements.in, pip and setuptools need to have their versions pinned.

virtualenv /buildit
source /buildit/bin/activate
pip install pip-tools
pip install pip --upgrade

pip-compile requirements/requirements.in > requirements/requirements.txt
pip-compile requirements/requirements_ansible.in > requirements/requirements_ansible.txt

Known Issues

  • Remove the -e from packages of the form -e git+https://github.com... in the generated .txt. Failure to do so will result in a "bad" RPM and DEB due to the pip install laying down a symbolic link with an absolute path from the virtualenv to the git repository that will differ from when the RPM and DEB are build to when the RPM and DEB are installed on a machine. By removing the -e the symbolic egg link will not be created and all is well.

  • As of pip-tools 1.8.1 pip-compile does not resolve packages specified using a git url. Thus, dependencies for things like dm.xmlsec.binding do not get resolved and output to requirements.txt. This means that:

    • can't use pip install --no-deps because other deps WILL be sucked in
    • all dependencies are NOT captured in our .txt files. This means you can't rely on the .txt when gathering licenses.
  • Package docutils, as an upstream of boto3, is commented out in both requirements.txt and requirements_ansible.txt because the official package has a bug that causes RPM build failure. Here is the bug report. Please do not uncomment it before the bug fix lands. For now we are using a monkey-patch version of docutils that comes with the bug fix. It's included in requirements_git.txt and requirements_ansible_git.txt.