Description of problem: Create a nodejs-0.6 app, add some modules like "optimist" to the dependencies in package.json and git push all the changes. optimist will be installed. Touch force_clean_build marker, remove "optimist" from package.json and git push. optimist still exists in $OPENSHIFT_GEAR_DIR/repo/node_modules/ and still can be used. Version-Release number of selected component (if applicable): devenv_1912 How reproducible: Always Steps to Reproduce: 1.Create a nodejs-0.6 app 2.Add optimist to dependencies in package.json: "dependencies": { "optimist": "0.3.4" }, 3.Add 1 line to <git_repo>/server.js var argv = require('optimist').argv; 4.Git push all the changes. 5.Touch force_clean_build marker. $ touch .openshift/markers/force_clean_build 6.Remove optimist from package.json and git push all the changes. 7.Log in the app using Openshift Shell and check $OPENSHIFT_GEAR_DIR/repo/node_modules/. Check the app. Actual results: 7.optimist still exists under $OPENSHIFT_GEAR_DIR/repo/node_modules/. The app is still available. Expected results: 7.optimist should be removed from $OPENSHIFT_GEAR_DIR/repo/node_modules/. The app should be unavailable because module "optimist" not found. Additional info:
Besides, I find 3 "node_modules" dirs in app's home dir, none of which is symbolic link: app-root/runtime/repo/node_modules/ node_modules/ nodejs-0.6/node_modules/ Among them, "nodejs-0.6/node_modules/" is always empty. Is is necessary ?
https://github.com/openshift/crankcase/pull/297
The change is not in devenv_1920. I will test it on the next devenv.
Verified on INT server.