I recently merged something to master that failed a test because I didn’t understand the caching behavior of scons
.
[Yes, I should have Jenkinsed it. But it was a simple change that loaded a module from the wrong file. I thought I could have the answer in 10 seconds if I just tested the scons
run. The error was in the test script itself.]
Story:
- A test succeeds under one branch; I run
scons
and that success is cached - I switch to a different branch, I run
scons
and the test doesn’t fail becausescons
doesn’t run it because it’s already been cached.
Suggestions from @rowen @jbosch :
-
scons --clean
: This isn’t quite what I want, this removes the tests/.tests (and other things) afterscons
is run. -
rm -rf tests/.tests
: Fear-inducing. I don’t what to be typingrm -rf
as part of my standard workflow -
rm .sconsign.dblite
: Workable. Satisfies my needs. Would this actually be something we put in as a regular work flow?
What other good suggestions for workflow or desired behavior does the LSST DM community have to contribute?