pip, the Python package installation tool is looking for something very much like pbr. pbr itself will benefit from the generalisations pip is looking for.
There are a few places where pbr today doesn’t meet pips needs.
Via an opt-in option we can embed pbr in the root directory of the sdist. When run from an sdist, the local directory is first in the Python path and this will cause the embedded copy of pbr to be found and loaded. The embedding process will copy a statically defined subset of the pbr source code (and we may wish to refactor things a little to make this more manageable). pbr’s non-test code is 128K today uncompressed, 30K compressed - which is tolerable. Embedding all of pbr permits tests, doc builds and so on to all work from an sdist.
We’ll add an option, skip_requirements_files to disable requirements file reflection. When set requirements will be managed via setup.cfg or setup.py exclusively. This is in line with our eventual deprecation of those files.
Rather than introducing a template language that wouldn’t be supported by wheels, we’ll allow setup() to pass in entry points and merge them. That will prevent this being an attractive-nuisance within OpenStack while still permitting pip to perform its current workarounds for the lack of entry point templating in the wider set of tooling.
This work is licensed under a Creative Commons Attribution 3.0 Unported License. http://creativecommons.org/licenses/by/3.0/legalcode