Global requirements for OpenStack
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zuul 044880d0ed Merge "update constraint for python-neutronclient to new release 6.9.0" 10 months ago
.zuul.d trigger requirements-check if the lower-constraints.txt file changes 1 year ago
babel-test Babel Integration tests 3 years ago
doc/source Fix bug URL for report a bug link 1 year ago
openstack_requirements remove pika-pool 11 months ago
playbooks skip virtualenv setup when there is already a virtualenv 1 year ago
tools Fix typo in 10 months ago
.gitignore add stestr directory to gitignore 10 months ago
.gitreview Added .gitreview 6 years ago
.stestr.conf Move requirements to the PTI 11 months ago Make openstack.requirements installable. 5 years ago
README.rst remove readme content that moved to project-team-guide 1 year ago
bindep.txt Update bindep.txt for ubuntu-bionic 1 year ago
blacklist.txt Allow Pygments in openstack/requirements 11 months ago Trivial: Update pypi url to new url 1 year ago
global-requirements.txt Merge "Bump django upper bound" 10 months ago
lower-constraints-xfails.txt remove mitmproxy 1 year ago
lower-constraints.txt Updated from generate-constraints 10 months ago
projects.txt Merge "Add metalsmith to projects.txt" 10 months ago
requirements.txt Updated from global requirements 1 year ago
setup.cfg Update and replace http with https for doc links 1 year ago Updated from global requirements 2 years ago
test-requirements.txt Move requirements to the PTI 11 months ago
tox.ini Move requirements to the PTI 11 months ago Move commands into cmds subdir. 3 years ago
upper-constraints-xfails.txt remove mitmproxy 1 year ago
upper-constraints.txt Merge "update constraint for python-neutronclient to new release 6.9.0" 10 months ago


Global Requirements for OpenStack Projects


Why Global Requirements?

Refer to the Dependency Management section of the Project Team Guide for information about the history of the project and the files involved.


All the tools require openstack_requirements to be installed (e.g. in a Python virtualenv). They all have help, which is the authoritative documentation.


This will update the requirements in a project from the global requirements file found in .. Alternatively, pass --source to use a different global requirements file:

update-requirements --source /opt/stack/requirements /opt/stack/nova

Entries in all requirements files will have their versions updated to match the entries listed in the global requirements. Excess entries will cause errors in hard mode (the default) or be ignored in soft mode.


Compile a constraints file showing the versions resulting from installing all of global-requirements.txt:

generate-constraints -p /usr/bin/python2.7 -p /usr/bin/python3 \
  -b blacklist.txt -r global-requirements.txt > new-constraints.txt


Replace all references to a package in a constraints file with a new specification. Used by DevStack to enable git installations of libraries that are normally constrained:

edit-constraints oslo.db "-e file://opt/stack/oslo.db#egg=oslo.db"

Proposing changes

Look at the Review Guidelines and make sure your change meets them.

All changes to global-requirements.txt may dramatically alter the contents of upper-constraints.txt due to adding or removing transitive dependencies. As such you should always generate a diff against the current merged constraints, otherwise your change may fail if it is incompatible with the current tested constraints.

A change to the minimum specified vesion of a library in global-requirements.txt currenty requires adjusting the lower-constraints.txt file alongside with the new constrainted coinstallable version of minimums.

Regenerating involves five steps.

  1. Install the dependencies needed to compile various Python packages:

    sudo apt-get install $(bindep -b)
  2. Create a reference file (do this without your patch applied):

    generate-constraints -p /usr/bin/python2.7 -p /usr/bin/python3 \
      -b blacklist.txt -r global-requirements.txt > baseline
  3. Apply your patch and generate a new reference file:

    generate-constraints -p /usr/bin/python2.7 -p /usr/bin/python3 \
      -b blacklist.txt -r global-requirements.txt > updated
  4. Diff them:

    diff -p baseline updated
  5. Apply the patch to upper-constraints.txt. This may require some fiddling. edit-constraint can do this for you when the change does not involve multiple lines for one package.