[openstack-dev] [horizon] BootstrapV3 and lessc

Sascha Peilicke speilicke at suse.com
Mon Nov 4 10:41:07 UTC 2013

On Monday 04 November 2013 10:52:21 Maxime Vidori wrote:
> Hi,
> I talked with Jiri Tomasek who is currently in charge of the integration of
> Bootstrap V3 into Horizon. The integration is currently stuck and was
> waiting for almost two month that lesscpy could parse the Bootstrap v3 less
> template. I know that Nodejs was removed because of some dependencies
> issues in production environment, but we do not need Node in production
> environment.

Well, not really. As long as COMPRESS_OFFLINE isn't set in your 
local_settings.py, django_compressor will check if it has compiled CSS files 
in it's cache and generate them if not. So for a horizon deployment that is 
setup with the defaults, the very first HTTP request will just trigger the 
LESS compiler...

Regardless of that, nodejs is a huge dependency of which not that many people 
have long experience with. While I know that nodejs is the new fancy of web 
development, things where radically different less than 2 years ago. It will 
the same in 2 years from now. That's why distros want to avoid it if they can. 
You simply don't know how reliable upstream is. What happens if they need to 
fix a security issue in that crappy old release that happens to be shipped in, 
say, openSUSE-12.2.

On the other hand. using a pure-Python implementation has countless advantages 
in our context. It can be handled inside pip requirements files, whereas you 
need to interact with the underlying distro to get nodejs installed. Also, we 
where able to drop a pile of bit-rotting Javascript files that we had to copy 
from nodejs' codebase just because no distro provided less.js so far.

> When node was removed it was compiling the less template at
> runtime, this is useful in development but not in production. Maybe it is
> possible to perform a dist task which will compile the less template for
> the package target.

We discussed this on IRC and I'd say compiling static assets (such as CSS) 
during sdist / bdist can't really hurt.

> If we keep lesscpy we will have to maintain it every time less pre processor
> will upgrade, it is a lot of work in addition for few benefits. Currently,
> a review is waiting for the integration of bootstrap
> https://review.openstack.org/#/c/49710/ using lessc (node compiler).

Where do you get these numbers? So far, fixing up Lesscpy wasn't such a big 
task. For bootstrap3 support, the only thing missing was variable support in 
CSS media queries. I already added some quick hacks to unblock people for the 
time being (See [0]). LESS the language doesn't change that much, it's CSS3 
that adds a ton of new features.

> I need your reviews on this topic because a lot of work is currently done
> for the ui of Horizon and the integration of Bootstrap v3 is a huge
> bottleneck for further development.

[0] https://github.com/robotis/Lesscpy/issues/22
With kind regards,
Sascha Peilicke
SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nuernberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer HRB 16746 (AG Nürnberg)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131104/92002dcc/attachment.pgp>

More information about the OpenStack-dev mailing list