[openstack-dev] [Horizon] the future of angularjs development in Horizon

Martin Geisler martin at geisler.net
Thu Nov 13 14:56:36 UTC 2014

Radomir Dopieralski <openstack at sheep.art.pl> writes:

> On 11/11/14 08:02, Richard Jones wrote:
> [...]
>> There were some discussions around tooling. We're using xstatic to
>> manage 3rd party components, but there's a lot missing from that
>> environment. I hesitate to add supporting xstatic components on to
>> the already large pile of work we have to do, so would recommend we
>> switch to managing those components with bower instead. For reference
>> the list of 3rd party components I used in angboard* (which is really
>> only a teensy fraction of the total application we'd end up with, so
>> this components list is probably reduced):
> [...]
>> Just looking at PyPI, it looks like only a few of those are in xstatic,
>> and those are out of date.
> There is a very good reason why we only have a few external JavaScript
> libraries, and why they are in those versions.
> You see, we are not developing Horizon for our own enjoyment, or to
> install it at our own webserver and be done with it. What we write has
> to be then packaged for different Linux distributions by the
> packagers. [...]

Maybe a silly question, but why insist on this? Why would you insist on
installing a JavaScript based application using your package manager?

I'm a huge fan of package managers and typically refuse to install
anything globally if it doesn't come as a package.

However, the whole JavaScript ecosystem seems to be centered around the
idea of doing local installations. That means that you no longer need
the package manager to install the software -- you only need a package
manager to install the base system (NodeJs and npm for JavaScript).

Notice that Python has been moving rapidly in the same direction for
years: you only need Python and pip to bootstrap yourself. After getting
used to virtualenv, I've mostly stopped installing Python modules
globally and that is how the JavaScript world expects you to work too.
(Come to think of it, the same applies to some extend to Haskell and
Emacs where there also exist nice package managers that'll pull in and
manage dependencies for you.)

So maybe the Horizon package should be an installer package like the
ones that download fonts or Adobe?

That package would get the right version of node and which then runs the
npm and bower commands to download the rest plus (importantly and much
appreciated) puts the files in a sensible location and gives them good

Martin Geisler

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141113/604092c8/attachment.pgp>

More information about the OpenStack-dev mailing list