Skip to content
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

JupyterHub: update jupyterhub component default version to 5.2.1 #493

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

mishaschwartz
Copy link
Collaborator

Overview

This implements all changes between JupyterHub version
4.1.6 and 5.2.1.

This update requires the following manual upgrade steps:

  • If your local environment file sets the c.DockerSpawner.image_whitelist config option in the
    JUPYTERHUB_ENABLE_MULTI_NOTEBOOKS environnment variable. Change c.DockerSpawner.image_whitelist
    to c.DockerSpawner.allowed_images.
  • Update the jupyterhub database with the following command after you have started up the stack:
    birdhouse compose exec jupyterhub jupyterhub upgrade-db
    
    You can also simply delete the jupyterhub_data_persistence volume if you're not storing any custom
    information there and if you haven't manually set c.Authenticator.allow_all to False (ensure that
    the stack is stopped and all jupyterlab containers have been stopped and removed first).

If you have changed any of the default jupyterhub settings you may need to consult the JupyterHub upgrade guide to see if any of those settings have been changed.

Changes

Non-breaking changes

  • New component version jupyterhub:5.2.1-20241114

Breaking changes

Related Issue / Discussion

Additional Information

CI Operations

birdhouse_daccs_configs_branch: master
birdhouse_skip_ci: false

@github-actions github-actions bot added component/jupyterhub Related to JupyterHub as development frontend with notebooks documentation Improvements or additions to documentation labels Jan 20, 2025
Copy link
Collaborator

@fmigneault fmigneault left a comment

Choose a reason for hiding this comment

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

The changelog should describe that changing to this version can break everything depending on the OS the server is running on, since the whole Jenkins CI fiasco originates from this.

Link to Ouranosinc/PAVICS-e2e-workflow-tests#137

It is not necessarily a seamless change.

Comment on lines 225 to +228
c.Authenticator.blacklist = blocked_users # v0.9+
c.Authenticator.blocked_users = blocked_users # v1.2+

c.Authenticator.allow_all = True # v5.0+
Copy link
Collaborator

Choose a reason for hiding this comment

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

This combination is extremely confusing and prone to misinterpretation.
Please provide the doc reference and some comment.

https://jupyterhub.readthedocs.io/en/latest/reference/api/auth.html#jupyterhub.auth.Authenticator.allow_all

Even after reading the doc details, it feels config to "allow all" after an explicit set of blocked users.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is to maintain the previous behaviour which is what is mentioned a few times both in the link you provided and the upgrade guide (https://jupyterhub.readthedocs.io/en/latest/howto/upgrading-v5.html#authenticator-allow-all-and-allow-existing-users).

We use Magpie as the source of truth for who our users are so we do not want jupyterhub to filter/block those users further.

Can you clarify what the confusion is please? That would help me draft a better comment to help.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Just curious, I vaguely remember in Magpie, there was a way to only allow Jupyterhub login to some subset of users (using group membership) so not all authenticated users are automatically granted Jupyterhub access. Is that true or I am just imagining things?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes that is possible. But again, that's using Magpie for the source of truth. This is just saying that any user that can authenticate should be allowed.

This is the current behaviour, the configuration changes for JupyterHub just means that we have to be explicit about it now.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I agree with all mentioned points.

It is potentially confusing for new users since the Magpie auth is not that obvious from that place (c.MagpieAuthenticator is not the same base as c.Authenticator, so it's a stretch to figure out they work together, not to say it is way higher in the config).

Also, reading c.Authenticator.blocked_users followed by c.Authenticator.allow_all immediately raised a "hold on, what, why?" flag for me. I had to deep-dive into Jupyterhub docs to (partially) understand their convoluted management of pre/post user-login and accessible operations. The naming of the parameters are not intuitive. "Allow all" in the context of auth would be understood by pretty much anyone as open access, but "access all [what]" (users, resources, actions, notebooks, all-of-the-above) is not obvious.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Allow all" in the context of auth would be understood by pretty much anyone as open access

But we are not the one controlling and choosing the naming. Adding more documentation comments to help the reader?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Exactly. This is why I ask for comments to mitigate the bad naming misinterpretation.

CHANGES.md Outdated Show resolved Hide resolved
@mishaschwartz mishaschwartz changed the title JupyterHub: update jupyterhub component default version to [5.2.1](https://github.com/Ouranosinc/jupyterhub/releases/tag/5.2.1-20241114) JupyterHub: update jupyterhub component default version to 5.2.1 Jan 21, 2025
Copy link
Collaborator

@tlvu tlvu left a comment

Choose a reason for hiding this comment

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

I'd like the breaking not backward compatible change standout much better in the changelog.

Also given this is a major version upgrade, could you also refresh this file https://github.com/bird-house/birdhouse-deploy/blob/master/birdhouse/components/jupyterhub/jupyterhub_config.py.original_generated by using jupyterhub --generate-config -f /jupyterhub_config.py.original_generated.

CHANGES.md Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
@tlvu
Copy link
Collaborator

tlvu commented Jan 21, 2025

The changelog should describe that changing to this version can break everything depending on the OS the server is running on, since the whole Jenkins CI fiasco originates from this.

@fmigneault You are confusing the Jupyter env running, which breaks recently, and this one, which is JupyterHub, which only launch and manage the runtime. I don't think the previous fiasco will happen again here.

That said, for me this is still a backward-incompatible change since the sys admin has to manually alter this env.local for the c.DockerSpawner.allowed_images rename.

@mishaschwartz
Copy link
Collaborator Author

Also given this is a major version upgrade, could you also refresh this file https://github.com/bird-house/birdhouse-deploy/blob/master/birdhouse/components/jupyterhub/jupyterhub_config.py.original_generated by using jupyterhub --generate-config -f /jupyterhub_config.py.original_generated.

Why do we need to keep a copy of this in our source code? Why not just add a comment with a link to the documentation like we do everywhere else?

https://jupyterhub.readthedocs.io/en/5.2.1/reference/config-reference.html#jupyterhub-configuration

@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3037/
ResultFAILURE

BIRDHOUSE_DEPLOY_BRANCH : upgrade-jupyterhub-v5
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH :
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-91.rdext.crim.ca

PAVICS-e2e-workflow-tests Pipeline Results

Tests URL : http://daccs-jenkins.crim.ca:80/job/PAVICS-e2e-workflow-tests/job/master/1750/

NOTEBOOK TEST RESULTS
    
[2025-01-21T18:42:59.597Z] �[1m============================= test session starts ==============================�[0m
[2025-01-21T18:42:59.597Z] platform linux -- Python 3.11.10, pytest-8.3.3, pluggy-1.5.0
[2025-01-21T18:42:59.597Z] rootdir: /home/jenkins/agent/workspace/PAVICS-e2e-workflow-tests_master/finch-master
[2025-01-21T18:42:59.597Z] configfile: pyproject.toml
[2025-01-21T18:42:59.597Z] plugins: anyio-4.6.2.post1, dash-2.18.1, nbval-0.11.0, tornasync-0.6.0.post2, xdist-3.6.1
[2025-01-21T18:42:59.597Z] collected 302 items
[2025-01-21T18:42:59.597Z] 
[2025-01-21T18:42:59.597Z] finch-master Fatal Python error: Aborted
[2025-01-21T18:42:59.597Z] 
[2025-01-21T18:42:59.597Z] Current thread 0x00007fbd48c2e500 (most recent call first):
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/zmq/sugar/socket.py", line 156 in __init__
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/zmq/sugar/context.py", line 354 in socket
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/jupyter_client/connect.py", line 658 in _create_connected_socket
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/jupyter_client/manager.py", line 323 in _connect_control_socket
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/jupyter_client/manager.py", line 371 in _async_post_start_kernel
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/asyncio/tasks.py", line 277 in __step
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/asyncio/events.py", line 84 in _run
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/nest_asyncio.py", line 133 in _run_once
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/nest_asyncio.py", line 92 in run_until_complete
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/jupyter_client/utils.py", line 27 in wrapped
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/jupyter_client/manager.py", line 396 in _async_start_kernel
[2025-01-21T18:42:59.597Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/jupyter_client/manager.py", line 82 in wrapper
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/asyncio/tasks.py", line 277 in __step
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/asyncio/events.py", line 84 in _run
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/nest_asyncio.py", line 133 in _run_once
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/nest_asyncio.py", line 92 in run_until_complete
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/jupyter_client/utils.py", line 27 in wrapped
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/nbval/kernel.py", line 53 in start_new_kernel
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/nbval/kernel.py", line 85 in __init__
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/nbval/plugin.py", line 264 in setup
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/runner.py", line 514 in setup
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/runner.py", line 160 in pytest_runtest_setup
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_callers.py", line 103 in _multicall
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_manager.py", line 120 in _hookexec
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_hooks.py", line 513 in __call__
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/runner.py", line 242 in 
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/runner.py", line 341 in from_call
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/runner.py", line 241 in call_and_report
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/runner.py", line 126 in runtestprotocol
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/runner.py", line 113 in pytest_runtest_protocol
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_callers.py", line 103 in _multicall
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_manager.py", line 120 in _hookexec
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_hooks.py", line 513 in __call__
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/main.py", line 362 in pytest_runtestloop
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_callers.py", line 103 in _multicall
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_manager.py", line 120 in _hookexec
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_hooks.py", line 513 in __call__
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/main.py", line 337 in _main
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/main.py", line 283 in wrap_session
[2025-01-21T18:42:59.598Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/main.py", line 330 in pytest_cmdline_main
[2025-01-21T18:42:59.599Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_callers.py", line 103 in _multicall
[2025-01-21T18:42:59.599Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_manager.py", line 120 in _hookexec
[2025-01-21T18:42:59.599Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/pluggy/_hooks.py", line 513 in __call__
[2025-01-21T18:42:59.599Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/config/__init__.py", line 175 in main
[2025-01-21T18:42:59.599Z]   File "/opt/conda/envs/birdy/lib/python3.11/site-packages/_pytest/config/__init__.py", line 201 in console_main
[2025-01-21T18:42:59.599Z]   File "/opt/conda/envs/birdy/bin/py.test", line 10 in 
[2025-01-21T18:42:59.599Z] 
[2025-01-21T18:42:59.599Z] Extension modules: markupsafe._speedups, zmq.backend.cython._zmq, tornado.speedups, psutil._psutil_linux, psutil._psutil_posix, _brotli, zstandard.backend_c (total: 7)
[2025-01-21T18:43:00.170Z] Aborted (core dumped)
[2025-01-21T18:43:00.170Z] + EXIT_CODE=134
[2025-01-21T18:43:00.170Z] + echo false
[2025-01-21T18:43:00.170Z] + tr [:upper:] [:lower:]
[2025-01-21T18:43:00.170Z] + SAVE_RESULTING_NOTEBOOK=false
[2025-01-21T18:43:00.170Z] + [ xfalse = xtrue ]
[2025-01-21T18:43:00.170Z] + exit 134
[2025-01-21T18:43:00.170Z] + EXIT_CODE=134
[2025-01-21T18:43:00.170Z] + ENV_DUMP_DIR=buildout/env-dump
[2025-01-21T18:43:00.170Z] + mkdir -p buildout/env-dump
[2025-01-21T18:43:00.170Z] + ENV_EXPORT_FILE=buildout/env-dump/environment-export-birdy.yml
[2025-01-21T18:43:00.170Z] + rm -fv buildout/env-dump/environment-export-birdy.yml
[2025-01-21T18:43:00.170Z] + conda env export -n birdy
[2025-01-21T18:43:32.286Z] + LIST_EXPLICIT_FILE=buildout/env-dump/conda-list-explicit-birdy.txt
[2025-01-21T18:43:32.286Z] + rm -fv buildout/env-dump/conda-list-explicit-birdy.txt
[2025-01-21T18:43:32.286Z] + conda list -n birdy --explicit
[2025-01-21T18:43:34.821Z] + PIP_FREEZE_FILE=buildout/env-dump/pip-freeze-birdy-requirements.txt
[2025-01-21T18:43:34.821Z] + rm -fv buildout/env-dump/pip-freeze-birdy-requirements.txt
[2025-01-21T18:43:34.821Z] + pip freeze
[2025-01-21T18:43:47.072Z] + exit 134
�[8mha:////4ItaOhsIRFfcNciVdA3A5uvEe7JeZm9hBtUZEY4X9BpjAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIi0SCEqNJabniBiY1xYt0Z2yGpeBFf4w8EIlGxxWpnm3m+YJkiHDlabA11jlLjMPjeTgsHjt3F84Atn7FhSuwNSjNI1qaeUXI2MKcoYSFgZajxnBzZDGvRqruqvCJbnXKcvoOA0ukbPKAQkzmrmL8wRthce52Yfp6/AhhDyFBu95/avQGMKkS1vgAAAA==�[0m[Pipeline] }
�[8mha:////4Aio6UelSH6cmkJHznIJktbtMlo1XW0Qqw/RvIKKjzc1AAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOKCQKJBqWgtN7zAJMY4se6C7eBUvIiv8QcsIlGxxWpnm3m9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKZhiFDut7l2hw9mQDtDvgAAAA==�[0m[Pipeline] // withCredentials
�[8mha:////4FQEhWYsKsWgvD3Y8RE20WPjUSxuhfFY+TD3rc1qM7IiAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiQFQoFa3lhheYxBgn1l2wHZyKF/E1/oBFJCq2WO1sM683LIOHmr3BTlNvKTQWBzeavDCx76+OE3Z8wYYpsNModZLc6tOMkqOGOUUJCwErTY3jYMlEWItOPVTlFJnqHH3+jgJK297hCYXI5qh8/MLkYXMb28D08/wVwDQMEcr9Ntfu8AF5wm4RvgAAAA==�[0m[Pipeline] }
�[8mha:////4KNTodaWsetSNNWqE//y+IOyoGMxsdvVSBLk6WKj+MzbAAAApB+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiBTpEldZKwwtMbIwT687YDknFi/gaf8AiEhVbrHa2mdcb1jHAiYPBXtNgKXYWvRtNXjhxGK6OJ+z5gh1TZKex1VPLSjcLtpw0LClKWAnYaOocR0smwVb08iErJ8lU5xTydxRQWnWHJxQim5MM6QtzgN1tVJHp5/krgNn7BOW+zlUfPkGA/eC+AAAA�[0m[Pipeline] // script
�[8mha:////4KR6tQZJrWFxN0vyZP8vuQmvK2rFt9tOj0oriz2EfOnHAAAApB+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPMKRSImoaC03vMAkh3Fi3Rnbwal4EV/jD1hEomKL1c4283rDOgY4cjBiQBotxc4K7yZTlsgcxqvjLAa+iI4pskOhMCvu8bSg4oSwpKphJWGD1DmOlkyCrRz0QzdOk2nOKZTvIKG2/R2eUMliTjqkL8wBdrepj0w/z18BzN4nqNu21L79AEfGxbW+AAAA�[0m[Pipeline] }
�[8mha:////4F01XPIVLu7JBIaS3rjBN4HkNuOk+B1MGW9P2m5t4llYAAAApB+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiBTpEldZKwwtMbIwT687YDknFi/gaf8AiEhVbrHa2mdcb1jHAiYPBXtNgKXYWvRtNXjhxGK6OJ+z5gh1TZKex1VPLSjcLtpw0LClKWAnYaOocR0smwVb08iErJ8lU5xTydxRQWnWHJxQim5MM6QtzgN1tVJHp5/krgNn7BOX+kKuuP2nGx9++AAAA�[0m[Pipeline] // stage
�[8mha:////4DuQWrwdSKxqd4Ws+o38dPis/OkEWi6lu/G6AZs3CpBnAAAAqB+LCAAAAAAAAP9tjTEOwjAUQ3+LOrAycohUgJhQJ9aoCycITQhJo/9LkpJOnIircQcClZjwYNmWrPd8QRU8NOQ1swp7g6EzbHCjzokl8v3FUWKWzqwjDOQUa1VqSarjXFuKCmYVJSw4LBV2joJBHWHFrbiL2gnU9Sn6vB04lEbe4AEFz+QofPyWycP6OspA+OP8BcA0RCi3m2y7/edZvQEO/65mwgAAAA==�[0m[Pipeline] stage
�[8mha:////4N4We8ek5/h9OvNnQ1lyXKfM0ybgoVYvsT4MDoMzUNyTAAAApx+LCAAAAAAAAP9tjTEOwjAUQ3+LOrAycoh0QLAgpq5RFk4QmhDSRv+Xn5R24kRcjTvQUokJD5ZtyXqvNxSR4UTsRGOx9RhrL7rQuymJgbi9BhpEQxdRE0YKVig7KDK2WqqiZGFRlsNKwtpiHSh6dAk2stEPXQaNrjwnnrajhNybOzwhkxM5aU7fMjJsb72JhD/OXwCMXYJ8t5/tMD+LD02yRsvCAAAA�[0m[Pipeline] { (Declarative: Post Actions)
�[8mha:////4NSN38fl2W391nE1GYw8ukcOn4eLq1zoMVEI1VLYRceiAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOJSIEGBqNJabniBiY1xYt0Z2yGpeBFf4w8EIlGxxWpnm3m+YJkiHDlabA11jlLjMPjeTgsHjt3F84Atn7FhSuwNSjNI1qaeUXI2MKcoYSFgZajxnBzZDGvRqruqvCJbnXKcvoOA0ukbPKAQkzmrmL8wRthce52Yfp6/AhhDhnK7+9Q+vAF9GxrMvgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:47.759Z] Archiving artifacts
[2025-01-21T18:43:47.804Z] Recording fingerprints
�[8mha:////4ILGmJge/9XDdI8sXXOB4l4xNVkY2uXECYRIerEjIw8oAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOJSICEkRJXWcsMLTGyME+vO2A5JxYv4Gn8gEImKLVY728zzBcsU4cjRYmuoc5Qah8H3dlo4cOwungds+YwNU2JvUJpBsjb1jJKzgTlFCQsBK0ON5+TIZliLVt1V5RXZ6pTj9B0ElE7f4AGFmMxZxfyFMcLm2uvE9PP8FcAYMpTb3af24Q2yB4JLvgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:47.899Z] Archiving artifacts
[2025-01-21T18:43:48.429Z] Recording fingerprints
�[8mha:////4IF5gHMW7IfqA28qOW3Ob2IYZOQWeHvBLJTakZpvnp51AAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOJSICEhRJXWcsMLTGyME+vO2A5JxYv4Gn8gEImKLVY728zzBcsU4cjRYmuoc5Qah8H3dlo4cOwungds+YwNU2JvUJpBsjb1jJKzgTlFCQsBK0ON5+TIZliLVt1V5RXZ6pTj9B0ElE7f4AGFmMxZxfyFMcLm2uvE9PP8FcAYMpTb3af24Q3zNplSvgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:48.691Z] Archiving artifacts
[2025-01-21T18:43:48.724Z] Recording fingerprints
�[8mha:////4MwiYGSbSZDrDt6rb7AjDZgJrIpoAZj8jdfzkkZu3Y6TAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOKCBKJBqWgtN7zAJMY4se6C7eBUvIiv8QcsIlGxxWpnm3m9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKYhQrk75Npvhw8/mxSGvgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:48.775Z] Archiving artifacts
[2025-01-21T18:43:48.814Z] Recording fingerprints
�[8mha:////4ChQU0L8b7yzNBK4Qecbahzv6Fki7OHgcCGOzh+FMG2nAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiBKJBqWgtN7zAJMY4se6C7eBUvIiv8QcsIlGxxWpnm3m9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKYhQrk75Npvhw9+qg+fvgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:48.907Z] Archiving artifacts
[2025-01-21T18:43:48.954Z] Recording fingerprints
�[8mha:////4COiEyXTFMQ9+Rm5mJN/AGgyv2+rMMUSUIOmHsB3w2J+AAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiAaJBqWgtN7zAJMY4se6C7eBUvIiv8QcsIlGxxWpnm3m9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKYhQrk75Npvhw+9+SK0vgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:49.036Z] Archiving artifacts
[2025-01-21T18:43:49.099Z] Recording fingerprints
�[8mha:////4J3gLKSOu0/gozlxvjLGfIzNL6Pbiuk1VK63hpZd8S9zAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOJSBNEgqrRWGl5gYmOcWHfGdkgqXsTX+AMWkajYYrWzzbzesI4BThwM9poGS7Gz6N1o8sKJw3B1PGHPF+yYIjuNrZ5aVrpZsOWkYUlRwkrARlPnOFoyCbailw9ZOUmmOqeQv6OA0qo7PKEQ2ZxkSF+YA+xuo4pMP89fAcw+QVkfcu1r/wH8yDmtvgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:49.914Z] Archiving artifacts
[2025-01-21T18:43:49.944Z] Recording fingerprints
�[8mha:////4G5uIRbkJeaig52MLfD9xv8Nb7kfLaqFinRw+RlJonU2AAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPMIpiGgQVVorDS8w8WGcWHfGdkgqXsTX+AMWkajYYrWzzbzesI4BThyM6JEGS7GzwrvR5CUmDsPV8SR6voiOKbJD0eLUssZmwZYTwpKihJWEDVLnOFoyCbayVw9VOUWmOqeQv6OE0uo7PKGQ2ZxUSF+YA+xuo45MP89fAcw+Qbk/5Kpr/wE7XnjivgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:49.996Z] Archiving artifacts
[2025-01-21T18:43:50.075Z] Recording fingerprints
�[8mha:////4Mvo1BkYPEme5kaGYwfMPGdAn3h6z1MZTQvQAXQpd3AkAAAApR+LCAAAAAAAAP9tjTsOwjAQRDdBFLSUHGJT8GlQKlrLDScwiTFOrN1gOzgVJ+Jq3AGLSFRMMZo3zXu9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKYhQrk95Nrthw96b2P7vgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:50.194Z] Archiving artifacts
[2025-01-21T18:43:50.700Z] Recording fingerprints
�[8mha:////4BxJcu6Mhf32TKJrQUvGOWd3sHkWoOwAUOJvn78NS6VSAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOJSgNIgqrRWGl5gYmOcWHfGdkgqXsTX+AMWkajYYrWzzbzesI4BThwM9poGS7Gz6N1o8sKJw3B1PGHPF+yYIjuNrZ5aVrpZsOWkYUlRwkrARlPnOFoyCbailw9ZOUmmOqeQv6OA0qo7PKEQ2ZxkSF+YA+xuo4pMP89fAcw+Qbmvcx1q/wG5PE7QvgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:50.853Z] Archiving artifacts
�[8mha:////4GO1B9xqDMc3Y88TWfU6Yi2kkOsY1jMmzauCbLhAJwyKAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOJSgKBAqWgtN7zAJMY4se6C7eBUvIiv8QcsIlGxxWpnm3m9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKYhQrnd59odhg/4DVXJvgAAAA==�[0m[Pipeline] archiveArtifacts
[2025-01-21T18:43:50.920Z] Archiving artifacts
[2025-01-21T18:43:50.964Z] Recording fingerprints
�[8mha:////4NPt9oC5FBsaixMpbG2Vgr+pYl8XGjukBsva8CWoEC0LAAAAph+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOJSgBASSkVrueEFJjHGiXUXbAen4kV8jT9gEYmKLVY728zrDcvgoWZvsNPUWwqNxcGNJi9M7Pur44QdX7BhCuw0Sp0kt/o0o+SoYU5RwkLASlPjOFgyEdaiUw9VOUWmOkefv6OA0rZ3eEIhsjkqH78wedjcxjYw/Tx/BTANEcrtPtfuMHwANxHNTr4AAAA=�[0m[Pipeline] emailextrecipients
�[8mha:////4JBwrFm/0BDxJd28CTylmcE02xhjnDQaki1Jq/4AEW2eAAAAph+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOJSgJAQSkVrueEFJjHGiXUXbAen4kV8jT9gEYmKLVY728zrDcvgoWZvsNPUWwqNxcGNJi9M7Pur44QdX7BhCuw0Sp0kt/o0o+SoYU5RwkLASlPjOFgyEdaiUw9VOUWmOkefv6OA0rZ3eEIhsjkqH78wedjcxjYw/Tx/BTANEcrtPtfuMHwAdiDWV74AAAA=�[0m[Pipeline] step
[2025-01-21T18:43:51.131Z] An attempt to send an e-mail to empty list of recipients, ignored.
�[8mha:////4KojkB8TKn7pKbfz2v9XOrtuJMHB5JjbAIzrHIHirXQOAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOKChKBBqWgtN7zAJMY4se6C7eBUvIiv8QcsIlGxxWpnm3m9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKZhiFDut7l2hw8dRPA5vgAAAA==�[0m[Pipeline] }
�[8mha:////4FScbrhKv8Si2MklnVibpA4A1BxVHfhbvTRVuDRpDSaUAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIihFIhqrRWGl5gYmOcWHfGdkgqXsTX+AMWkajYYrWzzbzesI4BThwM9poGS7Gz6N1o8sKJw3B1PGHPF+yYIjuNrZ5aVrpZsOWkYUlRwkrARlPnOFoyCbailw9ZOUmmOqeQv6OA0qo7PKEQ2ZxkSF+YA+xuo4pMP89fAczeJyjrfa5D/QECxqVrvgAAAA==�[0m[Pipeline] // stage
�[8mha:////4Fw6vIGI2xNAaETf5rX3RXhuvh/PDdAzPQzPyDrn4GsMAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPMIRkagQVVorDS8w8WGcWHfGdkgqXsTX+AMWkajYYrWzzbzesI4BThyM6JEGS7GzwrvR5CUmDsPV8SR6voiOKbJD0eLUssZmwZYTwpKihJWEDVLnOFoyCbayVw9VOUWmOqeQv6OE0uo7PKGQ2ZxUSF+YA+xuo45MP89fAczeJygPda56/wH0QUfzvgAAAA==�[0m[Pipeline] }
�[8mha:////4Gx8ZK4G7s3szfZjQe4yyQGDULl8r/MxuiCfHgkt+hhTAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOKCQFQoFa3lhheYxBgn1l2wHZyKF/E1/oBFJCq2WO1sM683LIOHmr3BTlNvKTQWBzeavDCx76+OE3Z8wYYpsNModZLc6tOMkqOGOUUJCwErTY3jYMlEWItOPVTlFJnqHH3+jgJK297hCYXI5qh8/MLkYXMb28D08/wVwDQMEcrDPtdu+wHHohxPvgAAAA==�[0m[Pipeline] // timeout
�[8mha:////4Dr1Bd9XnpD7W4ukUv4MR2OdYWV2WSasrALHdGy56iWmAAAAph+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiJCgQSkVrueEFJjHGiXUXbAen4kV8jT9gEYmKLVY728zrDcvgoWZvsNPUWwqNxcGNJi9M7Pur44QdX7BhCuw0Sp0kt/o0o+SoYU5RwkLASlPjOFgyEdaiUw9VOUWmOkefv6OA0rZ3eEIhsjkqH78wedjcxjYw/Tx/BTANQ4Ryv8u1PXwAGHnoAL4AAAA=�[0m[Pipeline] }
�[8mha:////4EQfO6o7JkCpkeoEdltFIcIqnCpHTJVKIJJ6lUtPuw+wAAAAph+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPMIRRSQkRJXWSsMLTHwYJ9adsR2SihfxNf6ARSQqtljtbDOvN6xjgBMHI3qkwVLsrPBuNHmJicNwdTyJni+iY4rsULQ4tayxWbDlhLCkKGElYYPUOY6WTIKt7NVDVU6Rqc4p5O8oobT6Dk8oZDYnFdIX5gC726gj08/zVwCz9wnKus61P3wAK5qzvL4AAAA=�[0m[Pipeline] // timestamps
�[8mha:////4DaXclT9PDXKywCC8y0Reoo4mYsWVA5/co48+DE0wAP9AAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiCqBAqWgtN7zAJMY4se6C7eBUvIiv8QcsIlGxxWpnm3m9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKZhiFDu9rm2hw8U9ZiqvgAAAA==�[0m[Pipeline] }
�[8mha:////4Nnkfn4SCTe+UBuDyz0jdw3+Q3v2riQYoO/MtmvBXUR5AAAAqx+LCAAAAAAAAP9b85aBtbiIQSujNKU4P0+vIKc0PTOvWC8xrzgzOT8nv0gvMbkkEyjhCKb88ktSdwVsu2efuqidiYHRh4EDIu2ZUsIg5JOVWJaon5OYl64fXFKUmZduXVHEIAU1ODk/rzg/J1XPGUKDDGKAAEYmBoaKghIGFWMTg2SztNRU3cS0VAtdE3MjS91Es8QUXRMjU0szY+NUYwtTcwA1TyFBrwAAAA==�[0m
�[8mha:////4OvVjBUfHjGh+usvQ124ua0x4itVhM/lWD3Qk7cNzI1jAAAApR+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiCqBAqWgtN7zAJMY4se6C7eBUvIiv8QcsIlGxxWpnm3m9YRk81OwNdpp6S6GxOLjR5IWJfX91nLDjCzZMgZ1GqZPkVp9mlBw1zClKWAhYaWocB0smwlp06qEqp8hU5+jzdxRQ2vYOTyhENkfl4xcmD5vb2Aamn+evAKZhiFDuDrm2+w8nFsMWvgAAAA==�[0m[Pipeline] // ansiColor
�[8mha:////4KLU+6Z1ffGhQMfDsCrAppAB96nkob77cEvF/QNY2LT0AAAAph+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPMIRRSQkRJXWSsMLTHwYJ9adsR2SihfxNf6ARSQqtljtbDOvN6xjgBMHI3qkwVLsrPBuNHmJicNwdTyJni+iY4rsULQ4tayxWbDlhLCkKGElYYPUOY6WTIKt7NVDVU6Rqc4p5O8oobT6Dk8oZDYnFdIX5gC726gj08/zVwCz9wnK+pBrX38ASPWcfr4AAAA=�[0m[Pipeline] }
$ docker stop --time=1 c9fc2da6298206ae35d5464b31dd9af9d9ca4ef0d314073a8ff7927a7761ebb4
$ docker rm -f c9fc2da6298206ae35d5464b31dd9af9d9ca4ef0d314073a8ff7927a7761ebb4
�[8mha:////4AIFJhuGUX/Uty8x99a5AywAvS9PE7zs7wekaYpXupFnAAAAph+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPOIiJCgQSkVrueEFJjHGiXUXbAen4kV8jT9gEYmKLVY728zrDcvgoWZvsNPUWwqNxcGNJi9M7Pur44QdX7BhCuw0Sp0kt/o0o+SoYU5RwkLASlPjOFgyEdaiUw9VOUWmOkefv6OA0rZ3eEIhsjkqH78wedjcxjYw/Tx/BTANQ4Ryf8i13X0AexbHwr4AAAA=�[0m[Pipeline] // withDockerContainer
�[8mha:////4Pi9XiC/IW6ldszwhEFPEofb43Ju6A5sNVsYOyfhy4LKAAAApB+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPMIhDQ2iSmul4QUmPowT687YDknFi/gaf8AiEhVbrHa2mdcb1jHAiYMRPdJgKXZWeDeavMTEYbg6nkTPF9ExRXYoWpxa1tgs2HJCWFKUsJKwQeocR0smwVb26qEqp8hU5xTyd5RQWn2HJxQym5MK6QtzgN1t1JHp5/krgNn7BOVhn6uuP6GpSqS+AAAA�[0m[Pipeline] }
�[8mha:////4JnjGFeippPettZx1BoF2QESywYuXDPhgPvND/+094JdAAAApB+LCAAAAAAAAP9tjTEOwjAQBC9BFLSUPMIhDQ2iSmul4QUmPowT687YDknFi/gaf8AiEhVbrHa2mdcb1jHAiYMRPdJgKXZWeDeavMTEYbg6nkTPF9ExRXYoWpxa1tgs2HJCWFKUsJKwQeocR0smwVb26qEqp8hU5xTyd5RQWn2HJxQym5MK6QtzgN1t1JHp5/krgNn7BOWhzlXvP5JKERi+AAAA�[0m[Pipeline] // withEnv
�[8mha:////4H6iMnIYjumu76MMuA9fPoCq/vMVTYeeBr/m1bYoU32PAAAApB+LCAAAAAAAAP9tjTEOwjAQBDdBFLSUPMKREKJBVLRWGl5gEmOcWHfBvpBUvIiv8QciIlGx1c4083pjmSKOHJ1qLLWeUuVVF3o3PTVwbK+BB9XwRVVMiYNVpR1Kru1pxpLFYl6WY6GxslQFTp6cYK0b8zBFMOSKs8TJHTRyX9/xRKanspgoXxgjNre+Tky/zt8Axq4T5PutINt9AF1IgLW9AAAA�[0m[Pipeline] }
�[8mha:////4OI4KkmzI8k/JgzG2qbaQXde9QSao2WpKFAcpcxTCG5sAAAAox+LCAAAAAAAAP9tjbEOgjAURS8YB1dHP6IMJC7GybVh8Qsq1Fpo3sP2IUx+kb/mP0gkcfJO95zlvN5Yp4gjR6daS52nVHvVh8HNT40cu2vgUbV8UTVT4mBVZceKG3tasGKxWJblWGlsLNWBkycn2OrWPEwRDLniLHF2B43cN3c8kem5LCbKF6aI3W1oEtOv8zeAqe8F+b4UZOUHTvSEFr0AAAA=�[0m[Pipeline] // node
�[8mha:////4PNM6dqYnbJycYQsgBeaYSGVlaYAXkcEjqCxpB59pS4vAAAApB+LCAAAAAAAAP9tjTEOwjAQBDdBFLSUPMKREKJBVLRWGl5gEmOcWHfBvpBUvIiv8QciIlGx1c4083pjmSKOHJ1qLLWeUuVVF3o3PTVwbK+BB9XwRVVMiYNVpR1Kru1pxpLFYl6WY6GxslQFTp6cYK0b8zBFMOSKs8TJHTRyX9/xRKanspgoXxgjNre+Tky/zt8Axq4T5PudINt+AMgYo9O9AAAA�[0m[Pipeline] End of Pipeline
ERROR: script returned exit code 134
Finished: FAILURE
    
  

@tlvu
Copy link
Collaborator

tlvu commented Jan 21, 2025

Also given this is a major version upgrade, could you also refresh this file https://github.com/bird-house/birdhouse-deploy/blob/master/birdhouse/components/jupyterhub/jupyterhub_config.py.original_generated by using jupyterhub --generate-config -f /jupyterhub_config.py.original_generated.

Why do we need to keep a copy of this in our source code? Why not just add a comment with a link to the documentation like we do everywhere else?

https://jupyterhub.readthedocs.io/en/5.2.1/reference/config-reference.html#jupyterhub-configuration

Ah true, I got to explain the reasoning: to have a nice diff of what changed directly in our code. If just for reference, then yes a link is fine. But the reason for the commit is to have the diff. Things like c.DockerSpawner.allowed_images rename would be caught even if one forgot to read the upgrade doc.

@mishaschwartz
Copy link
Collaborator Author

But the reason for the commit is to have the diff.

So do you want the settings in jupyterhub_config.py.original_generated to be in the same order as jupyterhub_config.py.template?

Otherwise a diff between these two files won't be very useful

@fmigneault
Copy link
Collaborator

@mishaschwartz @tlvu
We are about to deploy a new DACCS-Jenkins CI that successfully ran against the current master branch.
#493 (comment) might switch to a running state and bring back test results soon.

@fmigneault
Copy link
Collaborator

fmigneault commented Jan 21, 2025

Given that the jupyter version can be overridden, the original config that got generated a while ago might not even but up to date with latest definitions as well. I'm in favor to drop it since it doesn't add relevant information, which can be retrieved by commits anyway if need be.

@fmigneault
Copy link
Collaborator

run tests

@tlvu
Copy link
Collaborator

tlvu commented Jan 21, 2025

But the reason for the commit is to have the diff.

So do you want the settings in jupyterhub_config.py.original_generated to be in the same order as jupyterhub_config.py.template?

Otherwise a diff between these two files won't be very useful

Sorry I meant a diff of jupyterhub_config.py.original_generated with itself.

Given that the jupyter version can be overridden, the original config that got generated a while ago might not even but up to date with latest definitions as well.

Same could be said for the actual config. We can override the Jupyter image version but it still has to be compatible with the config in jupyterhub_config.py.template. I see the override capabilities as a way to easily test newer version but the person doing this is responsible to ensure all the newer version is compatible with the config.

I'm in favor to drop it since it doesn't add relevant information, which can be retrieved by commits anyway if need be.

Open to change that to a commit if shows cleanly and easily the diff to the configs with each version. Otherwise, it's more direct and visual to see the original config change, then our "adaptation" to follow it, all in the same PR.

@tlvu
Copy link
Collaborator

tlvu commented Jan 21, 2025

@mishaschwartz @tlvu We are about to deploy a new DACCS-Jenkins CI that successfully ran against the current master branch. #493 (comment) might switch to a running state and bring back test results soon.

This is fantastic. Will you preserve the previous login for each of us to go check the full build logs and to be able to manually launch some builds? Same hostname as before?

@fmigneault
Copy link
Collaborator

fmigneault commented Jan 22, 2025

@tlvu

Will you preserve the previous login for each of us to go check the full build logs and to be able to manually launch some builds? Same hostname as before?

Same hostname. It's already migrated.

Users are not yet migrated, but we are aware of it and planing to address it (@perronld FYI)

There are still some errors happening that we must investigate, such as the report not commented automatically on this PR, and some weird partial test outputs.

This is the results we got from #493 (comment) so far:

21:58:51  + py.test --nbval notebooks-auth/geoserver.ipynb notebooks-auth/test_cowbird_jupyter.ipynb notebooks-auth/test_thredds.ipynb pavics-sdi-master/docs/source/notebooks/CaSR_basic.ipynb pavics-sdi-master/docs/source/notebooks/WCS_example.ipynb pavics-sdi-master/docs/source/notebooks/WFS_example.ipynb pavics-sdi-master/docs/source/notebooks/climex.ipynb pavics-sdi-master/docs/source/notebooks/eccc-geoapi-climate-stations.ipynb pavics-sdi-master/docs/source/notebooks/eccc-geoapi-xclim.ipynb pavics-sdi-master/docs/source/notebooks/esgf-dap.ipynb pavics-sdi-master/docs/source/notebooks/forecasts.ipynb pavics-sdi-master/docs/source/notebooks/jupyter_extensions.ipynb pavics-sdi-master/docs/source/notebooks/opendap.ipynb pavics-sdi-master/docs/source/notebooks/pavics_thredds.ipynb pavics-sdi-master/docs/source/notebooks/regridding.ipynb pavics-sdi-master/docs/source/notebooks/rendering.ipynb pavics-sdi-master/docs/source/notebooks/subset-user-input.ipynb pavics-sdi-master/docs/source/notebooks/subsetting.ipynb pavics-sdi-master/docs/source/notebook-components/weaver_example.ipynb finch-master/docs/source/notebooks/dap_subset.ipynb finch-master/docs/source/notebooks/finch-usage.ipynb PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-1DataAccess.ipynb PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-2Subsetting.ipynb PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-3Climate-Indicators.ipynb PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-4Ensembles.ipynb PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-6Regridding_Conversion.ipynb PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-01_Intro.ipynb PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-02_Calibration.ipynb PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-03_Watershed_properties.ipynb PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-04_Time_series_analysis.ipynb notebooks/hummingbird.ipynb notebooks/stress-tests.ipynb --nbval-sanitize-with notebooks/output-sanitize.cfg --dist=loadscope --numprocesses=0
21:58:58  ============================= test session starts ==============================
21:58:58  platform linux -- Python 3.11.10, pytest-8.3.3, pluggy-1.5.0
21:58:58  rootdir: /home/jenkins/agent/workspace/PAVICS-e2e-workflow-tests_master/finch-master
21:58:58  configfile: pyproject.toml
21:58:58  plugins: anyio-4.6.2.post1, dash-2.18.1, nbval-0.11.0, tornasync-0.6.0.post2, xdist-3.6.1
21:58:58  collected 302 items
21:58:58  
22:02:32  finch-master ..........................F............FF..F............... [  5%]
22:17:00  F...F..F.......F.....................F...F..F........................... [  5%]
22:19:01  ...............................................F...........              [  9%]
22:19:10  finch-master/docs/source/notebooks/dap_subset.ipynb ...........          [ 12%]
22:19:19  finch-master/docs/source/notebooks/finch-usage.ipynb ......              [ 14%]

17:32:46  finch-master ..F....FFF.........F.....s.....F....FF...F....F........F... [ 14%]

17:35:21  ...........F..F.FF..................                                     [ 14%]
17:35:21  
17:35:21  =================================== FAILURES ===================================

@fmigneault
Copy link
Collaborator

fmigneault commented Jan 22, 2025

@tlvu
Well, tell me about that.

I'm investigating the weird partial output from pytest + nbval + xdist and landed on computationalmodelling/nbval#204 😅

Are you seeing a similar result to #493 (comment) on your end?

Our Jenkins logs clearly shows that all tests notebooks received the substitution to use the test instance URI, and the collected 302 items seems to hint all notebooks/cells are found, but I cannot figure out why only finch-master/dap_subset and finch-usage seems to be reported? Where are all the other lines that we usually get?

@perronld
Copy link

@tlvu @fmigneault
I just migrated the users... can you test if the passwords migrated as-is?

@crim-jenkins-bot
Copy link
Collaborator

test

@perronld
Copy link

test

Comments from Jenkins to github should now be fixed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/jupyterhub Related to JupyterHub as development frontend with notebooks documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants