diff --git a/IPython/html/fabfile.py b/IPython/html/fabfile.py index c186f6331..ef6a6cb2f 100644 --- a/IPython/html/fabfile.py +++ b/IPython/html/fabfile.py @@ -3,11 +3,15 @@ from fabric.api import local,lcd from fabric.utils import abort import os +from distutils.version import LooseVersion as V +from subprocess import check_output pjoin = os.path.join static_dir = 'static' components_dir = os.path.join(static_dir, 'components') +min_less_version = '1.4.0' +max_less_version = '1.5.0' # exclusive def css(minify=True, verbose=False): """generate the css from less files""" @@ -27,6 +31,16 @@ def _compile_less(source, target, minify=True, verbose=False): verbose = _to_bool(verbose) min_flag = '-x' if minify is True else '' ver_flag = '--verbose' if verbose is True else '' + + # pin less to 1.4 + out = check_output(['lessc', '--version']) + out = out.decode('utf8', 'replace') + less_version = out.split()[1] + if V(less_version) < V(min_less_version): + raise ValueError("lessc too old: %s < %s" % (less_version, min_less_version)) + if V(less_version) > V(max_less_version): + raise ValueError("lessc too new: %s > %s" % (less_version, max_less_version)) + with lcd(static_dir): local('lessc {min_flag} {ver_flag} {source} {target}'.format(**locals()))