After updating a requirements.txt file, the version used on the minion is the old/cached version and not the new/updated version. This is when using a gitfs file backend. Code block around https://github.com/saltstack/salt/blob/develop/salt/states/virtualenv.py#L61 looks suspect, but I'm not sure exactly what the cause is yet.
Python: 2.7.3 (default, Aug 1 2012, 05:14:39)
msgpack-pure: not installed
FWIW, running the cp.is_cached, cp.hash_file, and cp.cache_file commands manually produced expected output.
Whoops, it looks like I was using the pip state, not the virtualenv state. It looks like the pip module caches the requirements file and never busts the cache. See here: https://github.com/saltstack/salt/blob/develop/salt/modules/pip.py#L187.
I opened a PR for this issue. I just reused the code block in the virtualenv state. Seems like some kind of utility function could be used in both locations though...
Yes, I merged the pull req, it looks good, but we should look more closely here.
Thanks for the pull req!