Skip to content

gaps between distributed and dask releases to anaconda main channels results in incompatible environments #4819

@jameslamb

Description

@jameslamb

What happened:

Twice in the last two months, LightGBM's continuous integration has been broken by the following situation:

  • distributed changes in a way that makes it incompatible with older versions of dask
  • the newest release of distributed is published to anaconda's main channels several days before the corresponding dask version
  • something like conda install -y dask distributed results in an environment with incompatible versions of dask and distributed
  • any tests involving Dask fail

I've documented the most recent instance of this problem in microsoft/LightGBM#4285.

We ended up with an environment like this:

dask-2021.4.0              |     pyhd3eb1b0_0           5 KB
dask-core-2021.4.0         |     pyhd3eb1b0_0         670 KB
distributed-2021.4.1       |   py37h06a4308_0         1.0 MB

And saw all Dask tests in that project fail with this error:

>       from distributed.protocol.core import dumps_msgpack
E       ImportError: cannot import name 'dumps_msgpack' from 'distributed.protocol.core' (/root/miniconda/envs/test-env/lib/python3.7/site-packages/distributed/protocol/core.py)

Caused by the fact that distributed.protocol.core.dumps_msgpack() was removed in 2021.4.1 (#4677), but dask 2021.4.0 still relies on it.

What you expected to happen:

I expected that since dask and distributed are so tightly connected to each other, new versions of these libraries would be published to the main anaconda channels at the same time.

Minimal Complete Verifiable Example:

It's hard to create an MCVE for this since it relies on external state in a package manager, but as of 12 hours ago the steps at microsoft/LightGBM#4285 (comment) could reproduce this issue.

If you need more details than that please let me know and I can try to produce a tighter reproducible example.

Anything else we need to know?:

Environment:

  • Dask version: 2021.4.0
  • Python version: 3.7
  • Operating System: Ubuntu 20.04
  • Install method (conda, pip, source): conda

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions