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 82c8fdb39580f015d26f9cb021b8376696d96b7f (refs/remotes/origin/master) Commit message: "Fix per-column inputs in JAX microphysics (#1407)" > 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 82c8fdb39580f015d26f9cb021b8376696d96b7f # timeout=10 > git rev-list --no-walk 8369512fcc6487603491e12ac13376de2aec2a0b # 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 621ms Downloading cryptography (4.5MiB) Downloading dash (7.6MiB) Downloading pygments (1.2MiB) Downloading pydantic-core (2.1MiB) Downloading numpy (16.0MiB) Downloading fonttools (5.2MiB) Downloading scipy (33.7MiB) Downloading plotly (9.5MiB) Downloading cftime (1.6MiB) Downloading netcdf4 (10.1MiB) Downloading kiwisolver (1.4MiB) Downloading pillow (6.6MiB) Downloading matplotlib (8.4MiB) Downloading meson (1.1MiB) Downloaded kiwisolver Downloaded cftime Downloaded pydantic-core Downloaded meson Downloaded pygments Downloaded cryptography Downloaded fonttools Downloaded pillow Downloaded dash Downloaded netcdf4 Downloaded matplotlib Downloaded numpy Downloaded scipy Downloaded plotly Prepared 71 packages in 1.94s Installed 71 packages in 57ms + 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.1 + 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.1 + 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 ============================= 7.32s call dash_app/pytests/test_agent_plot_actions.py::test_profile_png_renderer_writes_a_real_png 2.19s call dash_app/pytests/test_agent_services.py::test_mcp_stdio_discovery_and_structured_error_round_trip 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_exposes_closed_world_typed_tools_and_annotations 1.03s call dash_app/pytests/test_plot_case_cache.py::test_background_worker_snapshot_resolves_in_main_process 0.95s call dash_app/pytests/test_plot_tasks.py::test_real_worker_inspects_missing_directory_and_serializes_no_update 0.75s call dash_app/pytests/test_netcdf.py::test_shared_netcdf_consumers_import_as_dashboard_packages 0.74s call dash_app/pytests/test_pdf_contour_plot.py::test_three_gaussian_plot_detects_component_and_uses_absolute_weights 0.69s call dash_app/pytests/test_fill_holes_viewer.py::test_profile_field_scale_defaults_to_log_and_can_be_linear 0.48s call dash_app/pytests/test_pdf_contour_plot.py::test_pdf_plot_removes_les_proxy_and_uses_one_signed_clubb_background ===================== 552 passed, 8242 warnings in 35.67s ====================== [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