Skip to content

Update climate drivers for fire ESMValTool recipe timerange for CMIP6 and CMIP7 datasets#670

Open
jlenh wants to merge 15 commits into
Climate-REF:mainfrom
jlenh:update_climate_drivers_fire_recipe_timerange
Open

Update climate drivers for fire ESMValTool recipe timerange for CMIP6 and CMIP7 datasets#670
jlenh wants to merge 15 commits into
Climate-REF:mainfrom
jlenh:update_climate_drivers_fire_recipe_timerange

Conversation

@jlenh

@jlenh jlenh commented May 13, 2026

Copy link
Copy Markdown

Description

This PR updates the time periods used when running the climate drivers for fire recipe from ESMValTool, notably accounting for the timerange difference between CMIP6 and CMIP7 datasets. The timeranges are set as follows for now, but I am awaiting some further feedback on what these should be:

  • CMIP6 datasets: from 1995 to 2014
  • CMIP7 datasets: from 2002 to 2021

Checklist

Please confirm that this pull request has done the following:

  • Tests added
  • Documentation added (where applicable)
  • Changelog item added to changelog/

Summary by CodeRabbit

Summary by CodeRabbit

  • Bug Fixes
    • Updated the climate drivers for fire workflow time windows (CMIP6: 1995–2014; CMIP7: 2002–2021) and aligned displayed year metadata accordingly.
    • Bumped the diagnostic’s version to reflect the updated configuration.
  • Tests
    • Updated unit recipe expectations and refreshed regression test data for the new periods.
    • Removed CMIP7 regression coverage where production baseline data isn’t available.
  • Chores
    • Refreshed the changelog entry timing details.

@jlenh

jlenh commented May 13, 2026

Copy link
Copy Markdown
Author

I would need some feedback on the desired time ranges on which to run the climate drivers for fire recipe @douglask3 @rswamina

@codecov

codecov Bot commented May 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
core 93.11% <ø> (ø)
providers ?

Flags with carried forward coverage won't be shown. Click here to find out more.
see 35 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jlenh

jlenh commented May 19, 2026

Copy link
Copy Markdown
Author

I am running into an issue with the test climate-ref/packages/climate-ref-esmvaltool/tests/unit/test_solve_regression.py for the fire diagnostic. It seems that it is picking up CMIP7 datasets in one case (looking at test_solve_regression_climate_drivers_for_fire_.yml ?), but not in the other. Not sure where to modify something to fix this or if this is expected behavior with the "fake" CMIP7 data implementation?

Test output
esmvaltool_results = [{'dataset_key': 'cmip6_ssp126', 'datasets': {'cmip6': ['CMIP6.C4MIP CDRMIP.MIROC.MIROC-ES2L.esm-1pct-brch-1000PgC.r1i...r1i1p1f1.Lmon.cVeg.gn.v20200212', ...]}, 'diagnostic': 'climate-drivers-for-fire', 'provider': 'esmvaltool', ...}, ...]
data_regression = <pytest_regressions.data_regression.DataRegressionFixture object at 0x7f49379ec390>, diagnostic_slug = 'climate-drivers-for-fire'

    @pytest.mark.parametrize(
        "diagnostic_slug",
        [d.slug for d in esmvaltool_provider.diagnostics()],
    )
    def test_solve_regression(esmvaltool_results, data_regression, diagnostic_slug):
        filtered = [r for r in esmvaltool_results if r["diagnostic"] == diagnostic_slug]
        regression = solve_results_for_regression(filtered)
>       data_regression.check(regression)
E       AssertionError: FILES DIFFER:
E       /tmp/pytest-of-user/pytest-3/test_solve_regression_climate_1/test_solve_regression_climate_drivers_for_fire_.yml
E       /tmp/pytest-of-user/pytest-3/test_solve_regression_climate_1/test_solve_regression_climate_drivers_for_fire_.obtained.yml
E       HTML DIFF: /tmp/pytest-of-user/pytest-3/test_solve_regression_climate_1/test_solve_regression_climate_drivers_for_fire_.obtained.diff.html
E       --- 
E       +++ 
E       @@ -118,123 +118,3 @@
E          - CMIP6.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.Lmon.cVeg.gr.v20180803
E          - CMIP6.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.Lmon.treeFrac.gr.v20180803
E          - CMIP6.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.fx.sftlf.gr.v20180803
E       -cmip7_gn_ACCESS-ESM1-5_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.CSIRO.ACCESS-ESM1-5.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gn.v20191115
E       -  - CMIP7.CMIP.CSIRO.ACCESS-ESM1-5.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gn.v20191115
E       -  - CMIP7.CMIP.CSIRO.ACCESS-ESM1-5.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gn.v20191115
E       -  - CMIP7.CMIP.CSIRO.ACCESS-ESM1-5.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gn.v20191115
E       -  - CMIP7.CMIP.CSIRO.ACCESS-ESM1-5.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191115
E       -  - CMIP7.CMIP.CSIRO.ACCESS-ESM1-5.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gn.v20191115
E       -  - CMIP7.CMIP.CSIRO.ACCESS-ESM1-5.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gn.v20191115
E       -  - CMIP7.CMIP.CSIRO.ACCESS-ESM1-5.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gn.v20191115
E       -cmip7_gn_AWI-ESM-1-1-LR_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.AWI.AWI-ESM-1-1-LR.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gn.v20200909
E       -  - CMIP7.CMIP.AWI.AWI-ESM-1-1-LR.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gn.v20200212
E       -  - CMIP7.CMIP.AWI.AWI-ESM-1-1-LR.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gn.v20200212
E       -  - CMIP7.CMIP.AWI.AWI-ESM-1-1-LR.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gn.v20200212
E       -  - CMIP7.CMIP.AWI.AWI-ESM-1-1-LR.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200212
E       -  - CMIP7.CMIP.AWI.AWI-ESM-1-1-LR.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gn.v20200212
E       -  - CMIP7.CMIP.AWI.AWI-ESM-1-1-LR.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gn.v20200909
E       -  - CMIP7.CMIP.AWI.AWI-ESM-1-1-LR.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gn.v20200909
E       -cmip7_gn_CMCC-CM2-SR5_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.CMCC.CMCC-CM2-SR5.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gn.v20200616
E       -  - CMIP7.CMIP.CMCC.CMCC-CM2-SR5.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gn.v20200616
E       -  - CMIP7.CMIP.CMCC.CMCC-CM2-SR5.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gn.v20200616
E       -  - CMIP7.CMIP.CMCC.CMCC-CM2-SR5.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gn.v20200616
E       -  - CMIP7.CMIP.CMCC.CMCC-CM2-SR5.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200616
E       -  - CMIP7.CMIP.CMCC.CMCC-CM2-SR5.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gn.v20200616
E       -  - CMIP7.CMIP.CMCC.CMCC-CM2-SR5.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gn.v20200616
E       -  - CMIP7.CMIP.CMCC.CMCC-CM2-SR5.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gn.v20200616
E       -cmip7_gn_CMCC-ESM2_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.CMCC.CMCC-ESM2.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gn.v20210114
E       -  - CMIP7.CMIP.CMCC.CMCC-ESM2.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gn.v20210114
E       -  - CMIP7.CMIP.CMCC.CMCC-ESM2.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gn.v20210114
E       -  - CMIP7.CMIP.CMCC.CMCC-ESM2.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gn.v20210114
E       -  - CMIP7.CMIP.CMCC.CMCC-ESM2.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20210114
E       -  - CMIP7.CMIP.CMCC.CMCC-ESM2.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gn.v20210114
E       -  - CMIP7.CMIP.CMCC.CMCC-ESM2.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gn.v20210114
E       -  - CMIP7.CMIP.CMCC.CMCC-ESM2.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gn.v20210114
E       -cmip7_gn_CanESM5-1_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.CCCma.CanESM5-1.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5-1.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5-1.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5-1.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5-1.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5-1.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5-1.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5-1.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gn.v20190429
E       -cmip7_gn_CanESM5_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gn.v20190429
E       -  - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gn.v20190429
E       -cmip7_gn_MPI-ESM-1-2-HAM_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gn.v20190627
E       -  - CMIP7.CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gn.v20190627
E       -  - CMIP7.CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gn.v20190628
E       -  - CMIP7.CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gn.v20190627
E       -  - CMIP7.CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190627
E       -  - CMIP7.CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gn.v20190627
E       -  - CMIP7.CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gn.v20190627
E       -  - CMIP7.CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gn.v20190627
E       -cmip7_gn_MPI-ESM1-2-LR_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.MPI-M.MPI-ESM1-2-LR.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gn.v20190710
E       -  - CMIP7.CMIP.MPI-M.MPI-ESM1-2-LR.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gn.v20190710
E       -  - CMIP7.CMIP.MPI-M.MPI-ESM1-2-LR.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gn.v20190815
E       -  - CMIP7.CMIP.MPI-M.MPI-ESM1-2-LR.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gn.v20190710
E       -  - CMIP7.CMIP.MPI-M.MPI-ESM1-2-LR.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190710
E       -  - CMIP7.CMIP.MPI-M.MPI-ESM1-2-LR.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gn.v20190710
E       -  - CMIP7.CMIP.MPI-M.MPI-ESM1-2-LR.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gn.v20190710
E       -  - CMIP7.CMIP.MPI-M.MPI-ESM1-2-LR.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gn.v20190710
E       -cmip7_gr1_GFDL-ESM4_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.NOAA-GFDL.GFDL-ESM4.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gr1.v20190726
E       -  - CMIP7.CMIP.NOAA-GFDL.GFDL-ESM4.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gr1.v20190726
E       -  - CMIP7.CMIP.NOAA-GFDL.GFDL-ESM4.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gr1.v20190726
E       -  - CMIP7.CMIP.NOAA-GFDL.GFDL-ESM4.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gr1.v20190726
E       -  - CMIP7.CMIP.NOAA-GFDL.GFDL-ESM4.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr1.v20190726
E       -  - CMIP7.CMIP.NOAA-GFDL.GFDL-ESM4.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gr1.v20190726
E       -  - CMIP7.CMIP.NOAA-GFDL.GFDL-ESM4.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gr1.v20190726
E       -  - CMIP7.CMIP.NOAA-GFDL.GFDL-ESM4.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gr1.v20190726
E       -cmip7_gr_EC-Earth3-Veg-LR_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg-LR.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gr.v20200217
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg-LR.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gr.v20201116
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg-LR.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gr.v20200217
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg-LR.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gr.v20200217
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg-LR.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20200217
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg-LR.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gr.v20200217
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg-LR.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gr.v20201116
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg-LR.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gr.v20201116
E       -cmip7_gr_EC-Earth3-Veg_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gr.v20211207
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gr.v20211207
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gr.v20211207
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gr.v20211207
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20211207
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gr.v20211207
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gr.v20211207
E       -  - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gr.v20211207
E       -cmip7_gr_IPSL-CM6A-LR_r1i1p1f1:
E       -  cmip7:
E       -  - CMIP7.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.glb.fx.sftlf.ti-u-hxy-u.gr.v20180803
E       -  - CMIP7.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.glb.mon.cVeg.tavg-u-hxy-lnd.gr.v20180803
E       -  - CMIP7.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.glb.mon.hurs.tavg-h2m-hxy-u.gr.v20180803
E       -  - CMIP7.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.glb.mon.pr.tavg-u-hxy-u.gr.v20180803
E       -  - CMIP7.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20180803
E       -  - CMIP7.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.glb.mon.tas.tmaxavg-h2m-hxy-u.gr.v20180803
E       -  - CMIP7.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.glb.mon.treeFrac.tavg-u-hxy-u.gr.v20180803
E       -  - CMIP7.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.glb.mon.vegFrac.tavg-u-hxy-u.gr.v20180803

packages/climate-ref-esmvaltool/tests/unit/test_solve_regression.py:28: AssertionError

@bouweandela

Copy link
Copy Markdown
Contributor

You can update the expected output of the solve step by following these instructions: https://climate-ref.readthedocs.io/en/latest/development/#solver-regression-tests

@jlenh

jlenh commented May 19, 2026

Copy link
Copy Markdown
Author

You can update the expected output of the solve step by following these instructions: https://climate-ref.readthedocs.io/en/latest/development/#solver-regression-tests

Ah perfect, missed that, thanks Bouwe!

@jlenh

jlenh commented Jun 1, 2026

Copy link
Copy Markdown
Author

Test is running successfully following Bouwe's comment.

[~/projects/climate-ref] $ uv run pytest packages/climate-ref/tests/unit/test_solve_regression.py --force-regen
======================================================================================================== test session starts ========================================================================================================
platform linux -- Python 3.11.12, pytest-9.0.3, pluggy-1.6.0
rootdir: /home/sm_julle/projects/climate-ref
configfile: pyproject.toml
plugins: typeguard-4.5.1, mock-3.15.1, pytest_docker_tools-3.1.9, celery-1.3.0, climate-ref-0.14.0, anyio-4.12.1, datadir-1.8.0, cov-7.1.0, regressions-2.10.0, xdist-3.8.0
collected 1 item                                                                                                                                                                                                                    

packages/climate-ref/tests/unit/test_solve_regression.py .                                                                                                                                                                    [100%]

======================================================================================================== 1 passed in 31.12s =========================================================================================================

I am however still waiting for a confirmation from Doug and Ranjini regarding the time period on which to run the recipe.

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 205ba14e-7513-4ef2-b7cb-261d03a4bb6c

📥 Commits

Reviewing files that changed from the base of the PR and between 592b003 and 241cc22.

📒 Files selected for processing (8)
  • packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/climate_drivers_for_fire.py
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip6/manifest.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip6/regression/output.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/catalog.yaml
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/manifest.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/diagnostic.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/output.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/series.json
💤 Files with no reviewable changes (5)
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/manifest.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/diagnostic.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/series.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/output.json
  • packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/catalog.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/climate_drivers_for_fire.py

📝 Walkthrough

Walkthrough

Updates the fire climate driver timeranges for CMIP6 and CMIP7, including the constraint definitions, recipe year assignment logic, fixture YAMLs, recorded regression data, and changelog. CMIP6 shifts the start year to 1995, while CMIP7 shifts to 2002–2021.

Changes

Climate Drivers for Fire — Time Range Updates

Layer / File(s) Summary
RequireTimerange constraints and update_recipe logic
packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/climate_drivers_for_fire.py
CMIP6 RequireTimerange start year changes from 2013 to 1995; CMIP7 range changes from 2013–2014 to 2002–2021. update_recipe now applies source-specific start_year and end_year values per variable, the diagnostic version is set to 2, and the CMIP7 regression test case is removed from test_data_spec.
Test fixture YAMLs, recorded outputs, and changelog
packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_climate_drivers_for_fire_cmip6.yml, packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_climate_drivers_for_fire_cmip7.yml, packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip6/manifest.json, packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip6/regression/output.json, packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/catalog.yaml, packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/manifest.json, packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/diagnostic.json, packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/output.json, packages/climate-ref-esmvaltool/tests/test-data/climate-drivers-for-fire/cmip7/regression/series.json, changelog/670.trivial.md
CMIP6 fixture start_year values change to 1995 for pr, tasmax, treeFrac, vegFrac, cVeg, tas, and hurs. CMIP7 fixture start_year/end_year values change to 2002/2021 for the same variables. CMIP6 regression metadata and outputs are updated for the 1995–2014 period, CMIP7 test-data files are removed or emptied, and the changelog entry is updated.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: updating the fire recipe timeranges for CMIP6 and CMIP7 datasets.
Description check ✅ Passed The description follows the template with a clear summary and a checklist covering tests, docs, and changelog.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 39c25055-c1c8-4e5b-8d67-4eb7f6a20067

📥 Commits

Reviewing files that changed from the base of the PR and between d5dc936 and e75887a.

📒 Files selected for processing (4)
  • changelog/670.trivial.md
  • packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/climate_drivers_for_fire.py
  • packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_climate_drivers_for_fire_cmip6.yml
  • packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_climate_drivers_for_fire_cmip7.yml

@jlenh jlenh left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Changing time periods to:

  • CMIP6: 1995 - 2014
  • CMIP7: 2002-2021

Co-authored-by: Julien Lenhardt <45034763+jlenh@users.noreply.github.com>
Comment thread changelog/670.trivial.md Outdated
@lewisjared

Copy link
Copy Markdown
Contributor

Thanks @jlenh. I'll remint some regression tests to verify that the diagnostic solved for me and then we are good to go

jlenh and others added 2 commits July 2, 2026 10:19
…gnostics/climate_drivers_for_fire.py

Co-authored-by: Jared Lewis <jared@jared.kiwi.nz>
…est case

The version bump to 2 and the new run windows left both fire baselines stale.
Remint the CMIP6 baseline against the new 1995-2014 window
(diagnostic_version=2, test_case_version=2, native blobs uploaded to the public
store).

The CMIP7 test case cannot be minted: the recipe now runs CMIP7 over 2002-2021,
but the only available CanESM5 historical test data ends in 2014, so the fetch
resolves no datasets. Remove the CMIP7 regression test case and its baseline
until real ESGF data covering that window is in the pipeline. The production
CMIP7 data requirement is retained.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants