
New xstatic projects are added and released on pypi site. Add them to global requirements for referencing by other projects. * Is the library actively maintained? Yes. Maintained as xstatic projects. * Is the library good code? Yes. Published javascript code are adopted. * Is the library python 3 compatible? Yes. * Is the library license compatible? Yes. All provided with MIT License. * Is the library already packaged in the distros we target (Ubuntu latest / Fedora latest)? Yes. Released on pypi site and can be simply installed with pip. * Is the function of this library already covered by other libraries in global-requirements.txt? No. New functions are provided. * Is the library required for OpenStack project or related dev or infrastructure setup? Yes. openstack/release changes are as follows. xstatic-angular-uuid 558989 xstatic-angular-vis 559005 xstatic-filesaver 559007 xstatic-json2yaml 559017 xstatic-js-yaml 559028 * If the library release is managed by the Openstack release process does it use the cycle-with-intermediary release type? No. Managed by openstack/release as xstatic type. * Do I need to update anything else? I am not sure but think the answer is NO. Changes to upper-constraints.txt and lower-constraints.txt are already included in this commit. Change-Id: I1112aea8a19c72abcbec8ea63b51c68f3486dcbc
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.
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.
Install the dependencies needed to compile various Python packages:
sudo apt-get install $(bindep -b)
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
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
Diff them:
diff -p baseline updated
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.