Issue #58 wontfix

`Feature(..., require_features=[...])` with `Require` instances doesn't install additional dependencies

Tomasz Rybarczyk
created an issue

Hi,

As far as I understand Feature documentation I should be able to use require_features to force installation of additional requirements when given feature is enabled.

Here is my example setup.py file:

from setuptools import setup, Distribution, Feature, Require

setup(name='spam', author='Spammer',
      author_email='spammer@example.com', distclass=Distribution,
      features={'eggs': Feature('Spam with eggs', standard=True,
                                require_features=[Require('Eggs', None, 'eggggs')])})

Package based on above setup.py should fail during installation as eggggs package doesn't exists. If I change this package to some existing one it dosn't get installed either.

Am I missing something? If so - should I extend Distribution to handle require_features in any specific manner? Any examples?

Comments (4)

  1. pje

    The "Feature()" facility was never completely implemented or supported, and even if it were, it should be deprecated now, as it will not be compatible with the coming packaging systems based on PEP 426. If you need separate features, use separate distributions and "extras" instead.

    (The problem I discovered when I first implemented Feature is that distutils' build system really isn't capable of having a sane "configure" step, or saving that configuration. Essentially, distutils is a little too stateless for that, but Features need it in order not to act weird in various scenarios. "Extras" are basically the intended replacement for this functionality, and Features were just kept around to support legacy projects.)

  2. Log in to comment