Problem:
Intermittent "cb() never called!" errors on npm installs for platform.
This is likely due to a race condition on installing OS-specific bits that are built during time of install. When more than one compilation takes place at one time, this error can occur.
Workaround:
Detect the error and re-run the install. (When retrying, one or all of the bits have been compiled. So running it again just finishes the install.)
This change:
* gives us the flexibility of managing node from pull-request to pull-request. It'll be a huge lift to folks that want to test out node upgrades like @bjacobel or @andy-armstrong
* Sets us up for a port to Xenial, which will be accomplished in part by using nodeenv for managing the node environment. See a companion PR on the configuration repo for edxapp: edx/configuration#3444
This pull request does not:
* Attempt to solve any stability issues in builds related to node.
* Make node installs any faster
* Create any caching infrastructure to speed up node installs. They will be approximately as fast as they were before. Downloading the node bits build-to-build adds about 3 seconds, which is worth it for the added flexibility.
Rendering model states when running migrate in Django 1.8 consumes
on the order of 4x-6x more memory than <1.8.
References:
* https://code.djangoproject.com/ticket/24745
* https://code.djangoproject.com/ticket/24743
This is causing failures in Jenkins as the workers run out of memory
and either processes cannot fork or the Out Of Memory Killer
kills a process that is running tests.
Disabling migrations until we do either or both of these:
* Upgrade to Django 1.9 and turn them back on. See EV-92 "Discovery: Upgrade edx-platform to Django 1.9"
* Address TE-1310 "Unit tests should be able to run without migrations"
2. Update COMPREHNSIVE_THEME_DIR to COMPREHENSIVE_THEME_DIRS
3. Update paver commands to support multi theme dirs
4. Updating template loaders
5. Add ENABLE_COMPREHENSIVE_THEMING flag to enable or disable theming via settings
6. Update tests
7. Add backward compatibility for COMPREHEHNSIVE_THEME_DIR