= Proposed Self Contained Change: Enabling Python Generators = https://fedoraproject.org/wiki/Changes/EnablingPythonGenerators
Change owner(s): * Igor Gnatenko <ignatenkobrain@fedoraproject.org,> * Neal Gompa ngompa13@gmail.com
This change enables the ability to choose to use the Python module dependency generator for packages that provide Python Egg/Wheel metadata.
== Detailed Description == There is RPM dependency generator which is able to automatically add Requires/Provides and other types of dependencies based on egg/wheel metadata. The part which is generating Provides has been used in Fedora since Jun 2016 which means by now all packages which provide egg/wheel metadata have Provides: pythonX.Ydist(xyz) added automatically. With this change proposal we allow people to opt-in for using automatic generation of Requires.
All dependencies which are added are generated out of metadata which means in order to fix them - you need to fix metadata (usually setup.py or requirements.txt).
Other distributions (such as Mageia, OpenMandriva, and PLD) have been using this dependency generator for long time already.
In F29 we plan to propose to make generator opt-out.
== Scope == * Proposal owners: Add macros to python-rpm-macros package which enables dependency generator.
* Other developers: Packagers are advised to replace their hand-crafted list of dependencies on python libraries with simple macros.
* Release engineering: #7276: https://pagure.io/releng/issue/7276
* List of deliverables: N/A (not a System Wide Change)
* Policies and guidelines: Packaging:Python Guidelines need to reference how to turn on the feature (simple variable override). #740: https://pagure.io/packaging-committee/issue/740 .
* Trademark approval: N/A (not needed for this Change)
On Mon, Jan 22, 2018 at 08:51:43PM +0100, Jan Kurik wrote:
= Proposed Self Contained Change: Enabling Python Generators = https://fedoraproject.org/wiki/Changes/EnablingPythonGenerators
It's great that this is finally happening.
== Detailed Description == There is RPM dependency generator which is able to automatically add Requires/Provides and other types of dependencies based on egg/wheel metadata. The part which is generating Provides has been used in Fedora since Jun 2016 which means by now all packages which provide egg/wheel metadata have Provides: pythonX.Ydist(xyz) added automatically. With this change proposal we allow people to opt-in for using automatic generation of Requires.
What about BuildRequires? Quite often that list even more work to generate, and your proposal does not address it in any way. Do you foresee a separate generator that would be run manually or some other solution?
Zbyszek
"ZJ" == Zbigniew Jędrzejewski-Szmek zbyszek@in.waw.pl writes:
ZJ> What about BuildRequires? Quite often that list even more work to ZJ> generate, and your proposal does not address it in any way.
Does any dependency generation we use currently (i.e. Perl or even just the plain C/C++ stuff) do anything for build dependencies? I'm pretty sure they don't.
I don't see why any proposal for automating runtime dependencies would need to address that. Especially given that for Python you generally don't need much more than setuptools to install a module unless it has a test suite, unlike, say, C or C++ where you need -devel packages.
- J<
On 01/23/2018 02:16 AM, Jason L Tibbitts III wrote:
"ZJ" == Zbigniew Jędrzejewski-Szmek zbyszek@in.waw.pl writes:
ZJ> What about BuildRequires? Quite often that list even more work to ZJ> generate, and your proposal does not address it in any way.
Does any dependency generation we use currently (i.e. Perl or even just the plain C/C++ stuff) do anything for build dependencies? I'm pretty sure they don't.
Java dependency generator [1] does generate build-requires during build. (Yes, this means that you need to run a successful build to get them generated, but thanks to mock pm_request plugin [2] you can run initial local build without specifying BuildRequires.)
[1] https://github.com/fedora-java/javapackages [2] https://fedoraproject.org/wiki/Projects/Mock/Plugin/PMRequest
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
On Mon, 2018-01-22 at 21:24 +0000, Zbigniew Jędrzejewski-Szmek wrote:
On Mon, Jan 22, 2018 at 08:51:43PM +0100, Jan Kurik wrote:
= Proposed Self Contained Change: Enabling Python Generators = https://fedoraproject.org/wiki/Changes/EnablingPythonGenerators
It's great that this is finally happening.
== Detailed Description == There is RPM dependency generator which is able to automatically add Requires/Provides and other types of dependencies based on egg/wheel metadata. The part which is generating Provides has been used in Fedora since Jun 2016 which means by now all packages which provide egg/wheel metadata have Provides: pythonX.Ydist(xyz) added automatically. With this change proposal we allow people to opt-in for using automatic generation of Requires.
What about BuildRequires? Quite often that list even more work to generate, and your proposal does not address it in any way. Do you foresee a separate generator that would be run manually or some other solution?
Right now, RPM doesn't support generation of BuildRequires. I've fileld ticket about this long time ago[0]. I really hope this could be done somewhere in 4.15 timeline. But then it will take another decade to get it supported in Fedora ☹
[0] https://github.com/rpm-software-management/rpm/issues/104 - -- - -Igor Gnatenko