{
  "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UserIdCause",
          "shortDescription" : "Started by user Gunther Huebler",
          "userId" : "huebler",
          "userName" : "Gunther Huebler"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 2347566,
      "executingTimeMillis" : 1986200,
      "executorUtilization" : 0.85,
      "subTaskCount" : 1,
      "waitingDurationMillis" : 0,
      "waitingTimeMillis" : 0
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.libs.LibrariesAction"
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 96,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "b2a6a9ceab12125d4a2542da4e20736039f3a744",
            "branch" : [
              {
                "SHA1" : "b2a6a9ceab12125d4a2542da4e20736039f3a744",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b2a6a9ceab12125d4a2542da4e20736039f3a744",
            "branch" : [
              {
                "SHA1" : "b2a6a9ceab12125d4a2542da4e20736039f3a744",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "b2a6a9ceab12125d4a2542da4e20736039f3a744",
        "branch" : [
          {
            "SHA1" : "b2a6a9ceab12125d4a2542da4e20736039f3a744",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/larson-group/clubb.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    },
    {
      "_class" : "org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.job.views.FlowGraphAction"
    },
    {
      
    },
    {
      
    }
  ],
  "artifacts" : [
    
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#96",
  "duration" : 2347566,
  "estimatedDuration" : 2363541,
  "executor" : null,
  "fullDisplayName" : "clubb_BFB_varying_flags_gfortran_test #96",
  "id" : "96",
  "keepLog" : false,
  "number" : 96,
  "queueId" : 11485,
  "result" : "SUCCESS",
  "timestamp" : 1792619877806,
  "url" : "https://carson.math.uwm.edu/jenkins/job/clubb_BFB_varying_flags_gfortran_test/96/",
  "changeSets" : [
    {
      "_class" : "hudson.plugins.git.GitChangeSetList",
      "items" : [
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "clubb_jax/src/CLUBB_core/parameter_indices.py",
            "input/parameter_and_flag_configs/coriolis_cases/atex_long_parameters.in",
            "input/parameter_and_flag_configs/e3sm_maint32/tunable_parameters.in",
            "clubb_jax/src/CLUBB_core/model_flags.py",
            "clubb_python_api/pytests/auto_llm_generated_pytests/test_python_port_api_coverage.py",
            "clubb_python_api/clubb_python/CLUBB_core/mixing_length.py",
            "input/flag_sets/run_bindiff_w_flags_config_core_flags.json",
            "input/parameter_and_flag_configs/coriolis_cases/coriolis_test_parameters.in",
            "src/CLUBB_core/mixing_length.F90",
            "tuner/pytests/test_parameter_ranges.py",
            "src/clubb_tuner.F90",
            "input/flag_sets/config_core_flags_wo_never_supported_jax_features.json",
            "input/parameter_and_flag_configs/Lscale/configurable_model_flags.in",
            "src/CLUBB_core/model_flags.F90",
            "clubb_python_driver/advance_clubb_core.py",
            "clubb_python_api/f2py_fortran_wrappers/mixing_length_wrapper.F90",
            "clubb_python_api/clubb_python/derived_types/config_flags_converter.py",
            "clubb_python_driver/clubb_constants.py",
            "clubb_jax/tests/test_loss_driver.py",
            "src/G_unit_test_types/pdf_parameter_tests.F90",
            "src/SILHS/silhs_importance_sample_module.F90",
            "tests/run_jax_vs_fortran_cases.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_mixing_length.py",
            "src/CLUBB_core/parameters_tunable.F90",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_param_names.py",
            "clubb_jax/tests/run_jax_timestep_gradient_test.py",
            "clubb_jax/src/CLUBB_core/mixing_length.py",
            "input/parameter_and_flag_configs/tauMatchLscale/configurable_model_flags.in",
            "input/parameter_and_flag_configs/e3sm_maint32/maint32_defaults_report.md",
            "utilities/clubb_settings_validation.py",
            "src/CLUBB_core/clubb_api_module.F90",
            "clubb_jax/tests/benchmark_mixing_length.py",
            "tests/run_python_vs_fortran_cases.py",
            "clubb_python_api/clubb_f2py.pyf",
            "input/parameter_and_flag_configs/tauMatchLscale/tunable_parameters.in",
            "clubb_jax/README.md",
            "dash_app/misc_tab/mixing_length_trajectories/analysis.py",
            "clubb_python_api/pytests/auto_llm_generated_pytests/test_call_tree_advance_xm_wpxp.py",
            "input/parameter_and_flag_configs/e3sm_maint32/configurable_model_flags.in",
            "input/parameter_and_flag_configs/default/configurable_model_flags.in",
            "dash_app/pytests/test_tune_callbacks_settings.py",
            "input/parameter_and_flag_configs/compatible_r8029/configurable_model_flags.in",
            "clubb_jax/src/CLUBB_core/parameters_tunable.py",
            "input/parameter_and_flag_configs/e3sm/configurable_model_flags.in",
            "tuner/pytests/test_adam_baselines.py",
            ".agents/skills/clubb-testing-and-reporting/SKILL.md",
            "input/flag_sets/run_bindiff_w_flags_config_host_flags.json",
            "clubb_jax/src/CLUBB_core/advance_clubb_core_module.py",
            "src/CLUBB_core/parameter_indices.F90",
            "clubb_python_api/pytests/auto_llm_generated_pytests/test_init_sequence.py",
            "input/parameter_and_flag_configs/e3sm/tunable_parameters.in",
            "dash_app/pytests/test_run_runtime.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mixing_length_vs_fortran.py",
            "src/G_unit_test_types/spurious_source_test.F90",
            "clubb_python_api/pytests/auto_llm_generated_pytests/test_call_tree_mixing_length.py",
            "input/parameter_and_flag_configs/default/tunable_parameters.in",
            "src/CLUBB_core/numerical_check.F90",
            "clubb_jax/src/CLUBB_core/config_flags.py",
            "src/CLUBB_core/advance_clubb_core_module.F90",
            "input/parameter_and_flag_configs/coriolis_cases/ekman_parameters.in",
            "tests/pytests/test_run_clubb_conv_test.py",
            "src/clubb_driver.F90",
            "utilities/pytests/test_settings_rules.py",
            ".agents/skills/clubb-finalization/SKILL.md",
            "dash_app/pytests/test_callbacks_runs.py",
            "clubb_jax/src/CLUBB_core/numerical_check.py",
            "input/parameter_and_flag_configs/Lscale/tunable_parameters.in",
            "input/parameter_and_flag_configs/compatible_r8029/tunable_parameters.in",
            "clubb_python_api/f2py_fortran_wrappers/model_flags_wrapper.F90",
            "clubb_python_api/clubb_python/derived_types/config_flags.py"
          ],
          "commitId" : "dfa3b53697658b3f5f24cb5ae83c8e11fe0c0d65",
          "timestamp" : 1792614890000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/noreply",
            "fullName" : "noreply"
          },
          "authorEmail" : "noreply@github.com",
          "comment" : "Port differentiable legacy mixing length and migrate its selector (#1408)\u000a\u000a* Make legacy mixing length differentiable and migrate its selector\u000a\u000aThe value-dependent JAX parcel loops prevented reverse differentiation and\u000aserialized independent launches. Use fixed scans with masks, batched launch\u000alevels and per-column error state while preserving Fortran stopping rules.\u000aPort the remaining legacy/tau branches and use the configured method in\u000adriver derivative checks.\u000a\u000aReplace the logical tau switch with Lscale_method (1=legacy, 2=tau), and\u000arename mu to Lscale_mu_entrain throughout core, bindings, inputs and validation.\u000aKeep 102 tunable parameters; coherent physics is a separate follow-up.\u000a\u000aLocal GNU Debug/API build, source checks, 447 unit checks and 240 API checks\u000apass. Integrated Jenkins validation follows this checkpoint.\u000a\u000a* Read renamed entrainment parameters in Dash trajectories\u000a\u000aSaved output now names parcel entrainment Lscale_mu_entrain. Prefer that\u000aparameter while retaining support for older files saved with mu. Update\u000aDash test settings to use the integer mixing-length selector.\u000a\u000aThe local Dash suite passes 552 checks.\u000a\u000a* Require completed tests before branch finalization\u000a\u000aRequests to finalize immediately still require applicable Jenkins jobs to\u000afinish and their results to be reviewed. Distinguish validation checkpoints\u000afrom a completed handoff, and report relevant stages of baseline-failing jobs.\u000a",
          "date" : "2026-10-21 15:34:50 -0500",
          "id" : "dfa3b53697658b3f5f24cb5ae83c8e11fe0c0d65",
          "msg" : "Port differentiable legacy mixing length and migrate its selector (#1408)",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/compatible_r8029/tunable_parameters.in"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/pytests/auto_llm_generated_pytests/test_init_sequence.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/clubb_f2py.pyf"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/pytests/auto_llm_generated_pytests/test_python_port_api_coverage.py"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/coriolis_cases/atex_long_parameters.in"
            },
            {
              "editType" : "edit",
              "file" : "src/clubb_driver.F90"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/advance_clubb_core_module.F90"
            },
            {
              "editType" : "edit",
              "file" : "utilities/pytests/test_settings_rules.py"
            },
            {
              "editType" : "edit",
              "file" : "input/flag_sets/config_core_flags_wo_never_supported_jax_features.json"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/mixing_length.F90"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/e3sm_maint32/configurable_model_flags.in"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/tauMatchLscale/tunable_parameters.in"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/numerical_check.F90"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_driver/advance_clubb_core.py"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/compatible_r8029/configurable_model_flags.in"
            },
            {
              "editType" : "edit",
              "file" : "input/flag_sets/run_bindiff_w_flags_config_core_flags.json"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/tests/run_jax_timestep_gradient_test.py"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/model_flags.F90"
            },
            {
              "editType" : "edit",
              "file" : "tuner/pytests/test_parameter_ranges.py"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/e3sm/tunable_parameters.in"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/README.md"
            },
            {
              "editType" : "edit",
              "file" : "tests/run_python_vs_fortran_cases.py"
            },
            {
              "editType" : "edit",
              "file" : "src/clubb_tuner.F90"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/f2py_fortran_wrappers/mixing_length_wrapper.F90"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/e3sm/configurable_model_flags.in"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/parameter_indices.F90"
            },
            {
              "editType" : "edit",
              "file" : ".agents/skills/clubb-testing-and-reporting/SKILL.md"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/mixing_length.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/parameters_tunable.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/advance_clubb_core_module.py"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/default/configurable_model_flags.in"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/f2py_fortran_wrappers/model_flags_wrapper.F90"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/pytests/auto_llm_generated_pytests/test_call_tree_advance_xm_wpxp.py"
            },
            {
              "editType" : "edit",
              "file" : "src/G_unit_test_types/pdf_parameter_tests.F90"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/model_flags.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/clubb_python/CLUBB_core/mixing_length.py"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/default/tunable_parameters.in"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_mixing_length.py"
            },
            {
              "editType" : "edit",
              "file" : "src/G_unit_test_types/spurious_source_test.F90"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/coriolis_cases/ekman_parameters.in"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/clubb_python/derived_types/config_flags.py"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/e3sm_maint32/tunable_parameters.in"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_param_names.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/parameter_indices.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/pytests/test_callbacks_runs.py"
            },
            {
              "editType" : "edit",
              "file" : "input/flag_sets/run_bindiff_w_flags_config_host_flags.json"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/e3sm_maint32/maint32_defaults_report.md"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/tauMatchLscale/configurable_model_flags.in"
            },
            {
              "editType" : "edit",
              "file" : "utilities/clubb_settings_validation.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/config_flags.py"
            },
            {
              "editType" : "edit",
              "file" : "src/SILHS/silhs_importance_sample_module.F90"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/Lscale/configurable_model_flags.in"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/pytests/test_run_runtime.py"
            },
            {
              "editType" : "edit",
              "file" : "tests/pytests/test_run_clubb_conv_test.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/numerical_check.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/pytests/test_tune_callbacks_settings.py"
            },
            {
              "editType" : "edit",
              "file" : "tuner/pytests/test_adam_baselines.py"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/Lscale/tunable_parameters.in"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/f2py_unit_tests/test_mixing_length_vs_fortran.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_driver/clubb_constants.py"
            },
            {
              "editType" : "edit",
              "file" : "dash_app/misc_tab/mixing_length_trajectories/analysis.py"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/parameters_tunable.F90"
            },
            {
              "editType" : "edit",
              "file" : ".agents/skills/clubb-finalization/SKILL.md"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/pytests/auto_llm_generated_pytests/test_call_tree_mixing_length.py"
            },
            {
              "editType" : "edit",
              "file" : "src/CLUBB_core/clubb_api_module.F90"
            },
            {
              "editType" : "edit",
              "file" : "tests/run_jax_vs_fortran_cases.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/tests/benchmark_mixing_length.py"
            },
            {
              "editType" : "edit",
              "file" : "input/parameter_and_flag_configs/coriolis_cases/coriolis_test_parameters.in"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/tests/test_loss_driver.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/clubb_python/derived_types/config_flags_converter.py"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "README"
          ],
          "commitId" : "b2a6a9ceab12125d4a2542da4e20736039f3a744",
          "timestamp" : 1792615282000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
            "fullName" : "Gunther Huebler"
          },
          "authorEmail" : "huebler@uwm.edu",
          "comment" : "The previous commit changed flags, which will now break the BFB tests even when the bit changing message is included, so now we need to have RESOLVED:dfa3b53697658b3f5f24cb5ae83c8e11fe0c0d65 messsages or enable temporary backwards compatibility.\u000a",
          "date" : "2026-10-21 15:41:22 -0500",
          "id" : "b2a6a9ceab12125d4a2542da4e20736039f3a744",
          "msg" : "The previous commit changed flags, which will now break the BFB tests even when the bit changing message is included, so now we need to have RESOLVED:dfa3b53697658b3f5f24cb5ae83c8e11fe0c0d65 messsages or enable temporary backwards compatibility.",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "README"
            }
          ]
        }
      ],
      "kind" : "git"
    }
  ],
  "culprits" : [
    {
      "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
      "fullName" : "Gunther Huebler"
    },
    {
      "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/noreply",
      "fullName" : "noreply"
    }
  ],
  "inProgress" : false,
  "nextBuild" : null,
  "previousBuild" : {
    "number" : 95,
    "url" : "https://carson.math.uwm.edu/jenkins/job/clubb_BFB_varying_flags_gfortran_test/95/"
  }
}