if (type == exact) {
   setupRequired(sconsUtils      -j g9e4288ad24)
   setupRequired(afw             -j gf03f0b42f3+45adbcf3d0)
   setupRequired(daf_base        -j g8ea07a8fe4+14188bbe6c)
   setupRequired(utils           -j g8956d74c4f+37c27a6131)
   setupRequired(sphinxutils     -j g52a5f7ac38+afb4790f61)
   setupRequired(cpputils        -j g87389fa792+2df283593c)
   setupRequired(base            -j g53246c7159+afb4790f61)
   setupRequired(pex_exceptions  -j g786e29fd12+c90741701a)
   setupRequired(pex_config      -j ge80df9fc40+296e528a3c)
   setupRequired(resources       -j g0ed9cbdc82+692b620dcb)
   setupRequired(geom            -j g19811a7679+c67ce918b9)
   setupRequired(sphgeom         -j g04536d8304+afb4790f61)
   setupRequired(log             -j geaed405ab2+692b620dcb)
   setupRequired(astshim         -j gf5dcc679e7+dafe91c9d6)
   setupRequired(obs_base        -j g0d66bda83d+221a7216e6)
   setupRequired(daf_butler      -j g40a1623659+aa77171ecc)
   setupRequired(pipe_base       -j g6cec3c9704+4b7b3205ef)
   setupRequired(astro_metadata_translator -j g36c86f07e0+296e528a3c)
   setupRequired(meas_algorithms -j g2b1a15d7c7+9d129f435c)
   setupRequired(meas_base       -j g51c93253c0+4f5e5b5438)
   setupRequired(skymap          -j g6512b7a353+c5dc2fdfc3)
   setupRequired(kht             -j gaf53c9a034)
   setupRequired(shapelet        -j gc794cbe0cf+ef9419c356)
   setupRequired(pipe_tasks      -j gd9581fb301+e9801d7e12)
   setupRequired(coadd_utils     -j g89139ef638+ef9419c356)
   setupRequired(dustmaps_cachedata -j gbb0a0c949e+afb4790f61)
   setupRequired(images          -j g7121ff8093+3ff974cfcf)
   setupOptional(meas_extensions_piff -j g92c671f44c+d6736e55c9)
   setupOptional(meas_extensions_psfex -j g33ac35c1f1+905c67a3ea)
   setupRequired(psfex           -j g7b9623be85+afb4790f61)
   setupOptional(cell_coadds     -j g1c12f59687+d6736e55c9)
   setupRequired(ip_diffim       -j gee0feffdaa+b9f678fb2c)
   setupRequired(meas_astrom     -j g91f025aaea+d6736e55c9)
   setupRequired(meas_extensions_trailedSources -j g74acd417e5+cd6fdfa31a)
   setupRequired(meas_extensions_shapeHSM -j gf8a46c3309+d6736e55c9)
   setupRequired(meas_deblender  -j g262e1987ae+ae4105b044)
   setupRequired(verify          -j g00d583acbd+0915a59659)
   setupRequired(dax_apdb        -j gbe40082654+66ce42f329)
   setupRequired(felis           -j g0d0033e428+cced0a835f)
   setupRequired(sdm_schemas     -j g44854fffaf+afb4790f61)
   setupRequired(verify_metrics  -j g8b480f84d9+afb4790f61)
   setupRequired(ip_isr          -j gd2a69bfd97+d6736e55c9)
   setupRequired(meas_extensions_convolved -j g7da95dfc27+1555f053e2)
   setupRequired(meas_extensions_photometryKron -j g64539dfbff+d6736e55c9)
   setupRequired(meas_extensions_gaap -j g5c7ea12361+2f77ef88e5)
   setupRequired(meas_extensions_scarlet -j gb538e179e5+7f0c64a66d)
   setupRequired(scarlet_lite    -j ge1c02a5578+afb4790f61)
   setupRequired(meas_modelfit   -j g9a9c865167+d6736e55c9)
   setupRequired(rubinoxide      -j g8d063e1f77+692b620dcb)
   setupRequired(jointcal_cholmod -j g5b815a837e+afb4790f61)
   setupRequired(ctrl_mpexec     -j gdcd519e9b7+94568c4ca2)
   setupOptional(obs_subaru      -j g4db92921ce+c4b3e4552c)
   setupRequired(obs_subaru_data -j g7ff78db354)
   setupOptional(obs_cfht        -j g8219804093+fa73891c3c)
   setupOptional(obs_decam       -j g8bbb235e95+e2ccd44b56)
   setupRequired(obs_decam_data  -j g9eeeb5e174)
} else {
   setupRequired(sconsUtils g9e4288ad24 [>= g9e4288ad24])
   setupRequired(afw gf03f0b42f3+45adbcf3d0 [>= gf03f0b42f3+45adbcf3d0])
   setupRequired(obs_base g0d66bda83d+221a7216e6 [>= g0d66bda83d+221a7216e6])
   setupRequired(pex_exceptions g786e29fd12+c90741701a [>= g786e29fd12+c90741701a])
   setupRequired(pex_config ge80df9fc40+296e528a3c [>= ge80df9fc40+296e528a3c])
   setupRequired(meas_algorithms g2b1a15d7c7+9d129f435c [>= g2b1a15d7c7+9d129f435c])
   setupRequired(pipe_tasks gd9581fb301+e9801d7e12 [>= gd9581fb301+e9801d7e12])
   setupRequired(jointcal_cholmod g5b815a837e+afb4790f61 [>= g5b815a837e+afb4790f61])
   setupRequired(verify g00d583acbd+0915a59659 [>= g00d583acbd+0915a59659])
   setupRequired(verify_metrics g8b480f84d9+afb4790f61 [>= g8b480f84d9+afb4790f61])
   setupRequired(cpputils g87389fa792+2df283593c [>= g87389fa792+2df283593c])
   setupRequired(pipe_base g6cec3c9704+4b7b3205ef [>= g6cec3c9704+4b7b3205ef])
   setupRequired(daf_butler g40a1623659+aa77171ecc [>= g40a1623659+aa77171ecc])
   
   # for running middleware tests
   setupRequired(ctrl_mpexec gdcd519e9b7+94568c4ca2 [>= gdcd519e9b7+94568c4ca2])
   
   # tests/data includes HSC output to test making a cameraGeom.
   setupOptional(obs_subaru g4db92921ce+c4b3e4552c [>= g4db92921ce+c4b3e4552c])
   
   # tests/data/ includes some stripped-down cfht data for testing
   setupOptional(obs_cfht g8219804093+fa73891c3c [>= g8219804093+fa73891c3c])
   
   # data files for the integration tests, and the obs packages for that data
   setupOptional(testdata_jointcal)
   setupOptional(obs_decam g8bbb235e95+e2ccd44b56 [>= g8bbb235e95+e2ccd44b56])
   setupOptional(obs_cfht g8219804093+fa73891c3c [>= g8219804093+fa73891c3c])
}
}
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)
