if (type == exact) {
   setupRequired(obs_base        -j g1a55b07155+7b626100ec)
   setupRequired(utils           -j ged10c03045+edbf708997)
   setupRequired(sconsUtils      -j g50719a3ea6)
   setupRequired(daf_butler      -j gacd8060110+ea63be4a5d)
   setupRequired(sphgeom         -j g00d0e8bbd7+edbf708997)
   setupRequired(resources       -j gac860778b9+062dfc8cdc)
   setupRequired(pipe_base       -j gc57584a0ee+37e99e7f86)
   setupRequired(pex_config      -j ga9e74d7ce9+128cc68277)
   setupOptional(daf_base        -j g8ea07a8fe4+79658f16ab)
   setupRequired(cpputils        -j g87389fa792+a4172ec7da)
   setupRequired(base            -j g53246c7159+edbf708997)
   setupRequired(pex_exceptions  -j g786e29fd12+af89c03590)
   setupRequired(astro_metadata_translator -j gf746e4f9fc+02a42095d5)
   setupRequired(afw             -j g9b50b81019+d8f85438e7)
   setupRequired(geom            -j g90f42f885a+6577634e1f)
   setupRequired(log             -j geaed405ab2+062dfc8cdc)
   setupRequired(astshim         -j g2cef7863aa+73c82f25e4)
   setupRequired(meas_algorithms -j gdb1e2cdc75+bd9302114e)
   setupRequired(meas_base       -j g013ef56533+321c5e11c3)
   setupRequired(skymap          -j g1fd858c14a+48cd4dd530)
   setupRequired(kht             -j gaf53c9a034)
   setupRequired(meas_astrom     -j g210f2d0738+9e474fae75)
   setupRequired(pipe_tasks      -j gc459d392ab+6d99a4a644)
   setupRequired(coadd_utils     -j g89139ef638+27ba970c8a)
   setupRequired(dustmaps_cachedata -j gbb0a0c949e+edbf708997)
   setupRequired(ip_diffim       -j g5b326b94bb+e4bfd8b7f6)
   setupRequired(meas_extensions_trailedSources -j g74acd417e5+acb822500f)
   setupRequired(meas_extensions_shapeHSM -j gf8a46c3309+9e474fae75)
   setupRequired(meas_deblender  -j g262e1987ae+8ce7951da4)
   setupRequired(verify          -j g00d583acbd+1255b7f12a)
   setupRequired(dax_apdb        -j g88cb488625+9ca2edc33a)
   setupRequired(felis           -j g5c320bd705+4529a0555a)
   setupRequired(sdm_schemas     -j g5e1cda0c91+edbf708997)
   setupRequired(verify_metrics  -j g8b480f84d9+edbf708997)
   setupRequired(ip_isr          -j gc2a301910b+9e474fae75)
   setupRequired(meas_extensions_convolved -j g7da95dfc27+364137e250)
   setupRequired(meas_extensions_photometryKron -j g64539dfbff+9e474fae75)
   setupRequired(meas_extensions_gaap -j g5c7ea12361+4fdffbe63b)
   setupRequired(meas_extensions_piff -j ge41e95a9f2+9e474fae75)
   setupRequired(meas_extensions_psfex -j g3fd5ace14f+2076fbc19e)
   setupRequired(psfex           -j g7b9623be85+edbf708997)
   setupRequired(meas_extensions_scarlet -j gfd6555b056+47dd53c949)
   setupRequired(scarlet_lite    -j ga2180abaac+edbf708997)
   setupRequired(meas_modelfit   -j g97be763408+5bc85b7969)
   setupRequired(shapelet        -j g47891489e3+27ba970c8a)
} else {
   setupRequired(obs_base g1a55b07155+7b626100ec [>= g1a55b07155+7b626100ec])
   setupRequired(meas_algorithms gdb1e2cdc75+bd9302114e [>= gdb1e2cdc75+bd9302114e])
   setupRequired(meas_astrom g210f2d0738+9e474fae75 [>= g210f2d0738+9e474fae75])
   setupRequired(pipe_tasks gc459d392ab+6d99a4a644 [>= gc459d392ab+6d99a4a644])
   setupRequired(astro_metadata_translator gf746e4f9fc+02a42095d5 [>= gf746e4f9fc+02a42095d5])
   setupRequired(geom g90f42f885a+6577634e1f [>= g90f42f885a+6577634e1f])
   
   # Required by config/calibrate.py, for gen3 DRP pipeline.
   # These can be removed after DM-30891 is finished
   setupRequired(meas_extensions_photometryKron g64539dfbff+9e474fae75 [>= g64539dfbff+9e474fae75])
   setupRequired(meas_extensions_shapeHSM gf8a46c3309+9e474fae75 [>= gf8a46c3309+9e474fae75])
   
   setupOptional(testdata_cfht)
}
}
envPrepend(PYTHONPATH, ${PRODUCT_DIR}/python)
envPrepend(PATH, ${PRODUCT_DIR}/bin)
