From 0e81506dd943717bf4a970c8792fee6fa5beb0a3 Mon Sep 17 00:00:00 2001 From: MinRK Date: Tue, 4 Feb 2014 14:50:33 -0800 Subject: [PATCH] pin lessc to 1.4 Not necessarily what we want to do, but every minor revision of less seems to change how it minifies, which produces churn. At least this should prevent accidental churn, as has recently been committed to master. --- IPython/html/fabfile.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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()))