This approach looks good to me, and tames the somewhat ad-hoc approach
we've had so far.

On Wed, Jan 29, 2025 at 9:14 AM Kenneth Knowles <k...@apache.org> wrote:

> Looks good to me.
>
> I've been told in the past that it is more "pythonic" to have one large
> module with codepaths that are always there but don't work unless you
> installed with extras, versus having multiple modules that are fully
> functional without extras. Is that still the prevailing view for Beam?
>

By "module" to you mean package (e.g. that one would install with "pip
install foo"?

I would say the notion of extras is already a bit off the beaten path,
generally one tries to be batteries-included. WIth these (very
heavy-weight) ML dependencies I don't think there's another option though.

Generally it still seems that extras are preferable to separate foo-X,
foo-Y, etc. if the versions are tightly coupled (e.g. foo-X version N
requires exactly foo version N) and/or they live in the same namespace.

It seems like the combinatorial complexity of testing is getting pretty
> extraordinary.
>

We certainly can't test all possible combinations, but hopefully in this
particular case testing each in isolation is good enough.


> On Mon, Jan 27, 2025 at 3:35 PM Danny McCormick via dev <
> dev@beam.apache.org> wrote:
>
>> Hey everyone, I put together a mini-doc on bundling some more Beam
>> Python/ML extras so that we have a better strategy for making sure that
>> users can use ML (or other Python) dependencies which are well tested with
>> their Beam version. It is mostly in line with how we handle our other
>> dependencies and only expands that scope a bit with some new extras, but it
>> should give us a well-defined strategy moving forward which we can
>> reference back to as needed.
>>
>> Please take a look here if you're interested -
>> https://docs.google.com/document/d/1c84Gc-cZRCfrU8f7kWGsNR2o8oSRjCM-dGHO9KvPWPw/edit?usp=sharing
>>
>> Thanks,
>> Danny
>>
>

Reply via email to