if (type == exact) {
   setupRequired(sconsUtils      -j g5d571352bb)
   setupRequired(afw             -j g41b6eb5643+8889f92f7b)
   setupRequired(daf_base        -j g9acbc9a64b+25ce2dec9e)
   setupRequired(utils           -j g916547d642+b712490ecc)
   setupRequired(sphinxutils     -j gf7b00018f0+663e2227e0)
   setupRequired(cpputils        -j gee37125a88+b319181507)
   setupRequired(base            -j g53246c7159+663e2227e0)
   setupRequired(pex_exceptions  -j g786e29fd12+53fe651d7c)
   setupRequired(pex_config      -j g8fad44f3d7+4cace8750a)
   setupRequired(resources       -j g7046b7888c+c868ab9932)
   setupRequired(geom            -j g19811a7679+b5afc4d4fc)
   setupRequired(sphgeom         -j g8f490195a6+663e2227e0)
   setupRequired(log             -j geaed405ab2+c868ab9932)
   setupRequired(astshim         -j g6483cd21eb+eaea1bf0c7)
   setupRequired(obs_base        -j g5a6db65e37+610c384b6e)
   setupRequired(daf_butler      -j g712851f4d7+593b400156)
   setupRequired(pipe_base       -j gf24a075aa2+b0da05f36d)
   setupRequired(astro_metadata_translator -j gd5704b07e7+4cace8750a)
   setupRequired(meas_algorithms -j g4a7591d645+cfbd07eb6c)
   setupRequired(meas_base       -j ga44f29b7aa+d468ee8600)
   setupRequired(skymap          -j gc1afcb06db+184b8b76d5)
   setupRequired(kht             -j gaf53c9a034)
   setupRequired(shapelet        -j g883ef71f97+d938b9ff59)
   setupRequired(pipe_tasks      -j g41582d38ff+7626713322)
   setupRequired(coadd_utils     -j g89139ef638+d938b9ff59)
   setupRequired(dustmaps_cachedata -j g959249cb5e)
   setupRequired(images          -j gffa626f7de+a407e06676)
   setupOptional(meas_extensions_piff -j g92c671f44c+39c6e19ae3)
   setupOptional(meas_extensions_psfex -j gb4f33854fd+f5856e3ce1)
   setupRequired(psfex           -j g7b9623be85+663e2227e0)
   setupOptional(cell_coadds     -j g0d63591232+39c6e19ae3)
   setupRequired(ip_diffim       -j gc8f3b5360e+abf5d1f27c)
   setupRequired(meas_astrom     -j gfced8664c3+39c6e19ae3)
   setupRequired(meas_extensions_trailedSources -j g1147af6e9c+3b5e936c85)
   setupRequired(meas_extensions_shapeHSM -j g607d138630+39c6e19ae3)
   setupRequired(meas_deblender  -j g262e1987ae+b973b1ac64)
   setupRequired(verify          -j g99a1cb4b73+2f7691540d)
   setupRequired(dax_apdb        -j gb8fc0043e9+0c9d22d530)
   setupRequired(felis           -j g89a850006e+63d7d8d6aa)
   setupRequired(sdm_schemas     -j g016e612ca7+663e2227e0)
   setupRequired(verify_metrics  -j g8b480f84d9+663e2227e0)
   setupRequired(ip_isr          -j g7ad7012e6f+39c6e19ae3)
   setupRequired(meas_extensions_convolved -j g7da95dfc27+a0f469c585)
   setupRequired(meas_extensions_photometryKron -j g64539dfbff+39c6e19ae3)
   setupRequired(meas_extensions_gaap -j g5c7ea12361+d027f95a63)
   setupRequired(meas_extensions_scarlet -j gd36077e4ec+2e74f1675c)
   setupRequired(scarlet_lite    -j gccef28ce7f+663e2227e0)
   setupRequired(meas_modelfit   -j ga79b48e308+39c6e19ae3)
   setupRequired(rubinoxide      -j gf5fdc97d7f+c868ab9932)
   setupRequired(jointcal_cholmod -j g5b815a837e+663e2227e0)
   setupRequired(ctrl_mpexec     -j g032e5f9b47+17a7b88121)
   setupOptional(obs_subaru      -j g2e05e13fc0+1148616dad)
   setupRequired(obs_subaru_data -j g7ff78db354)
   setupOptional(obs_cfht        -j g5fdaeaa253+078742df90)
   setupOptional(obs_decam       -j g1d7b6d8479+ef68a388b9)
   setupRequired(obs_decam_data  -j gf7d3127cd7)
} else {
   setupRequired(sconsUtils g5d571352bb [>= g5d571352bb])
   setupRequired(afw g41b6eb5643+8889f92f7b [>= g41b6eb5643+8889f92f7b])
   setupRequired(obs_base g5a6db65e37+610c384b6e [>= g5a6db65e37+610c384b6e])
   setupRequired(pex_exceptions g786e29fd12+53fe651d7c [>= g786e29fd12+53fe651d7c])
   setupRequired(pex_config g8fad44f3d7+4cace8750a [>= g8fad44f3d7+4cace8750a])
   setupRequired(meas_algorithms g4a7591d645+cfbd07eb6c [>= g4a7591d645+cfbd07eb6c])
   setupRequired(pipe_tasks g41582d38ff+7626713322 [>= g41582d38ff+7626713322])
   setupRequired(jointcal_cholmod g5b815a837e+663e2227e0 [>= g5b815a837e+663e2227e0])
   setupRequired(verify g99a1cb4b73+2f7691540d [>= g99a1cb4b73+2f7691540d])
   setupRequired(verify_metrics g8b480f84d9+663e2227e0 [>= g8b480f84d9+663e2227e0])
   setupRequired(cpputils gee37125a88+b319181507 [>= gee37125a88+b319181507])
   setupRequired(pipe_base gf24a075aa2+b0da05f36d [>= gf24a075aa2+b0da05f36d])
   setupRequired(daf_butler g712851f4d7+593b400156 [>= g712851f4d7+593b400156])
   
   # for running middleware tests
   setupRequired(ctrl_mpexec g032e5f9b47+17a7b88121 [>= g032e5f9b47+17a7b88121])
   
   # tests/data includes HSC output to test making a cameraGeom.
   setupOptional(obs_subaru g2e05e13fc0+1148616dad [>= g2e05e13fc0+1148616dad])
   
   # tests/data/ includes some stripped-down cfht data for testing
   setupOptional(obs_cfht g5fdaeaa253+078742df90 [>= g5fdaeaa253+078742df90])
   
   # data files for the integration tests, and the obs packages for that data
   setupOptional(testdata_jointcal)
   setupOptional(obs_decam g1d7b6d8479+ef68a388b9 [>= g1d7b6d8479+ef68a388b9])
   setupOptional(obs_cfht g5fdaeaa253+078742df90 [>= g5fdaeaa253+078742df90])
}
}
envPrepend(LD_LIBRARY_PATH, ${PRODUCT_DIR}/lib)
envPrepend(DYLD_LIBRARY_PATH, ${PRODUCT_DIR}/lib)
envPrepend(LSST_LIBRARY_PATH, ${PRODUCT_DIR}/lib)

envPrepend(PYTHONPATH, ${PRODUCT_DIR}/python)
envPrepend(PATH, ${PRODUCT_DIR}/bin)
