Started by an SCM change
Obtained jenkins_tests/clubb_dash/Jenkinsfile from git https://github.com/larson-group/clubb.git
[Pipeline] Start of Pipeline
[Pipeline] node
Running on overlie in /home/jenkins/workspace/clubb_dash
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Checkout SCM)
[Pipeline] checkout
The recommended git tool is: git
DEPRECATED: The 'Wipe out repository & force clone' extension is deprecated for Pipeline jobs. Pipeline users should use the deleteDir() step instead.
Wiping out workspace first.
Cloning the remote Git repository
Cloning repository https://github.com/larson-group/clubb.git
> git init /home/jenkins/workspace/clubb_dash # timeout=10
Fetching upstream changes from https://github.com/larson-group/clubb.git
> git --version # timeout=10
> git --version # 'git version 2.43.0'
using GIT_ASKPASS to set credentials larsongroupsysadmin github token
> git fetch --tags --force --progress -- https://github.com/larson-group/clubb.git +refs/heads/*:refs/remotes/origin/* # timeout=10
Avoid second fetch
Checking out Revision 8369512fcc6487603491e12ac13376de2aec2a0b (refs/remotes/origin/master)
> git config remote.origin.url https://github.com/larson-group/clubb.git # timeout=10
> git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git config core.sparsecheckout # timeout=10
> git checkout -f 8369512fcc6487603491e12ac13376de2aec2a0b # timeout=10
Commit message: "Clubb params 1d to 2d fix (#1392)"
> git rev-list --no-walk ec5e8070d3173282a6317b067f8673a657a1eb6f # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Run Dash pytests)
[Pipeline] withEnv
[Pipeline] {
[Pipeline] sh
+ export PATH=/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ PATH=/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ node --version
v22.23.3
+ bash tests/run_pytests.sh -dash --junitxml=/home/jenkins/workspace/clubb_dash/output/tests/pytests/dash.xml --durations=10
Installing uv 0.11.32 in /home/jenkins/workspace/clubb_dash/.clubb-python-tools/bin
downloading uv 0.11.32 x86_64-unknown-linux-gnu
installing to /home/jenkins/workspace/clubb_dash/.clubb-python-tools/bin
uv
uvx
everything's installed!
Creating CLUBB virtualenv: /home/jenkins/workspace/clubb_dash/.venv-python
Using CPython 3.12.3 interpreter at: /usr/bin/python3.12
Creating virtual environment at: .venv-python
Activate with: source .venv-python/bin/activate
Installing dash requirements into /home/jenkins/workspace/clubb_dash/.venv-python
Using Python 3.12.3 environment at: .venv-python
Resolved 71 packages in 771ms
Downloading dash (7.6MiB)
Downloading scipy (33.7MiB)
Downloading plotly (9.5MiB)
Downloading numpy (16.0MiB)
Downloading pydantic-core (2.1MiB)
Downloading kiwisolver (1.4MiB)
Downloading cftime (1.6MiB)
Downloading pillow (6.6MiB)
Downloading cryptography (4.5MiB)
Downloading matplotlib (8.4MiB)
Downloading netcdf4 (10.1MiB)
Downloading pygments (1.2MiB)
Downloading meson (1.1MiB)
Downloading fonttools (5.2MiB)
Downloaded kiwisolver
Downloaded cftime
Downloaded pydantic-core
Downloaded meson
Downloaded pygments
Downloaded cryptography
Downloaded fonttools
Downloaded pillow
Downloaded dash
Downloaded netcdf4
Downloaded matplotlib
Downloaded plotly
Downloaded numpy
Downloaded scipy
Prepared 71 packages in 9.70s
Installed 71 packages in 135ms
+ annotated-types==0.8.0
+ anyio==4.15.1
+ attrs==26.1.0
+ blinker==1.9.0
+ certifi==2026.10.19
+ cffi==2.1.1
+ cftime==1.6.6.1
+ charset-normalizer==3.5.2
+ click==8.5.0
+ contourpy==1.4.0
+ cryptography==50.0.2
+ cycler==0.12.1
+ dash==3.4.0
+ dill==0.4.1
+ diskcache==5.6.3
+ flask==3.1.3
+ fonttools==4.67.0
+ h11==0.16.0
+ httpcore==1.0.9
+ httpx==0.28.1
+ httpx-sse==0.4.3
+ idna==3.20
+ importlib-metadata==9.0.1
+ iniconfig==2.3.1
+ itsdangerous==2.2.0
+ jinja2==3.1.6
+ jsonschema==4.26.0
+ jsonschema-specifications==2025.9.1
+ kiwisolver==1.5.1
+ markupsafe==3.0.4
+ matplotlib==3.10.9
+ mcp==1.30.0
+ meson==1.12.1
+ multiprocess==0.70.19
+ narwhals==2.27.1
+ nest-asyncio==1.6.0
+ netcdf4==1.7.5
+ ninja==1.13.2
+ numpy==2.5.4
+ packaging==26.3
+ pillow==12.3.0
+ plotly==6.9.0
+ pluggy==1.7.0
+ psutil==7.2.2
+ pycparser==3.11
+ pydantic==2.14.1
+ pydantic-core==2.50.1
+ pydantic-settings==2.16.0
+ pygments==2.21.0
+ pyjwt==2.15.1
+ pyparsing==3.3.3
+ pytest==9.1.1
+ python-dateutil==2.9.0.post0
+ python-dotenv==1.2.4
+ python-multipart==0.0.32
+ referencing==0.37.0
+ requests==2.34.2
+ retrying==1.4.2
+ rpds-py==2026.9.1
+ scipy==1.18.1
+ setuptools==84.2.0
+ six==1.17.0
+ sse-starlette==3.5.0
+ starlette==1.9.0
+ tabulate==0.10.0
+ typing-extensions==4.16.0
+ typing-inspection==0.4.4
+ urllib3==2.8.0
+ uvicorn==0.54.0
+ werkzeug==3.1.9
+ zipp==4.1.1
Ready: /home/jenkins/workspace/clubb_dash/.venv-python/bin/python
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-9.1.1, pluggy-1.7.0
rootdir: /home/jenkins/workspace/clubb_dash
plugins: dash-3.4.0, anyio-4.15.1
collected 552 items
dash_app/pytests/test_activity.py ......... [ 1%]
dash_app/pytests/test_agent_integration.py .............. [ 4%]
dash_app/pytests/test_agent_plot_actions.py ........ [ 5%]
dash_app/pytests/test_agent_services.py ................................ [ 11%]
................. [ 14%]
dash_app/pytests/test_agent_tab_registry.py ...... [ 15%]
dash_app/pytests/test_agent_tuning.py ............ [ 17%]
dash_app/pytests/test_analysis.py ..... [ 18%]
dash_app/pytests/test_app_startup.py .......... [ 20%]
dash_app/pytests/test_atlas.py . [ 20%]
dash_app/pytests/test_bivariate_heatmap.py .. [ 21%]
dash_app/pytests/test_callbacks_runs.py ............ [ 23%]
dash_app/pytests/test_compile_tab_build_status.py ................. [ 26%]
dash_app/pytests/test_custom_plot.py ........ [ 27%]
dash_app/pytests/test_dashboard_activity_labels.py . [ 27%]
dash_app/pytests/test_dashboard_lifecycle.py ... [ 28%]
dash_app/pytests/test_dashboard_manager.py ...... [ 29%]
dash_app/pytests/test_equations.py ... [ 30%]
dash_app/pytests/test_fill_holes_viewer.py .... [ 30%]
dash_app/pytests/test_jax_device.py ..................... [ 34%]
dash_app/pytests/test_mcp_endpoint.py ... [ 35%]
dash_app/pytests/test_misc_tab.py ... [ 35%]
dash_app/pytests/test_netcdf.py ...... [ 36%]
dash_app/pytests/test_output_directory_picker.py ...... [ 37%]
dash_app/pytests/test_output_discovery.py ....... [ 39%]
dash_app/pytests/test_pane_resize.py ... [ 39%]
dash_app/pytests/test_param_disclosures.py ........ [ 41%]
dash_app/pytests/test_pdf_contour_plot.py ...................... [ 45%]
dash_app/pytests/test_performance_polling.py ....... [ 46%]
dash_app/pytests/test_persistence.py .... [ 47%]
dash_app/pytests/test_plot_case_cache.py .......... [ 48%]
dash_app/pytests/test_plot_extraction.py ............................... [ 54%]
[ 54%]
dash_app/pytests/test_plot_grid_updates.py ..... [ 55%]
dash_app/pytests/test_plot_help.py ... [ 55%]
dash_app/pytests/test_plot_tasks.py .......... [ 57%]
dash_app/pytests/test_plot_transitions.py ............. [ 60%]
dash_app/pytests/test_profile_tab.py .............................. [ 65%]
dash_app/pytests/test_profiles.py ...... [ 66%]
dash_app/pytests/test_pyplotgen_export.py ...... [ 67%]
dash_app/pytests/test_pyplotgen_output_handler.py . [ 67%]
dash_app/pytests/test_reports_tab.py ....... [ 69%]
dash_app/pytests/test_run_broker_simplification.py ..................... [ 73%]
[ 73%]
dash_app/pytests/test_run_callbacks_settings.py .............. [ 75%]
dash_app/pytests/test_run_runtime.py .......... [ 77%]
dash_app/pytests/test_runtime.py .. [ 77%]
dash_app/pytests/test_runtime_logging.py ..... [ 78%]
dash_app/pytests/test_runtime_loss_batches.py . [ 78%]
dash_app/pytests/test_sam_3d_reference.py . [ 78%]
dash_app/pytests/test_scm_override.py ...... [ 80%]
dash_app/pytests/test_selected_build.py ..................... [ 83%]
dash_app/pytests/test_state_persistence.py ............. [ 86%]
dash_app/pytests/test_stats_selection.py ............................... [ 91%]
[ 91%]
dash_app/pytests/test_taylor_window_display.py ..... [ 92%]
dash_app/pytests/test_tunable_config_save.py ............... [ 95%]
dash_app/pytests/test_tune_callbacks_settings.py ............. [ 97%]
dash_app/pytests/test_tutorial_tab.py .. [ 98%]
dash_app/pytests/test_two_gaussian_model.py ...... [ 99%]
dash_app/pytests/test_workspace_selection.py .... [100%]
=============================== warnings summary ===============================
dash_app/pytests/test_plot_case_cache.py::test_hydration_keeps_saved_view_and_scans_once
/home/jenkins/workspace/clubb_dash/dash_app/plot_tab/case_definitions.py:35: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead
legacy_str = getattr(ast, "Str", None)
dash_app/pytests/test_plot_case_cache.py: 4120 warnings
/home/jenkins/workspace/clubb_dash/dash_app/plot_tab/case_definitions.py:36: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead
if legacy_str is not None and isinstance(node, legacy_str):
dash_app/pytests/test_plot_case_cache.py::test_hydration_keeps_saved_view_and_scans_once
/home/jenkins/workspace/clubb_dash/dash_app/plot_tab/case_definitions.py:39: DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead
legacy_num = getattr(ast, "Num", None)
dash_app/pytests/test_plot_case_cache.py: 4120 warnings
/home/jenkins/workspace/clubb_dash/dash_app/plot_tab/case_definitions.py:40: DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead
if legacy_num is not None and isinstance(node, legacy_num):
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
- generated xml file: /home/jenkins/workspace/clubb_dash/output/tests/pytests/dash.xml -
============================= slowest 10 durations =============================
1.52s call dash_app/pytests/test_plot_tasks.py::test_browser_updates_selection_immediately_and_ignores_stale_results
1.19s call dash_app/pytests/test_agent_services.py::test_mcp_stdio_discovery_and_structured_error_round_trip
0.99s call dash_app/pytests/test_agent_plot_actions.py::test_profile_png_renderer_writes_a_real_png
0.82s call dash_app/pytests/test_plot_case_cache.py::test_background_worker_snapshot_resolves_in_main_process
0.73s call dash_app/pytests/test_plot_tasks.py::test_real_worker_inspects_missing_directory_and_serializes_no_update
0.65s call dash_app/pytests/test_agent_services.py::test_mcp_exposes_closed_world_typed_tools_and_annotations
0.43s call dash_app/pytests/test_pdf_contour_plot.py::test_pdf_compare_mode_builds_shared_axis_directory_panels
0.43s call dash_app/pytests/test_netcdf.py::test_shared_netcdf_consumers_import_as_dashboard_packages
0.38s call dash_app/pytests/test_run_broker_simplification.py::test_default_new_scenario_keeps_four_reservations_and_restarts_finished_case
0.35s call dash_app/pytests/test_pdf_contour_plot.py::test_three_gaussian_plot_detects_component_and_uses_absolute_weights
===================== 552 passed, 8242 warnings in 24.90s ======================
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Declarative: Post Actions)
[Pipeline] junit
Recording test results
[Checks API] No suitable checks publisher found.
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS