if (type == exact) {
   setupRequired(sconsUtils      -j gcc71b89bbb)
   setupRequired(afw             -j gf03f0b42f3+e27ba6bf39)
   setupRequired(daf_base        -j g8ea07a8fe4+9581832265)
   setupRequired(utils           -j g8956d74c4f+1ff81c3020)
   setupRequired(sphinxutils     -j g52a5f7ac38+8911f0c7c0)
   setupRequired(cpputils        -j g87389fa792+5b6592a596)
   setupRequired(base            -j g53246c7159+8911f0c7c0)
   setupRequired(pex_exceptions  -j g786e29fd12+d9c7cde3df)
   setupRequired(pex_config      -j ge80df9fc40+b71017786e)
   setupRequired(resources       -j gee23d30481+b3064fa941)
   setupRequired(geom            -j g19811a7679+33b52fa60d)
   setupRequired(sphgeom         -j gafb225b75d+8911f0c7c0)
   setupRequired(log             -j geaed405ab2+b3064fa941)
   setupRequired(astshim         -j gf5dcc679e7+17b6204ea6)
   setupRequired(obs_base        -j g2e26be213e+564cd77ec2)
   setupRequired(daf_butler      -j g090993796f+4f9afccd76)
   setupRequired(pipe_base       -j gc132915c65+4961e19f1c)
   setupRequired(astro_metadata_translator -j g4c3f3e5363+b71017786e)
   setupRequired(meas_algorithms -j gc9f6c7f23a+c0a824bbfa)
   setupRequired(meas_base       -j g51c93253c0+08a7ce5dc6)
   setupRequired(skymap          -j g6512b7a353+f5feaadd0c)
   setupRequired(kht             -j gaf53c9a034)
   setupRequired(shapelet        -j gc794cbe0cf+6343b42b9b)
   setupRequired(pipe_tasks      -j gef5401d743+4408856ac0)
   setupRequired(coadd_utils     -j g89139ef638+6343b42b9b)
   setupRequired(dustmaps_cachedata -j gbb0a0c949e+8911f0c7c0)
   setupRequired(images          -j g12a8f858cb+2393cb3020)
   setupOptional(meas_extensions_piff -j g92c671f44c+627074d44d)
   setupOptional(meas_extensions_psfex -j g33ac35c1f1+51e4005515)
   setupRequired(psfex           -j g7b9623be85+8911f0c7c0)
   setupOptional(cell_coadds     -j g7ac94aa8a4+627074d44d)
   setupRequired(ip_diffim       -j g0770a6d79e+9b80cd5efb)
   setupRequired(meas_astrom     -j g91f025aaea+627074d44d)
   setupRequired(meas_extensions_trailedSources -j g1147af6e9c+65ada238fb)
   setupRequired(meas_extensions_shapeHSM -j gf8a46c3309+627074d44d)
   setupRequired(meas_deblender  -j g262e1987ae+dae897b645)
   setupRequired(verify          -j g00d583acbd+fa5d159935)
   setupRequired(dax_apdb        -j gb4d6f811d8+1bcf2aa031)
   setupRequired(felis           -j g0d0033e428+3d8498f961)
   setupRequired(sdm_schemas     -j gfc5ceb9bd5+8911f0c7c0)
   setupRequired(verify_metrics  -j g8b480f84d9+8911f0c7c0)
   setupRequired(ip_isr          -j g24cdac46ce+627074d44d)
   setupRequired(meas_extensions_convolved -j g7da95dfc27+0174a665b4)
   setupRequired(meas_extensions_photometryKron -j g64539dfbff+627074d44d)
   setupRequired(meas_extensions_gaap -j g5c7ea12361+f9539d2ca4)
   setupRequired(meas_extensions_scarlet -j gb538e179e5+8a27e279b2)
   setupRequired(scarlet_lite    -j gab7f39b7ca+8911f0c7c0)
   setupRequired(meas_modelfit   -j g9a9c865167+627074d44d)
   setupRequired(rubinoxide      -j g8d063e1f77+b3064fa941)
   setupRequired(jointcal_cholmod -j g5b815a837e+8911f0c7c0)
   setupRequired(ctrl_mpexec     -j gdcd519e9b7+5e50b68078)
   setupOptional(obs_subaru      -j g4db92921ce+bec8537106)
   setupRequired(obs_subaru_data -j g7ff78db354)
   setupOptional(obs_cfht        -j g8219804093+c51be4c795)
   setupOptional(obs_decam       -j g8bbb235e95+38dcbe6939)
   setupRequired(obs_decam_data  -j g9eeeb5e174)
} else {
   setupRequired(sconsUtils gcc71b89bbb [>= gcc71b89bbb])
   setupRequired(afw gf03f0b42f3+e27ba6bf39 [>= gf03f0b42f3+e27ba6bf39])
   setupRequired(obs_base g2e26be213e+564cd77ec2 [>= g2e26be213e+564cd77ec2])
   setupRequired(pex_exceptions g786e29fd12+d9c7cde3df [>= g786e29fd12+d9c7cde3df])
   setupRequired(pex_config ge80df9fc40+b71017786e [>= ge80df9fc40+b71017786e])
   setupRequired(meas_algorithms gc9f6c7f23a+c0a824bbfa [>= gc9f6c7f23a+c0a824bbfa])
   setupRequired(pipe_tasks gef5401d743+4408856ac0 [>= gef5401d743+4408856ac0])
   setupRequired(jointcal_cholmod g5b815a837e+8911f0c7c0 [>= g5b815a837e+8911f0c7c0])
   setupRequired(verify g00d583acbd+fa5d159935 [>= g00d583acbd+fa5d159935])
   setupRequired(verify_metrics g8b480f84d9+8911f0c7c0 [>= g8b480f84d9+8911f0c7c0])
   setupRequired(cpputils g87389fa792+5b6592a596 [>= g87389fa792+5b6592a596])
   setupRequired(pipe_base gc132915c65+4961e19f1c [>= gc132915c65+4961e19f1c])
   setupRequired(daf_butler g090993796f+4f9afccd76 [>= g090993796f+4f9afccd76])
   
   # for running middleware tests
   setupRequired(ctrl_mpexec gdcd519e9b7+5e50b68078 [>= gdcd519e9b7+5e50b68078])
   
   # tests/data includes HSC output to test making a cameraGeom.
   setupOptional(obs_subaru g4db92921ce+bec8537106 [>= g4db92921ce+bec8537106])
   
   # tests/data/ includes some stripped-down cfht data for testing
   setupOptional(obs_cfht g8219804093+c51be4c795 [>= g8219804093+c51be4c795])
   
   # data files for the integration tests, and the obs packages for that data
   setupOptional(testdata_jointcal)
   setupOptional(obs_decam g8bbb235e95+38dcbe6939 [>= g8bbb235e95+38dcbe6939])
   setupOptional(obs_cfht g8219804093+c51be4c795 [>= g8219804093+c51be4c795])
}
}
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)
