3cdb85d35f
This information is in the project-team-guide repository. Change-Id: Ic72e0ca7bb07ada8698fd4919aa4e3906f4a96f0 Depends-On: https://review.openstack.org/561055 Signed-off-by: Doug Hellmann <doug@doughellmann.com>
99 lines
3.4 KiB
ReStructuredText
99 lines
3.4 KiB
ReStructuredText
============================================
|
|
Global Requirements for OpenStack Projects
|
|
============================================
|
|
|
|
.. image:: https://governance.openstack.org/tc/badges/requirements.svg
|
|
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
|
|
|
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.
|
|
|
|
.. _Dependency Management: https://docs.openstack.org/project-team-guide/dependency-management.html
|
|
|
|
Tools
|
|
=====
|
|
|
|
All the tools require openstack_requirements to be installed (e.g. in a Python
|
|
virtualenv). They all have help, which is the authoritative documentation.
|
|
|
|
update-requirements
|
|
-------------------
|
|
|
|
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.
|
|
|
|
generate-constraints
|
|
--------------------
|
|
|
|
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
|
|
|
|
edit-constraints
|
|
----------------
|
|
|
|
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**.
|
|
|
|
Resources
|
|
=========
|
|
|
|
- Documentation: https://docs.openstack.org/requirements/latest/
|
|
- Wiki: https://wiki.openstack.org/wiki/Requirements
|
|
- Bugs: https://launchpad.net/openstack-requirements
|