Skip to content

Make bokeh an optional install requirement #7363

Open

Description

@gabicca

At the moment distributed does not include bokeh in its requirements at all. But it contains features that break without it. I'd like to ask that you include bokeh as optional requirement in your package, so that users can easily install everything they need.

Since distributed uses setup.py, you can do this by adding it to extras_require (https://extras-require.readthedocs.io/en/latest/).

Activity

  1. gjoseph92 commented on Dec 1, 2022

    @gjoseph92
    Collaborator

    Seems reasonable to me to move the diagnostics extra from dask to distributed. I'm wondering if historically, the idea was "you should install distributed through dask, not on its own"—maybe @jrbourbeau would know?

  2. added
    good second issueClearly described, educational, but less trivial than "good first issue".
    dependenciesPull requests that update a dependency file
    on Dec 1, 2022
  3. gjoseph92 commented on Feb 6, 2023

    @gjoseph92
    Collaborator

    @jrbourbeau any more thoughts here? This still seems like a pain point #7512

  4. fjetter commented on Feb 9, 2023

    @fjetter
    Member

    I'm wondering if historically, the idea was "you should install distributed through dask, not on its own"—maybe @jrbourbeau would know?

    I would argue this is still the case. There is typically no point in installing distributed as a standalone since it will inevitably install dask as well.

    distributed itself currently does not have any extra requirements and I'm not eager to run into any pinning issues because dask and distributed definitions drift.

    @gabicca you can install what you want by simply installing dask[distributed, diagnostics]. Would this work for you?

  5. gabicca commented on Feb 9, 2023

    @gabicca
    Author

    Hi @fjetter ,

    I still disagree with this approach. It feels backwards. You're right, dask will be installed if you install distributed, because it's in distributed's requirements. But you can't specify if you want any optional requirements installed like that, because distributed doesn't have the right settings to give it optionals.

    You say: "There is typically no point in installing distributed as a standalone since it will inevitably install dask as well." This doesn't really make sense. If you need distributed, then you should just install distributed and not specify dask as your dependency, since distributed will install it anyway. But now, if I want distributed with diagnostics (since really, that's a distributed feature and not, or not just, a dask feature), you can't just make it your dependency, because now you explicitly have to add dask[diagnostics] as well, sintead of just adding distributed[diagnostics] and not worry about dask anymore.

    Sorry for the convoluted message, hopefully what I'm trying to say here gets across.

    At the moment the only way we could solve this is add dask[diagnostics] into the requirements and we have distributed as a separate requirement. Yes, we could replace with dask[distributed, diagnostics] but that won't make much of a difference still.

    Again, the main problem here, is that the [diagnostics] bit in dask is actually required by distributed; but you can't ask distributed itself to install all its diagnostics packages.

  6. added a commit that references this issue on Mar 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency filegood second issueClearly described, educational, but less trivial than "good first issue".

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions