-
Notifications
You must be signed in to change notification settings - Fork 350
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
Update papermill transient dependencies on docker build #923
Update papermill transient dependencies on docker build #923
Conversation
Some papermill transient dependencies are not properly declared and require a manual install/update to avoid runtime issues.
I have also updated elyra/elyra:dev and it's being uploaded now. |
Do these need to bumped to a particular version in runtime docker images or is these just an issue for when we run pipelines locally? |
etc/docker/elyra/Dockerfile
Outdated
@@ -32,7 +32,8 @@ RUN chmod ugo+x /usr/local/bin/start-elyra.sh && \ | |||
USER $NB_USER | |||
|
|||
RUN python -m pip install --upgrade pip && \ | |||
python -m pip install setuptools pandas --ignore-installed --upgrade && \ | |||
python -m pip install --ignore-installed --upgrade setuptools && \ | |||
python -m pip install --upgrade pandas numpy papermill nbclient jupyter-client notebook && \ |
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.
Why do we have pandas
and numpy
here?
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.
pandas was there, numpy usually needs to be sync-ed up with pandas
etc/docker/elyra/Dockerfile
Outdated
@@ -32,7 +32,8 @@ RUN chmod ugo+x /usr/local/bin/start-elyra.sh && \ | |||
USER $NB_USER | |||
|
|||
RUN python -m pip install --upgrade pip && \ | |||
python -m pip install setuptools pandas --ignore-installed --upgrade && \ | |||
python -m pip install --ignore-installed --upgrade setuptools && \ | |||
python -m pip install --upgrade pandas numpy papermill nbclient jupyter-client notebook && \ |
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.
The upgrade references of papermill nbclient jupyter-client notebook
are redundant with what make install
does below. Is this because we aren't able to specify --upgrade-strategy eager
in make install
? Would it be better to add a macro and call something like make UPGRADE_STRATEGY=eager install
and update the Makefile install-server
target to appropriately use --upgrade-strategy
as follows...
UPGRADE_STRATEGY?=only-if-needed
...
install-server: build-server ## Install backend
pip install --upgrade --upgrade-strategy $(UPGRADE_STRATEGY) dist/elyra-*-py3-none-any.whl
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.
These are the papermill transient dependencies that always bite us, and thus why I added them explicitly.
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.
Understood, but we list most of those dependencies as part of Elyra's installation requirements and an eager upgrade would address the others - thus my comment about redundancy. Should we ever need to pin (cap) one of these dependencies, the approach in the PR will potentially break the container at runtime since a module can be installed that is greater than it's cap.
I'm OK moving forward without this but wanted to note the reason I'm bringing this up in the first place.
Tested the updated
Dunno whether this is caused by the requirements update or code that's in the master branch. |
You're using Elyra from master but not the same for kfp-notebook. As a result, one of the recent changes to both packages is not getting recognized by the older kfp-notebook. |
Just a formality but the following Docker images need to be part of the PR delivery:
|
Well @ptitzler, officially |
Ah. yes, you are right. I figured because 1.1.0 was not that useful we might as well replace it, but that might open up a can of worms. So this could be shipped as 1.1.1 or delivered as part of 1.2.
|
This change will allow uses to specify at build time, whether to update their transient python dependencies with an 'eager' strategy
@akchinSTC @kevin-bates using the updated pr with
So I guess we are back on the |
The UPGRADE_STRATEGY change wasn't correct. I've suggested the changes above. @ajbozarth submitted a PR to papermill that adds a sufficient floor to @lresende - I didn't understand your 'revert' commit since it only addressed the addition of |
@lresende -pushed changes. I thought we wanted a way to configure the update strategy at build time so that we could switch it back and forth. |
I see. We may want that someday but there's nothing indicating we'd need that. This "strategy" approach was purely a means of re-using what we already list in our setup.py rather than duplicate modules - as was the original update in the PR. If we include the I'm curious why you removed the |
the whole thing with the panda discussion is that it's not related to this and is in |
If you are asking whether I tested the Docker images with the example pipelines then yes, I did. The examples are what I tend to use for smoke testing and what I was referring to in my earlier comment "Both, local pipeline execution and pipeline execution on kfp, must succeed to pass the readiness test." |
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.
Looks good Luciano - thank you.
Some papermill transient dependencies are not properly declared and require a manual install/update to avoid runtime issues. Co-authored-by: Alan Chin <akchin@us.ibm.com>
Some papermill transient dependencies are not properly
declared and require a manual install/update to avoid
runtime issues.
Fixes #920
Developer's Certificate of Origin 1.1