if (type == exact) {
   setupRequired(obs_base        -j g00893bd134+af2f0ca7bb)
   setupRequired(utils           -j g36f3e0efcb+264f286992)
   setupRequired(sconsUtils      -j gc8c338059c)
   setupRequired(sphinxutils     -j gf19a2bea7c+d801c9999e)
   setupRequired(daf_butler      -j g275098e6aa+77bf81b42f)
   setupRequired(sphgeom         -j g482271f493+d801c9999e)
   setupRequired(resources       -j g60c6fdcdcd+65c6d59753)
   setupRequired(pipe_base       -j g954f02917a+b942395532)
   setupRequired(pex_config      -j ge1a9536552+959a87f0dd)
   setupOptional(daf_base        -j g8ea07a8fe4+a69a83a89d)
   setupRequired(cpputils        -j g87389fa792+0bb42a27e1)
   setupRequired(base            -j g53246c7159+d801c9999e)
   setupRequired(pex_exceptions  -j g786e29fd12+76ce5f0d11)
   setupRequired(astro_metadata_translator -j gdbd3d7cefa+959a87f0dd)
   setupRequired(afw             -j g41b6eb5643+4d2cc932f6)
   setupRequired(geom            -j g19811a7679+6f0962314d)
   setupRequired(log             -j geaed405ab2+65c6d59753)
   setupRequired(astshim         -j gf5dcc679e7+7aca86229d)
   setupRequired(meas_algorithms -j g4a7591d645+17fc7488df)
   setupRequired(meas_base       -j ga44f29b7aa+729a86a18a)
   setupRequired(skymap          -j gc1afcb06db+d38c306b39)
   setupRequired(kht             -j gaf53c9a034)
   setupRequired(shapelet        -j gc794cbe0cf+13762949d7)
   setupRequired(meas_astrom     -j gfced8664c3+99207b6d12)
   setupRequired(pipe_tasks      -j ga84358f862+85c6baa312)
   setupRequired(coadd_utils     -j g89139ef638+13762949d7)
   setupRequired(dustmaps_cachedata -j gbb0a0c949e+d801c9999e)
   setupRequired(images          -j g3f55c263a2+b597c89252)
   setupOptional(meas_extensions_piff -j g92c671f44c+99207b6d12)
   setupOptional(meas_extensions_psfex -j g33ac35c1f1+59102d7129)
   setupRequired(psfex           -j g7b9623be85+d801c9999e)
   setupOptional(cell_coadds     -j g34d6eedd0a+99207b6d12)
   setupRequired(ip_diffim       -j g3a2e29f8c4+64103d6ba9)
   setupRequired(meas_extensions_trailedSources -j g1147af6e9c+7c3eec071e)
   setupRequired(meas_extensions_shapeHSM -j gf8a46c3309+99207b6d12)
   setupRequired(meas_deblender  -j g262e1987ae+e15a81f608)
   setupRequired(verify          -j g00d583acbd+e31032e618)
   setupRequired(dax_apdb        -j gb4d6f811d8+31bca90142)
   setupRequired(felis           -j g8f97819be6+0854801c4d)
   setupRequired(sdm_schemas     -j gee27d85f9a+d801c9999e)
   setupRequired(verify_metrics  -j g8b480f84d9+d801c9999e)
   setupRequired(ip_isr          -j g77367d4607+99207b6d12)
   setupRequired(meas_extensions_convolved -j g7da95dfc27+efa2cfd6ca)
   setupRequired(meas_extensions_photometryKron -j g64539dfbff+99207b6d12)
   setupRequired(meas_extensions_gaap -j g5c7ea12361+ea920d2105)
   setupRequired(meas_extensions_scarlet -j gbf9bea6eeb+3c9f8cfda4)
   setupRequired(scarlet_lite    -j gccef28ce7f+d801c9999e)
   setupRequired(meas_modelfit   -j g9a9c865167+99207b6d12)
   setupRequired(rubinoxide      -j g8d063e1f77+65c6d59753)
} else {
   setupRequired(obs_base g00893bd134+af2f0ca7bb [>= g00893bd134+af2f0ca7bb])
   setupRequired(meas_algorithms g4a7591d645+17fc7488df [>= g4a7591d645+17fc7488df])
   setupRequired(meas_astrom gfced8664c3+99207b6d12 [>= gfced8664c3+99207b6d12])
   setupRequired(pipe_tasks ga84358f862+85c6baa312 [>= ga84358f862+85c6baa312])
   setupRequired(astro_metadata_translator gdbd3d7cefa+959a87f0dd [>= gdbd3d7cefa+959a87f0dd])
   setupRequired(geom g19811a7679+6f0962314d [>= g19811a7679+6f0962314d])
   
   # Required by config/calibrate.py, for gen3 DRP pipeline.
   # These can be removed after DM-30891 is finished
   setupRequired(meas_extensions_photometryKron g64539dfbff+99207b6d12 [>= g64539dfbff+99207b6d12])
   setupRequired(meas_extensions_shapeHSM gf8a46c3309+99207b6d12 [>= gf8a46c3309+99207b6d12])
   
   setupOptional(testdata_cfht)
}
}
envPrepend(PYTHONPATH, ${PRODUCT_DIR}/python)
envPrepend(PATH, ${PRODUCT_DIR}/bin)
