-
Notifications
You must be signed in to change notification settings - Fork 2
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
docker: prevent manual pin of dependencies and improve build speed #95
Changes from all commits
d21f8e2
e7a9640
e1e9fba
2ef396c
f71e61e
3a5472f
6f8f0ea
53e81d7
7bb511c
335b4b2
f8df4cf
23b8912
f992cef
965860b
eafacd9
0452d4c
26fa54f
ff696db
bf768d9
498bc8c
6d13a42
3e8cfc5
9860b0d
e0f5325
f105f91
36a4b0f
f5fa5d7
66953c0
87350e8
cc2d7ef
d3a06f5
a62f3c2
22c214a
72dc0c9
b6eaa61
1ca6f68
e4263a4
e3b2c23
30a1a00
7ab6d90
b13769a
87fb219
5d3c259
50a85d1
4343030
ca17d14
68af06d
3d2707a
eac4141
c6fd0f4
890c228
62bc689
eaa2b01
d67a2d2
035560e
ced6249
6d31473
faa0341
b714564
8aba3a5
c9d2ef6
107c402
8bd0094
c90413c
9370388
58cd714
d58f090
b4acbdc
007ae84
34d38cc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
FROM pavics/workflow-tests:211123-update211216 | ||
FROM pavics/workflow-tests:220121 | ||
|
||
USER root | ||
|
||
|
Original file line number | Diff line number | Diff line change | ||
---|---|---|---|---|
|
@@ -6,27 +6,39 @@ channels: | |||
- bokeh | ||||
- plotly # for jupyter-dash | ||||
- defaults | ||||
|
||||
dependencies: | ||||
|
||||
# Do not put xclim and ravenpy direct dependencies here to let xclim and ravenpy | ||||
# manage their own dependencies pinning. | ||||
# | ||||
# xclim direct dependencies: https://github.com/conda-forge/xclim-feedstock/blob/master/recipe/meta.yaml | ||||
# ravenpy direct dependencies: https://github.com/conda-forge/ravenpy-feedstock/blob/master/recipe/meta.yaml | ||||
|
||||
# Pin latest xclim and ravenpy to avoid downgrading during the second install | ||||
# phase. Mamba is quicker to solve dependencies than conda but it is less | ||||
# precise so accidental downgrade happends. | ||||
- xclim >= 0.32.1 | ||||
- ravenpy >= 0.7.8 | ||||
|
||||
- matplotlib | ||||
- xarray | ||||
- numpy | ||||
# - xarray # from xclim and ravenpy | ||||
# - numpy # from xclim and ravenpy | ||||
- birdy | ||||
- owslib>=0.23.0 | ||||
- netcdf4 | ||||
# - owslib>=0.23.0 # from ravenpy | ||||
# - netcdf4 # from ravenpy | ||||
# https://github.com/ecmwf/cfgrib | ||||
# Python interface to map GRIB files to the Unidata's Common Data Model v4 | ||||
# following the CF Conventions. | ||||
- cfgrib | ||||
- pydap | ||||
- cartopy | ||||
- cartopy >= 0.20.1 | ||||
- descartes | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What needs There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I just update the PR description with list of package changes. You might want to review the PR description again. |
||||
# Pin rasterio for ravenpy, remove on next build. | ||||
# See https://github.com/CSHS-CWRA/RavenPy/commit/eae66e9afc30e2381e9119644a0695d1d248c739 | ||||
- rasterio <= 1.2.6 | ||||
- gdal # for osgeo | ||||
- geopandas | ||||
- pandas | ||||
- rioxarray | ||||
# - rasterio # from ravenpy | ||||
# - gdal # for osgeo, from ravenpy | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you actually mean gdal is not a dependency from ravenpy? But it still is https://github.com/conda-forge/ravenpy-feedstock/blob/ae682f7bb3fc586737733d923111d3d2107f5ae0/recipe/meta.yaml#L34 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, no, GDAL is all-knowing and ever-present. I figured there's no major reason for specifying it to be installed since it comes bundled with so many other packages. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh I see what you mean. But according to this commit d2948dc, some notebooks was actually importing it directly and it was not yet in the Jupyter env. I'd keep it here for historical reason. |
||||
# - geopandas # from ravenpy | ||||
# - pandas # from xclim and ravenpy | ||||
# - rioxarray # from ravenpy | ||||
- scikit-image | ||||
- ipyleaflet | ||||
- threddsclient | ||||
|
@@ -48,12 +60,12 @@ dependencies: | |||
# pinning hvplot did not solve the problem with violin plot. | ||||
- hvplot | ||||
- nc-time-axis | ||||
- cftime | ||||
- statsmodels # for ravenpy | ||||
# - cftime # from xclim and ravenpy | ||||
# - statsmodels # for ravenpy | ||||
# for error 'ImportError: HTTPFileSystem requires "requests" and "aiohttp" to | ||||
# be installed' with call 'fsspec.filesystem('https')' | ||||
- aiohttp | ||||
- pydantic | ||||
# - pydantic # from ravenpy | ||||
# Intake is a lightweight set of tools for loading and sharing data in data science projects | ||||
- intake | ||||
# https://intake.readthedocs.io/en/latest/plugin-directory.html | ||||
|
@@ -74,27 +86,46 @@ dependencies: | |||
- zarr | ||||
# https://github.com/dask/s3fs/ | ||||
- s3fs | ||||
- xclim | ||||
# Pinning shapely for ravenpy. Remove on next rebuild. | ||||
# https://github.com/CSHS-CWRA/RavenPy/blob/f63e1e5b967c0d7c17e679c8f9d6d309a94096e6/environment.yml#L35 | ||||
- shapely <=1.7.1 | ||||
- ravenpy | ||||
# - shapely # from ravenpy | ||||
# PIN shapely due to notebook failure | ||||
# PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb: | ||||
# /opt/conda/envs/birdy/lib/python3.7/site-packages/shapely/geometry/base.py in array_interface_base(self) | ||||
# 324 "removed in Shapely 2.0.", | ||||
# 325 ShapelyDeprecationWarning, stacklevel=2) | ||||
# --> 326 return self._array_interface_base() | ||||
# 327 | ||||
# 328 @property | ||||
# | ||||
# TypeError: 'dict' object is not callable | ||||
# | ||||
# climex.ipynb: | ||||
# /opt/conda/envs/birdy/lib/python3.7/site-packages/cartopy/crs.py:825: ShapelyDeprecationWarning: __len__ for multi-part geometries is deprecated and will be removed in Shapely 2.0. Check the length of the `geoms` property instead to get the number of parts of a multi-part geometry. | ||||
# if len(multi_line_string) > 1: | ||||
# /opt/conda/envs/birdy/lib/python3.7/site-packages/cartopy/crs.py:877: ShapelyDeprecationWarning: Iteration over multi-part geometries is deprecated and will be removed in Shapely 2.0. Use the `geoms` property to access the constituent parts of a multi-part geometry. | ||||
# for line in multi_line_string: | ||||
# /opt/conda/envs/birdy/lib/python3.7/site-packages/cartopy/crs.py:944: ShapelyDeprecationWarning: __len__ for multi-part geometries is deprecated and will be removed in Shapely 2.0. Check the length of the `geoms` property instead to get the number of parts of a multi-part geometry. | ||||
# if len(p_mline) > 0: | ||||
# /opt/conda/envs/birdy/lib/python3.7/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_physical/ne_10m_coastline.zip | ||||
# warnings.warn(f'Downloading: {url}', DownloadWarning) | ||||
- shapely <= 1.7.1 | ||||
# https://github.com/roocs/clisops | ||||
- clisops | ||||
- clisops >= 0.8.0 | ||||
# Universal Regridder for Geospatial Data | ||||
# https://github.com/pangeo-data/xESMF | ||||
# Pin xesmf because latest xesmf-0.6.2 is not compatible with latest clisops-0.7.0. | ||||
# xesmf-0.6.1 is buggy. | ||||
# Unpin when new compatible clisops is released. | ||||
- xesmf <= 0.6.0 | ||||
# xesmf-0.6.2 requires clisops>=0.8.0 | ||||
- xesmf >= 0.6.2 | ||||
# https://anaconda.org/anaconda/memory_profiler | ||||
# Monitor memory consumption of a process as well as line-by-line analysis | ||||
# of memory consumption for Python programs. | ||||
- memory_profiler | ||||
# for esgf notebooks | ||||
- esgf-compute-api | ||||
- cdms2 | ||||
- vcs | ||||
# Disable vcs because it was forcing python downgrade to below 3.9. | ||||
# See https://github.com/CDAT/vcs/issues/457 | ||||
# package vcs-8.1-py_0 requires vtk-cdat >8.1, but none of the providers can be installed | ||||
# package vtk-cdat-8.2.0.8.2.1-py38hbc81915_0 requires python >=3.8,<3.9.0a0 *_cpython | ||||
#- vcs | ||||
- mesalib | ||||
# tests | ||||
- pytest | ||||
|
@@ -105,6 +136,10 @@ dependencies: | |||
- notebook | ||||
- jupyterlab | ||||
- jupyterhub | ||||
# https://ipywidgets.readthedocs.io/en/latest/user_install.html | ||||
- ipywidgets | ||||
# https://github.com/jupyter-widgets/ipyleaflet | ||||
- ipyleaflet | ||||
# https://github.com/mamba-org/gator (was jupyter_conda) | ||||
- mamba_gator | ||||
# to diff .ipynb files | ||||
|
@@ -125,6 +160,11 @@ dependencies: | |||
# xeus-python: back-end kernel implementing the Jupyter Debug Protocol | ||||
- xeus-python | ||||
- jupyter-dash | ||||
# Force newer nodejs for 'jupyter lab build' issue | ||||
# https://github.com/jupyterlab/jupyterlab/issues/11726#issuecomment-998901247 | ||||
# TODO: remove nodejs once all extensions move to prebuilt extensions, see comment | ||||
# https://github.com/jupyterlab/jupyterlab/issues/11726#issuecomment-998917305 | ||||
- nodejs >= 16.0 | ||||
# utilities | ||||
- curl | ||||
- wget | ||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additionally, PyDAP is not Python3.10 compatible. On import: