Skip to content

DEPS: Pinning versions of some dependencies to speed up environment creation #24015

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 1, 2018
Merged

DEPS: Pinning versions of some dependencies to speed up environment creation #24015

merged 2 commits into from
Dec 1, 2018

Conversation

datapythonista
Copy link
Member

Conda is taking 45 minutes to create an environment with our environment.yml. While this is a bug in conda, it won't be fixed until the next version. So, a workaround for now is to pin the verion of some of the packages.

I'm also removing couple of packages that I don't think are useful in a local environment, or in the CI build that will use the file (for the linting and to build the docs).

…t makes solving the environment take around 45 minutes
@datapythonista datapythonista added the Dependencies Required and optional dependencies label Nov 30, 2018
@msarahan
Copy link

nice! I'm glad this works. I'll use this as an example for others until we get conda sorted out.

@TomAugspurger
Copy link
Contributor

Thanks for tracking this down @datapythonista. I'm perfectly happy with pinning and removing some optional deps for the dev env.

Feel free to merge once you've verified that the solver is performing well on the CI.

@h-vetinari
Copy link
Contributor

Wouldn't it work to just use >= (sufficiently high) instead of = to reduce the number of versions? That way the environments can stay current, while not having to deal with the combinatorial blow-up that's slowing down current conda.

@datapythonista
Copy link
Member Author

@TomAugspurger the CI is not using environment.yml yet, it will after #22854. Not sure if it'd be better to make the fixes in that PR, so we can see that the CI works. But the changes are somehow unrelated. What do you think?

@h-vetinari I guess that should work to, and will make newer versions installed (and I assume by the time we could have too many dependencies again, conda will be fixes). I'll give it a try and see.

@codecov
Copy link

codecov bot commented Nov 30, 2018

Codecov Report

Merging #24015 into master will decrease coverage by 49.84%.
The diff coverage is n/a.

Impacted file tree graph

@@             Coverage Diff             @@
##           master   #24015       +/-   ##
===========================================
- Coverage   92.31%   42.46%   -49.85%     
===========================================
  Files         161      161               
  Lines       51549    51556        +7     
===========================================
- Hits        47586    21892    -25694     
- Misses       3963    29664    +25701
Flag Coverage Δ
#multiple ?
#single 42.46% <ø> (+0.01%) ⬆️
Impacted Files Coverage Δ
pandas/io/formats/latex.py 0% <0%> (-100%) ⬇️
pandas/core/categorical.py 0% <0%> (-100%) ⬇️
pandas/io/sas/sas_constants.py 0% <0%> (-100%) ⬇️
pandas/tseries/plotting.py 0% <0%> (-100%) ⬇️
pandas/tseries/converter.py 0% <0%> (-100%) ⬇️
pandas/io/formats/html.py 0% <0%> (-97.64%) ⬇️
pandas/core/groupby/categorical.py 0% <0%> (-95.46%) ⬇️
pandas/io/sas/sas7bdat.py 0% <0%> (-91.17%) ⬇️
pandas/io/sas/sas_xport.py 0% <0%> (-90.15%) ⬇️
pandas/core/tools/numeric.py 10.44% <0%> (-89.56%) ⬇️
... and 119 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update dc8d35a...14b588b. Read the comment docs.

@jreback
Copy link
Contributor

jreback commented Nov 30, 2018

where was this showing up?

@jreback
Copy link
Contributor

jreback commented Nov 30, 2018

I really don't like pinning things, because they are then never unpinned

@msarahan
Copy link

While I agree, I find this to be a very practical stopgap until we at Anaconda can fix the conda behavior issue.

@datapythonista
Copy link
Member Author

@jreback you can see the "Checks and docs" azure job timing out (or taking a lot of time to complete) here: #22854

Also, if you try to recreate your local environment using environment.yml you should experience the same (in Linux, in Mac seems like it worked for Tom)

@TomAugspurger
Copy link
Contributor

TomAugspurger commented Nov 30, 2018 via email

@jreback jreback added this to the 0.24.0 milestone Nov 30, 2018
environment.yml Outdated
- flake8
- flake8-comprehensions
- flake8-rst=0.4.2
- gitpython
- hypothesis>=3.58.0
- hypothesis=3.82
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you make these >= (for all)? does this solve things

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

meaning, does it affect the solving speed

@datapythonista
Copy link
Member Author

I checked it, and the speed looks the same when using >=version than when using =version. Changed it. All green.

@jreback

@TomAugspurger TomAugspurger merged commit 5b0610b into pandas-dev:master Dec 1, 2018
@TomAugspurger
Copy link
Contributor

Thanks!

Pingviinituutti pushed a commit to Pingviinituutti/pandas that referenced this pull request Feb 28, 2019
…reation (pandas-dev#24015)

* DEPS: Pinning versions of some dependencies, to fix conda problem that makes solving the environment take around 45 minutes

* Making pinned dependencies versions greater or equal, instead of just equal
Pingviinituutti pushed a commit to Pingviinituutti/pandas that referenced this pull request Feb 28, 2019
…reation (pandas-dev#24015)

* DEPS: Pinning versions of some dependencies, to fix conda problem that makes solving the environment take around 45 minutes

* Making pinned dependencies versions greater or equal, instead of just equal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Dependencies Required and optional dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Development conda environment taking >45 minutes to solve
5 participants