[openstack-dev] [horizon] Static file handling -- followup

Radomir Dopieralski openstack at sheep.art.pl
Tue May 20 15:18:18 UTC 2014


Hello,

this is a followup on the design session we had at the meeting about
the handling of static files. You can see the etherpad from that session
here: https://etherpad.openstack.org/p/juno-summit-horizon-static-files


The split:

We are going to use rather uninspired, but very clear and well-known
names. The "horizon" (library) part is going to be named
"django-horizon", and the "openstack_dashboard" is going to be named
"horizon". We will clone the horizon repository as "django-horizon"
soon(ish) and start removing the unwanted files from both of them
-- this way we will preserve the history.


The JavaScript libraries unbundling:

I'm packaging all the missing libraries, except for Angular.js, as
XStatic packages:

https://pypi.python.org/pypi/XStatic-D3
https://pypi.python.org/pypi/XStatic-Hogan
https://pypi.python.org/pypi/XStatic-JSEncrypt
https://pypi.python.org/pypi/XStatic-QUnit
https://pypi.python.org/pypi/XStatic-Rickshaw
https://pypi.python.org/pypi/XStatic-Spin

There is also a patch for unbundling JQuery:
https://review.openstack.org/#/c/82516/
And the corresponding global requirements for it:
https://review.openstack.org/#/c/94337/

Once it is in, I will prepare a patch with the rest of libraries.

We will also unbundle Bootstrap, but first we need to deal with its
compilation, read below.


The style files compilation:

We are going to go with PySCSS compiler, plus django-pyscss. The
proof-of-concept patch has been rebased and updated, and is waiting
for your reviews: https://review.openstack.org/#/c/90371/
It is also waiting for adding the needed libraries to the global
requirements: https://review.openstack.org/#/c/94376/


The style files dependencies and pluggability:

Turns out that we don't have to generate a file with all the includes
after all, because django-pyscss actually solves that problem for us.
Horizon's plugins can refer to Horizon's own files easily now.


The linter and other tools:

We will be able to include the linter in the gate check without having
to explicitly depend on it in Horizon itself.

-- 
Radomir Dopieralski



More information about the OpenStack-dev mailing list