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
sconsand that success is cached - I switch to a different branch, I run
sconsand the test doesn’t fail becausesconsdoesn’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) aftersconsis run. -
rm -rf tests/.tests: Fear-inducing. I don’t what to be typingrm -rfas 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?