Tony Breeds 3fe4d09d8f Remove networking-odl from g-r in the requirements-integration job
This is a terrible idea!

Since networking-odl 13.0.0 hit pypi which includes I955c9d737864b8a2557366be518922e192f4be91
the integration gate fails because ceilometer isn't on pypi[1].  There
aren't any good fixes but this *should* at least unblock the,
requirements, gate and buy us time to fix it correctly.

Note:
 * We can't just install ceilometer from git as we'll just fail when we
   try to generate a constraints list anyway.
 * We can't blacklist networking-odl as the backlist isn't used for
   generating a freeze only for filtering the output constraints
 * We can't stop building the constratints as that introduces a new
   failure path in the gate.

So with those options ruled out lets just pretend that networking-odl
isn't in global-requirements.  This will still fail if something
(directly or not) installs it from pypi.

[1] http://logs.openstack.org/96/594496/2/check/requirements-integration/8378cd8/job-output.txt.gz#_2018-08-31_22_54_49_357505

Change-Id: I1f117f9f4d8f49b5c4ef0cb74d98560c9a551999
2018-09-05 06:19:36 +00:00
2016-04-24 17:21:18 -05:00
2018-05-29 16:50:18 -05:00
2012-08-06 17:05:39 -05:00
2018-05-21 14:58:48 -07:00
2018-04-21 02:32:36 +00:00
2018-07-02 11:29:34 -04:00
2017-03-02 11:55:44 +00:00
2015-06-29 15:27:25 +12:00
2018-03-22 13:50:56 -05:00

Global Requirements for OpenStack Projects

image

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.

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"

build-lower-constraints

Combine multiple lower-constraints.txt files to produce a list of the highest version of each package mentioned in the files. This can be used to produce the "highest minimum" for a global lower constraints list (a.k.a., the "TJ Maxx").

To use the script, run:

$ tox -e venv -- build-lower-constraints input1.txt input2.txt

Where the input files are lower-constraints.txt or requirements.txt files from one or more projects.

If the inputs are requirements files, a lower constraints list for the requirements is produced. If the inputs are lower-constraints.txt, the output includes the highest version of each package referenced in the files.

check-requirements

Run the validation checks from the requirements-check job locally using the requirements-check tox environment.

Run:

$ tox -e requirements-check -- /path/to/repo/to/test

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.

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

Description
Global requirements for OpenStack
Readme 121 MiB
Languages
Python 89.8%
Shell 10.2%