Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-23 Thread Jeremy Stanley
On 2015-01-23 12:02:19 +0100 (+0100), Matthias Runge wrote:
[...]
 I think providing/updating distro packages is quite comparable to
 updating pypi packages.
[...]

Within an order of magnitude anyway. The difference is that most
Python module upstream authors do their own packaging for PyPI (for
better or worse), but few are also package maintainers for Debian
and Red Hat so distro packages have a tendency to lag PyPI even if
you ignore distro release cycle induced delays.
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-23 Thread Jeremy Stanley
On 2015-01-23 10:11:46 +0100 (+0100), Matthias Runge wrote:
[...]
 It would be totally awesome to switch from pip install to using
 distribution packages for testing purposes. At least for
 dependencies.
[...]

While it seems nice on the surface, the unfortunate truth is that
neither the infra team nor the various package maintainers has the
excess of manpower needed to be able to near-instantly package new
requirements and new versions of requirements for the platforms on
which we run our CI jobs. I fear that the turn-around on getting new
requirements into projects would go from being on the order of hours
or days to weeks or even months.

We could work around that by generating our own system packages for
multiple platforms rather than relying on actual distro packages,
but doing that from an automated process isn't _really_ testing
distro packages at that point so wouldn't necessarily be any better
in the end than the situation we're in now.
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-23 Thread Matthias Runge
On Thu, Jan 22, 2015 at 09:18:46PM +, Jeremy Stanley wrote:
 On 2015-01-22 16:06:55 -0500 (-0500), Matthew Farina wrote:
 [...]
  When there is an update to our requirements, such as the recent
  version increment in the version of angular used, a new package
  version doesn't automatically show up as evident from that list.
  How would that process be kicked off so we don't end up with a
  missing dependency? Does that have to wait for a release cycle?
 
 I don't want to speak for the distro package maintainers, but from
 what I've seen they generally wait until close enough to an
 integrated release that they can be pretty sure the requirements are
 close to frozen, so as not to waste effort packaging things which
 will end up not being used.
 

Yes, exactly.

I for myself am using horizonfrom a github checkout, providing all
dependencies as RPM packages. That being said, I'm updating/packaging
requirements, whenever they'll show up for me.
There is no automatic process.
 I assume (perhaps incorrectly?) that we do use those in CI jobs, so
 that we can download the things a given project needs in an
 automated fashion--for us handling pip requirements lists is a
 solved problem (well, for some definitions of solved at least).

It would be totally awesome to switch from pip install to using
distribution packages for testing purposes. At least for dependencies.
 
  This appears to affect the testing setup as well. When we start to
  use a new version of a JavaScript dependency no package will exist
  for it. I believe this would mean the testing environment needs to
  use the development setup, in the proposal, of bower. IIRC, bower
  goes out to the Internet and there isn't a mirror of packages
  (just a mirror of the registry). That means we'll loose the
  ability to run testing installs from local mirrors for these
  dependencies. I imagine a solution has been thought of for this.
  Can you share any details?
Uh, we have seen so many timeouts and failing tests, because some
mirror was not answering fast enough etc. I don't think, adding another
external service will improve the situation here.

-- 
Matthias Runge mru...@redhat.com

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-23 Thread Matthias Runge
On 23/01/15 10:31, Jeremy Stanley wrote:
 On 2015-01-23 10:11:46 +0100 (+0100), Matthias Runge wrote:
 [...]
 It would be totally awesome to switch from pip install to using
 distribution packages for testing purposes. At least for
 dependencies.
 [...]
 
 While it seems nice on the surface, the unfortunate truth is that
 neither the infra team nor the various package maintainers has the
 excess of manpower needed to be able to near-instantly package new
 requirements and new versions of requirements for the platforms on
 which we run our CI jobs. I fear that the turn-around on getting new
 requirements into projects would go from being on the order of hours
 or days to weeks or even months.
 
 We could work around that by generating our own system packages for
 multiple platforms rather than relying on actual distro packages,

Oh, I still would try to get that enabled from a distro perspective. But
that's something, a distro CI could provide feedback here.

I think providing/updating distro packages is quite comparable to
updating pypi packages. Maintaining an additional set of packages is
just wrong IMO. Nevertheless, that might be required for a transitional
phase.

Matthias



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Martin Geisler
Radomir Dopieralski openst...@sheep.art.pl writes:

 On 22/01/15 11:27, Martin Geisler wrote:
 Maybe this is a dumb question, but if there already is a system
 package for, say, Angular, why is the XStatic packge needed then?
 Could the system package for Horizon not just point directly to where
 the Angular package has put its files?

 Yes, that is *exactly* the change that we want to make now and that we
 are discussing! Drop the whole XStatic thing, and have a file in Horizon
 that configures all the paths. Then use Bower for downloading the files
 in development environments, and system packages in production.

Heh, I see, sorry for not reading carefully enough then!


-- 
Martin Geisler

http://google.com/+MartinGeisler


signature.asc
Description: PGP signature
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Radomir Dopieralski
On 22/01/15 11:27, Martin Geisler wrote:
 Maybe this is a dumb question, but if there already is a system package
 for, say, Angular, why is the XStatic packge needed then? Could the
 system package for Horizon not just point directly to where the Angular
 package has put its files?

Yes, that is *exactly* the change that we want to make now and that we
are discussing! Drop the whole XStatic thing, and have a file in Horizon
that configures all the paths. Then use Bower for downloading the files
in development environments, and system packages in production.

-- 
Radomir Dopieralski


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Radomir Dopieralski
On 21/01/15 19:04, Matthew Farina wrote:
 Radomir, thanks for adding some clarity. I do have follow-on questions.
 
 In your example the packages are managed by xstatic. The proposal for
 horizon, as I understand it, is to move away from xstatic packages and
 instead use bower for development and system packages (for example,
 debian, rpm, and other packages) for production. Right now, we (the
 horizon community) is maintaining some of the xstatic packages. For many
 of these xstatic packages there is no corollary in a system package. Who
 will create and maintain the system packages for the JavaScript libraries?
 
 You noted that we get maintenance and updates for free. Since the
 system packages don't exist now and we don't know who will create or
 maintain them I'm not sure how to reconcile this.
 
 What am I missing?

All of the XStatic packages had to be packaged for the respective
distributions in order to package Horizon. That was a lot of work, but
it has been done my the packagers of the distributions. As far as I
understand, most of those XStatic packages are just dummies, pointing to
the actual system-wide JavaScript packages -- XStatic has such a
capability. So while we are indeed maintaining some of the XStatic
packages for our own convenience, the packages that contain actual code
in the distributions are maintained by those distributions' packagers.

-- 
Radomir Dopieralski

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Matthias Runge
On 22/01/15 09:48, Radomir Dopieralski wrote:

 All of the XStatic packages had to be packaged for the respective
 distributions in order to package Horizon. That was a lot of work, but
 it has been done my the packagers of the distributions. As far as I
 understand, most of those XStatic packages are just dummies, pointing to
 the actual system-wide JavaScript packages -- XStatic has such a
 capability. So while we are indeed maintaining some of the XStatic
 packages for our own convenience, the packages that contain actual code
 in the distributions are maintained by those distributions' packagers.
 
Yupp,

poniting to system packages is something, which makes the XStatic
approach way more acceptable.
But, if you don't have them (yet), xstatic packages will bundle js libs
for you.

Matthias

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Martin Geisler
Matthias Runge mru...@redhat.com writes:

 On 22/01/15 09:48, Radomir Dopieralski wrote:

 All of the XStatic packages had to be packaged for the respective
 distributions in order to package Horizon. That was a lot of work, but
 it has been done my the packagers of the distributions. As far as I
 understand, most of those XStatic packages are just dummies, pointing to
 the actual system-wide JavaScript packages -- XStatic has such a
 capability. So while we are indeed maintaining some of the XStatic
 packages for our own convenience, the packages that contain actual code
 in the distributions are maintained by those distributions' packagers.
 
 Yupp,

 poniting to system packages is something, which makes the XStatic
 approach way more acceptable.

Maybe this is a dumb question, but if there already is a system package
for, say, Angular, why is the XStatic packge needed then? Could the
system package for Horizon not just point directly to where the Angular
package has put its files?

-- 
Martin Geisler

http://google.com/+MartinGeisler


signature.asc
Description: PGP signature
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Jeremy Stanley
On 2015-01-22 11:53:10 -0500 (-0500), Matthew Farina wrote:
 Has anyone done an inventory of xstatic packages that are
 available as system packages? I ask because I started asking these
 questions after doing a cursory inventory and finding few xstatic
 packages as system packages.
[...]

https://packages.debian.org/xstatic

Found 41 matching packages.

I believe the majority are due to distro efforts around packaging
OpenStack.
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Matthew Farina
Radomir and Matthias,

Has anyone done an inventory of xstatic packages that are available as
system packages? I ask because I started asking these questions after doing
a cursory inventory and finding few xstatic packages as system packages. It
appeared to me that the common case was the one Matthias noted where the
xstatic package bundles the js libs. That we're actually getting them from
pypi or a mirror. Can someone show me there really are system packages to
replace the xstatic packages?


On Thu, Jan 22, 2015 at 5:15 AM, Matthias Runge mru...@redhat.com wrote:

 On 22/01/15 09:48, Radomir Dopieralski wrote:

  All of the XStatic packages had to be packaged for the respective
  distributions in order to package Horizon. That was a lot of work, but
  it has been done my the packagers of the distributions. As far as I
  understand, most of those XStatic packages are just dummies, pointing to
  the actual system-wide JavaScript packages -- XStatic has such a
  capability. So while we are indeed maintaining some of the XStatic
  packages for our own convenience, the packages that contain actual code
  in the distributions are maintained by those distributions' packagers.
 
 Yupp,

 poniting to system packages is something, which makes the XStatic
 approach way more acceptable.
 But, if you don't have them (yet), xstatic packages will bundle js libs
 for you.

 Matthias

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Richard Jones
On Fri Jan 23 2015 at 4:28:59 AM Matthew Farina m...@mattfarina.com wrote:

 I would like to add one more nuance to this discussion that I don't
 remember seeing.

 JavaScript libraries run in web browser in their JavaScript engines (like
 v8) rather than on the server. A version of a JS library may be fine on a
 system, without any security issues, but contain browser issues. The
 version used matters more to the application and the web browsers consuming
 the application than to the system it's on.


I think you're confusing Javascript in the browser vs. Javascript for
node.js

Those are two separate things. Javascript used in the browser is rarely
(never in our case) used also for node.js development. There are even two
separate packaging systems: bower is all about components for browsers,
whereas npm is all about packages for node.js. Our discussion is about
bower, and definitely not about npm or the node.js programming language.



 Some of the libraries exist as packages. For example, there are some
 debian packages. These have older versions of libraries than those that
 will work in Horizon.


Thanks to packagers working with OpenStack we are able to get newer
versions of the components we need once we have pinned them in our code.



 The libraries need to integrate for horizon and the browsers. So,
 supporting varying versions of a js library, their interactions together,
 and creating a usable interface will be a real problem. For example the
 debian packages of old or varying versions will a problem for those of us
 attempting to craft a UI. What's there isn't practically usable today. Some
 things are missing.


It's entirely up to us to specify a pinned set of component versions that
we need, which we then need the system packagers to ensure are available as
deb or rpm. Gaps will be filled as part of the usual packaging efforts that
go on during the OpenStack release cycle.


 Richard
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Matthew Farina
I would like to add one more nuance to this discussion that I don't
remember seeing.

JavaScript libraries run in web browser in their JavaScript engines (like
v8) rather than on the server. A version of a JS library may be fine on a
system, without any security issues, but contain browser issues. The
version used matters more to the application and the web browsers consuming
the application than to the system it's on.

Some of the libraries exist as packages. For example, there are some debian
packages. These have older versions of libraries than those that will work
in Horizon. The libraries need to integrate for horizon and the browsers.
So, supporting varying versions of a js library, their interactions
together, and creating a usable interface will be a real problem. For
example the debian packages of old or varying versions will a problem for
those of us attempting to craft a UI. What's there isn't practically usable
today. Some things are missing.

Does that help add clarity?

On Thu, Jan 22, 2015 at 11:53 AM, Matthew Farina m...@mattfarina.com
wrote:

 Radomir and Matthias,

 Has anyone done an inventory of xstatic packages that are available as
 system packages? I ask because I started asking these questions after doing
 a cursory inventory and finding few xstatic packages as system packages. It
 appeared to me that the common case was the one Matthias noted where the
 xstatic package bundles the js libs. That we're actually getting them from
 pypi or a mirror. Can someone show me there really are system packages to
 replace the xstatic packages?


 On Thu, Jan 22, 2015 at 5:15 AM, Matthias Runge mru...@redhat.com wrote:

 On 22/01/15 09:48, Radomir Dopieralski wrote:

  All of the XStatic packages had to be packaged for the respective
  distributions in order to package Horizon. That was a lot of work, but
  it has been done my the packagers of the distributions. As far as I
  understand, most of those XStatic packages are just dummies, pointing to
  the actual system-wide JavaScript packages -- XStatic has such a
  capability. So while we are indeed maintaining some of the XStatic
  packages for our own convenience, the packages that contain actual code
  in the distributions are maintained by those distributions' packagers.
 
 Yupp,

 poniting to system packages is something, which makes the XStatic
 approach way more acceptable.
 But, if you don't have them (yet), xstatic packages will bundle js libs
 for you.

 Matthias

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Matthew Farina
Jeremy, thanks for sharing this. I do have a couple more questions and
comments based on this.

When there is an update to our requirements, such as the recent version
increment in the version of angular used, a new package version doesn't
automatically show up as evident from that list. How would that process be
kicked off so we don't end up with a missing dependency? Does that have to
wait for a release cycle?

Many of the xstatic packages are maintained by the OpenStack community.
Just see the list in stackforge (
https://github.com/stackforge/?query=xstatic). Right now we need to update
the xstatic package ourselves and then start using it. It also feels a
little odd to maintain xstatic packages for pypi that we don't consume that
way.

This appears to affect the testing setup as well. When we start to use a
new version of a JavaScript dependency no package will exist for it. I
believe this would mean the testing environment needs to use the
development setup, in the proposal, of bower. IIRC, bower goes out to the
Internet and there isn't a mirror of packages (just a mirror of the
registry). That means we'll loose the ability to run testing installs from
local mirrors for these dependencies. I imagine a solution has been thought
of for this. Can you share any details?

Thanks,

On Thu, Jan 22, 2015 at 2:35 PM, Jeremy Stanley fu...@yuggoth.org wrote:

 On 2015-01-22 11:53:10 -0500 (-0500), Matthew Farina wrote:
  Has anyone done an inventory of xstatic packages that are
  available as system packages? I ask because I started asking these
  questions after doing a cursory inventory and finding few xstatic
  packages as system packages.
 [...]

 https://packages.debian.org/xstatic

 Found 41 matching packages.

 I believe the majority are due to distro efforts around packaging
 OpenStack.
 --
 Jeremy Stanley

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Matthew Farina
Richard,

I'm quite familiar with node.js and browser development. I think some of
the issue here may be a lack of detailed explanations and assumptions. By
asking questions here I, and some others, have been learning details that
we didn't know before. And, we're getting to follow from the intent from
start to finish. I'm finding this to be incredibly revealing.

Thanks,

On Thu, Jan 22, 2015 at 3:47 PM, Richard Jones r1chardj0...@gmail.com
wrote:

 On Fri Jan 23 2015 at 4:28:59 AM Matthew Farina m...@mattfarina.com
 wrote:

 I would like to add one more nuance to this discussion that I don't
 remember seeing.

 JavaScript libraries run in web browser in their JavaScript engines (like
 v8) rather than on the server. A version of a JS library may be fine on a
 system, without any security issues, but contain browser issues. The
 version used matters more to the application and the web browsers consuming
 the application than to the system it's on.


 I think you're confusing Javascript in the browser vs. Javascript for
 node.js

 Those are two separate things. Javascript used in the browser is rarely
 (never in our case) used also for node.js development. There are even two
 separate packaging systems: bower is all about components for browsers,
 whereas npm is all about packages for node.js. Our discussion is about
 bower, and definitely not about npm or the node.js programming language.



 Some of the libraries exist as packages. For example, there are some
 debian packages. These have older versions of libraries than those that
 will work in Horizon.


 Thanks to packagers working with OpenStack we are able to get newer
 versions of the components we need once we have pinned them in our code.



 The libraries need to integrate for horizon and the browsers. So,
 supporting varying versions of a js library, their interactions together,
 and creating a usable interface will be a real problem. For example the
 debian packages of old or varying versions will a problem for those of us
 attempting to craft a UI. What's there isn't practically usable today. Some
 things are missing.


 It's entirely up to us to specify a pinned set of component versions that
 we need, which we then need the system packagers to ensure are available as
 deb or rpm. Gaps will be filled as part of the usual packaging efforts that
 go on during the OpenStack release cycle.


  Richard


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-22 Thread Jeremy Stanley
On 2015-01-22 16:06:55 -0500 (-0500), Matthew Farina wrote:
[...]
 When there is an update to our requirements, such as the recent
 version increment in the version of angular used, a new package
 version doesn't automatically show up as evident from that list.
 How would that process be kicked off so we don't end up with a
 missing dependency? Does that have to wait for a release cycle?

I don't want to speak for the distro package maintainers, but from
what I've seen they generally wait until close enough to an
integrated release that they can be pretty sure the requirements are
close to frozen, so as not to waste effort packaging things which
will end up not being used.

 Many of the xstatic packages are maintained by the OpenStack
 community. Just see the list in stackforge
 (https://github.com/stackforge/?query=xstatic). Right now we need
 to update the xstatic package ourselves and then start using it.
 It also feels a little odd to maintain xstatic packages for pypi
 that we don't consume that way.

I assume (perhaps incorrectly?) that we do use those in CI jobs, so
that we can download the things a given project needs in an
automated fashion--for us handling pip requirements lists is a
solved problem (well, for some definitions of solved at least).

 This appears to affect the testing setup as well. When we start to
 use a new version of a JavaScript dependency no package will exist
 for it. I believe this would mean the testing environment needs to
 use the development setup, in the proposal, of bower. IIRC, bower
 goes out to the Internet and there isn't a mirror of packages
 (just a mirror of the registry). That means we'll loose the
 ability to run testing installs from local mirrors for these
 dependencies. I imagine a solution has been thought of for this.
 Can you share any details?

I am not aware of what the solution for this would be, but it will
be a show-stopper for the plan and so I (Infra hat on) would expect
the horizon developers to come up with an implementation which
solves that. Perhaps some routine to retrieve and pre-cache the
necessary files like we do with a lot of the random files devstack
uses, and then run that during image build time so that it's already
present on the filesystems of the machines which will run the jobs
needing it?
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-21 Thread Matthew Farina
Radomir, thanks for adding some clarity. I do have follow-on questions.

In your example the packages are managed by xstatic. The proposal for
horizon, as I understand it, is to move away from xstatic packages and
instead use bower for development and system packages (for example, debian,
rpm, and other packages) for production. Right now, we (the horizon
community) is maintaining some of the xstatic packages. For many of these
xstatic packages there is no corollary in a system package. Who will create
and maintain the system packages for the JavaScript libraries?

You noted that we get maintenance and updates for free. Since the system
packages don't exist now and we don't know who will create or maintain them
I'm not sure how to reconcile this.

What am I missing?


On Wed, Jan 21, 2015 at 3:04 AM, Radomir Dopieralski openst...@sheep.art.pl
 wrote:

 On 20/01/15 20:58, Matthew Farina wrote:
  Radomir, maybe you can help me better understand where this would go. I
  have a few questions.
 
  First, can you point me to a time when horizon used system packages
  successfully for JavaScript libraries? When I looked through the Debian
  and Ubuntu packages I couldn't find the libraries horizon is using. I'm
  curious to see this in action.

 Any distribution (perhaps except Ubuntu, which is a little funny in that
 regard) that has packaged the latest release of OpenStack, has those
 libraries.
 For instance, see

 http://pkgs.fedoraproject.org/cgit/python-django-horizon.git/tree/python-django-horizon.spec#n129


  Front-end systems almost never use system packagers like this. Can you
  point me to applications like horizon that use system packages this way?
  If Horizon is going to go it virtually alone in this space, what will
  that mean for our level of work and ability to have updates?

 Certainly. The XStatic system itself is lifted from MoinMoin wiki, for
 example -- it was created to solve exactly this problem there, and is
 used by a couple of other projects too.

 As for our work and updates, using system-wide packages is an excellent
 solution in this regard, as we get maintenance and updates for free. For
 instance, if there is a security issue in one of the JavaScript
 libraries, we don't need to patch Horizon -- the patch that is prepared
 for that specific library and applied system-wide is sufficient.
 --
 Radomir Dopieralski


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-21 Thread Matthew Farina
Martin,

django_compressor does handles creating aggregated and compressed files for
you. This isn't quite the same as C programs because it's not just due to
file size. For example, if you have 2 files many browsers will make two
separate connections to get each file. That mean negotiating a connection
(can include tls), and pulling down the file dealing with TCP slow-start.
This means one larger file is faster to download then multiple files that
are smaller in overall size.

To get a 304 Not Modified message you'll need to make sure your web server
is handling that. I've encountered horizon instances where 304 Not Modified
messages aren't happening.

Cheers,
Matt Farina


On Wed, Jan 21, 2015 at 5:40 AM, Martin Geisler mar...@geisler.net wrote:

 Matthias Runge mru...@redhat.com writes:

  On 21/01/15 09:59, Martin Geisler wrote:
 
 
  This seems to imply that users will download at least one .js file
  per dependency.
 
 
  Not necessarily. We still use django-compressor, which copies all
  javascript into fewer files. E.g. here in my untweaked juno
  environment, I just get 3 instead of 10-15 following your logic above.
  (at least one js file per xstatic package).

 Cool, I did not know about this!

 Radomir said that this is run in a post-install hook for Horizon and
 that he's unsure how or if the distros re-run the scripts when the
 dependencies are installed. That is, if an updated version of the js-foo
 package is installed, all apps that depend on js-foo would need to have
 their JS bundles refreshed.

 Or maybe it's simply run every time Horizon is started?

  That's probably acceptable for an application like Horizon which
  users will be using again and again, but for most web applications,
  you don't want your users to download 10-20 small .js files, instead
  you want them to download one minified and compressed file with all
  the JavaScript code needed.
 
  see above :D
 
 
  I'm just mentioning this since it's one way that web apps differ from
  how normal Linux apps are typically deployed. Basically, web apps
  prefer static compilation and discourages dynamic linking.
 
  I'm not sure, I can really follow you here.

 I was trying to draw a parallel to how traditional (C) programs use
 dynamic when loading -- perfect for distributions since this allows them
 to patch a security problem just once and know that all programs that
 use the affected library will get the update since they dynamically load
 the library at runtime.

 Contrast this with static linking -- which is normally discouraged or
 forbidden by distributions since you'll have to recompile all dependant
 programs when you patch a library.

 I was thinking that web apps look like statically linked programs when
 they're deployed using compressed and minified sources for maximum
 performance.

 Let me add that this kind of optimization matters the most if your
 visitors who only visit the app once or rarely. With a file per
 dependency, they'll get poor performance since their browser won't have
 cached the files.

 For an app like Horizon it might not be as important: even if it loads a
 little slow on your first visit, you're likely to visit it many times as
 you admin your deployment and those subsequent visits will be faster.
 Still not as fast as they would be if the server could reply with a
 single 304 Not Modified, but probably fast enough.

 --
 Martin Geisler

 http://google.com/+MartinGeisler

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-21 Thread Martin Geisler
Matthias Runge mru...@redhat.com writes:

 On 21/01/15 09:59, Martin Geisler wrote:

 
 This seems to imply that users will download at least one .js file
 per dependency.
 

 Not necessarily. We still use django-compressor, which copies all
 javascript into fewer files. E.g. here in my untweaked juno
 environment, I just get 3 instead of 10-15 following your logic above.
 (at least one js file per xstatic package).

Cool, I did not know about this!

Radomir said that this is run in a post-install hook for Horizon and
that he's unsure how or if the distros re-run the scripts when the
dependencies are installed. That is, if an updated version of the js-foo
package is installed, all apps that depend on js-foo would need to have
their JS bundles refreshed.

Or maybe it's simply run every time Horizon is started?

 That's probably acceptable for an application like Horizon which
 users will be using again and again, but for most web applications,
 you don't want your users to download 10-20 small .js files, instead
 you want them to download one minified and compressed file with all
 the JavaScript code needed.

 see above :D

 
 I'm just mentioning this since it's one way that web apps differ from
 how normal Linux apps are typically deployed. Basically, web apps
 prefer static compilation and discourages dynamic linking.

 I'm not sure, I can really follow you here.

I was trying to draw a parallel to how traditional (C) programs use
dynamic when loading -- perfect for distributions since this allows them
to patch a security problem just once and know that all programs that
use the affected library will get the update since they dynamically load
the library at runtime.

Contrast this with static linking -- which is normally discouraged or
forbidden by distributions since you'll have to recompile all dependant
programs when you patch a library.

I was thinking that web apps look like statically linked programs when
they're deployed using compressed and minified sources for maximum
performance.

Let me add that this kind of optimization matters the most if your
visitors who only visit the app once or rarely. With a file per
dependency, they'll get poor performance since their browser won't have
cached the files.

For an app like Horizon it might not be as important: even if it loads a
little slow on your first visit, you're likely to visit it many times as
you admin your deployment and those subsequent visits will be faster.
Still not as fast as they would be if the server could reply with a
single 304 Not Modified, but probably fast enough.

-- 
Martin Geisler

http://google.com/+MartinGeisler


signature.asc
Description: PGP signature
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-21 Thread Radomir Dopieralski
On 20/01/15 20:58, Matthew Farina wrote:
 Radomir, maybe you can help me better understand where this would go. I
 have a few questions.
 
 First, can you point me to a time when horizon used system packages
 successfully for JavaScript libraries? When I looked through the Debian
 and Ubuntu packages I couldn't find the libraries horizon is using. I'm
 curious to see this in action.

Any distribution (perhaps except Ubuntu, which is a little funny in that
regard) that has packaged the latest release of OpenStack, has those
libraries.
For instance, see
http://pkgs.fedoraproject.org/cgit/python-django-horizon.git/tree/python-django-horizon.spec#n129


 Front-end systems almost never use system packagers like this. Can you
 point me to applications like horizon that use system packages this way?
 If Horizon is going to go it virtually alone in this space, what will
 that mean for our level of work and ability to have updates?

Certainly. The XStatic system itself is lifted from MoinMoin wiki, for
example -- it was created to solve exactly this problem there, and is
used by a couple of other projects too.

As for our work and updates, using system-wide packages is an excellent
solution in this regard, as we get maintenance and updates for free. For
instance, if there is a security issue in one of the JavaScript
libraries, we don't need to patch Horizon -- the patch that is prepared
for that specific library and applied system-wide is sufficient.
-- 
Radomir Dopieralski


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-21 Thread Radomir Dopieralski
On 21/01/15 09:21, david.co...@oracle.com wrote:
 As for our work and updates, using system-wide packages is an excellent
 solution in this regard, as we get maintenance and updates for free. For
 instance, if there is a security issue in one of the JavaScript
 libraries, we don't need to patch Horizon -- the patch that is prepared
 for that specific library and applied system-wide is sufficient.
 
 But for distributions that package Horizon itself, don't they
 effectively need to patch Horizon? Namely, don't they need to install
 on their build systems fixed JavaScript distribution packages to
 address the security issue and then they need to rebuild Horizon itself
 even if there are no Horizon source code changes.
 
 From a Horizon end-user perspective who relies on the distribution's
 packages to get Horizon, they'll get the security fix but it seems
 distributors will still need to rebuild and deliver Horizon for every
 upstream JavaScript fix whether the files come from XStatic, Bower, or
 some other method.

No, why would they? They don't copy the static files into the Horizon's
package. That's the whole point, Horizon only has paths to them. The
files themselves are provided by the system-wide packages.

-- 
Radomir Dopieralski


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-21 Thread Martin Geisler
Radomir Dopieralski openst...@sheep.art.pl writes:

 On 21/01/15 09:21, david.co...@oracle.com wrote:
 As for our work and updates, using system-wide packages is an
 excellent solution in this regard, as we get maintenance and updates
 for free. For instance, if there is a security issue in one of the
 JavaScript libraries, we don't need to patch Horizon -- the patch
 that is prepared for that specific library and applied system-wide
 is sufficient.
 
 But for distributions that package Horizon itself, don't they
 effectively need to patch Horizon? Namely, don't they need to install
 on their build systems fixed JavaScript distribution packages to
 address the security issue and then they need to rebuild Horizon
 itself even if there are no Horizon source code changes.
 
 From a Horizon end-user perspective who relies on the distribution's
 packages to get Horizon, they'll get the security fix but it seems
 distributors will still need to rebuild and deliver Horizon for every
 upstream JavaScript fix whether the files come from XStatic, Bower,
 or some other method.

 No, why would they? They don't copy the static files into the
 Horizon's package. That's the whole point, Horizon only has paths to
 them. The files themselves are provided by the system-wide packages.

This seems to imply that users will download at least one .js file per
dependency.

That's probably acceptable for an application like Horizon which users
will be using again and again, but for most web applications, you don't
want your users to download 10-20 small .js files, instead you want them
to download one minified and compressed file with all the JavaScript
code needed.

I'm just mentioning this since it's one way that web apps differ from
how normal Linux apps are typically deployed. Basically, web apps prefer
static compilation and discourages dynamic linking.

-- 
Martin Geisler

http://google.com/+MartinGeisler


signature.asc
Description: PGP signature
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-21 Thread Matthias Runge
On 21/01/15 09:59, Martin Geisler wrote:

 
 This seems to imply that users will download at least one .js file per
 dependency.
 

Not necessarily. We still use django-compressor, which copies all
javascript into fewer files. E.g. here in my untweaked juno environment,
I just get 3 instead of 10-15 following your logic above. (at least one
js file per xstatic package).

 That's probably acceptable for an application like Horizon which users
 will be using again and again, but for most web applications, you don't
 want your users to download 10-20 small .js files, instead you want them
 to download one minified and compressed file with all the JavaScript
 code needed.
see above :D

 
 I'm just mentioning this since it's one way that web apps differ from
 how normal Linux apps are typically deployed. Basically, web apps prefer
 static compilation and discourages dynamic linking.

I'm not sure, I can really follow you here.

Matthias

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-21 Thread david . comay

As for our work and updates, using system-wide packages is an excellent
solution in this regard, as we get maintenance and updates for free. For
instance, if there is a security issue in one of the JavaScript
libraries, we don't need to patch Horizon -- the patch that is prepared
for that specific library and applied system-wide is sufficient.


But for distributions that package Horizon itself, don't they
effectively need to patch Horizon? Namely, don't they need to install
on their build systems fixed JavaScript distribution packages to
address the security issue and then they need to rebuild Horizon itself
even if there are no Horizon source code changes.


From a Horizon end-user perspective who relies on the distribution's

packages to get Horizon, they'll get the security fix but it seems
distributors will still need to rebuild and deliver Horizon for every
upstream JavaScript fix whether the files come from XStatic, Bower, or
some other method.

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-20 Thread Matthew Farina
Radomir, maybe you can help me better understand where this would go. I
have a few questions.

First, can you point me to a time when horizon used system packages
successfully for JavaScript libraries? When I looked through the Debian and
Ubuntu packages I couldn't find the libraries horizon is using. I'm curious
to see this in action.

Front-end systems almost never use system packagers like this. Can you
point me to applications like horizon that use system packages this way? If
Horizon is going to go it virtually alone in this space, what will that
mean for our level of work and ability to have updates?

Thanks,
Matt

On Mon, Jan 19, 2015 at 3:45 AM, Radomir Dopieralski openst...@sheep.art.pl
 wrote:

 On 16/01/15 18:55, Matthew Farina wrote:
  Doug, there still is one open question. Distributing JavaScript
  libraries via system packages is unusual. Because of that, most of the
  JavaScript libraries used by horizon don't have existing packages. Who
  will create and maintain the packages for these JavaScript libraries for
  production? For example, most of the libraries aren't available as
  debian or ubuntu packages.

 You are mistaken here. It's actually the other way around. Fedora and
 Debian packagers used to do heroic work with previous releases to
 unbundle the static files from Horizon and link to the system-wide
 JavaScript libraries installed from packages, because their packaging
 policies require that. The introduction of XStatic was supposed to
 merely simplify and formalize that process, but now it turns out that it
 is redundant, and we can cut a corner and save the packagers having to
 create all those dummy XStatic shims.

 --
 Radomir Dopieralski


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-20 Thread Richard Jones
On Wed Jan 21 2015 at 7:00:12 AM Matthew Farina m...@mattfarina.com wrote:

 Radomir, maybe you can help me better understand where this would go. I
 have a few questions.

 First, can you point me to a time when horizon used system packages
 successfully for JavaScript libraries? When I looked through the Debian and
 Ubuntu packages I couldn't find the libraries horizon is using. I'm curious
 to see this in action.


I'm not a user of these packaging systems, but I found this, which I
believe shows the javascript system packages used:

https://packages.debian.org/sid/openstack-dashboard



 Front-end systems almost never use system packagers like this. Can you
 point me to applications like horizon that use system packages this way? If
 Horizon is going to go it virtually alone in this space, what will that
 mean for our level of work and ability to have updates?


Horizon is not a typical web front end system, it's part of OpenStack, and
thus has to abide by OpenStack packaging conventions. Those dictate that we
must have Horizon packaged by system packagers for deployment.


 Richard
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-19 Thread Radomir Dopieralski
On 16/01/15 18:55, Matthew Farina wrote:
 Doug, there still is one open question. Distributing JavaScript
 libraries via system packages is unusual. Because of that, most of the
 JavaScript libraries used by horizon don't have existing packages. Who
 will create and maintain the packages for these JavaScript libraries for
 production? For example, most of the libraries aren't available as
 debian or ubuntu packages.

You are mistaken here. It's actually the other way around. Fedora and
Debian packagers used to do heroic work with previous releases to
unbundle the static files from Horizon and link to the system-wide
JavaScript libraries installed from packages, because their packaging
policies require that. The introduction of XStatic was supposed to
merely simplify and formalize that process, but now it turns out that it
is redundant, and we can cut a corner and save the packagers having to
create all those dummy XStatic shims.

-- 
Radomir Dopieralski


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-16 Thread Doug Hellmann

 On Jan 15, 2015, at 7:27 PM, Michael Krotscheck krotsch...@gmail.com wrote:
 
  I think Oracle's got enough money to support Node.js on SPARC.
 
 How is money relevant here?
 
 Well, normally the argument I've received is We don't have the 
 time/resources/insert-other-fiscally-motivated-reason to support/work on 
 node. Ergo, money. But then, given Oracle's conduct around the whole Java 
 ridiculousness I'm not exactly favorably disposed towards anything or anyone 
 associated with them. They'd get a lot more respect if they open-sourced 
 Solaris.
 
 Which actually reminds me of something: Infra only tests against Debian, 
 CentOS, and Fedora. It does not test Solaris. So, no offense, but I don't 
 care about your SPARC servers.
 
 ... that Node.js is an issue because we can not use it.  Not because we
 don't WANT to use it.  This is an important distinction that you seem to
 have missed.
 
 I haven't missed it, I just made the assumption that if someone wants to use 
 a tool, they would be busy porting that tool rather than arguing on a list 
 about it.
 
 Case and point: I wanted to use javascript in OpenStack Infra, so I did a ton 
 of legwork to bring node, npm, bower, karma, jasmine, protractor, and grunt 
 into the infra toolchain.
 
  So let me reframe this argument a bit: If you refuse to allow us
  frontend developers to use node, npm, and bower, then I expect you to
  reciprocate and no longer use the python executable or pip to write your
  code, and you can only debug using wsgi. Since those fill equivalent
  roles in our various languages-du-jour, it seems like a perfectly fair
  exchange. Deal?
 
 I'm sorry, what?  Python is fully supported on Solaris (both x86 and
 SPARC).  This discussion has nothing whatsoever to do with the
 'language-du-jour'.
 
 It has everything to do with it: There are javascript engineers that want to 
 use their tools, just like there are python engineers that want to user their 
 tools. You're saying we can't use javascript tools because of SPARC's lack of 
 support. I'm merely asking that our python engineers reciprocate and abandon 
 your own tools out of solidarity. After all, we're all in this together, 
 right?

We are, and as this conversation has veered off in a destructive direction, I 
think we should back up and look at the compromise Radomir posted [1] to see if 
that solves the original technical problem we all have.

Does having the requirements specified in a JSON file, without requiring a 
specific build tool to install the files, solve the packaging, testing, and 
deployment issue on platforms where node.js isn’t supported natively right now?

Doug

[1] http://lists.openstack.org/pipermail/openstack-dev/2015-January/054538.html

 
 Michael
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-16 Thread Drew Fisher
On 1/16/15 9:08 AM, Doug Hellmann wrote:
 We are, and as this conversation has veered off in a destructive
 direction, I think we should back up and look at the compromise Radomir
 posted [1] to see if that solves the original technical problem we all have.
 
 Does having the requirements specified in a JSON file, without requiring
 a specific build tool to install the files, solve the packaging,
 testing, and deployment issue on platforms where node.js isn’t supported
 natively right now?

For Solaris, yes.  We can make that work.  Thanks, Radomir for the
suggestion.

-Drew


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-16 Thread Michael Krotscheck

 Does having the requirements specified in a JSON file, without requiring a
 specific build tool to install the files, solve the packaging, testing, and
 deployment issue on platforms where node.js isn’t supported natively right
 now?


We only support what we test. Unless I missed something, there are no
platforms, relevant to horizon and openstack, in where nodejs is not
supported natively.

- Fedora 18 and later have a native nodejs package, infra offers versions
20/21.
- CentOS delivers a native package via EPEL as of version 5. Infra includes
the EPEL repository and offers CentOS 6/7.
- Debian offers it as of Wheezy, Ubuntu as of Trusty. Infra's in the
process of deprecating most of our Precise nodes, which I believe we're
only keeping around for our python3.3 jobs (3.4 is already on trusty).
Horizon only tests Python 2.7.

Michael
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-16 Thread Doug Hellmann

 On Jan 16, 2015, at 11:33 AM, Drew Fisher drew.fis...@oracle.com wrote:
 
 On 1/16/15 9:08 AM, Doug Hellmann wrote:
 We are, and as this conversation has veered off in a destructive
 direction, I think we should back up and look at the compromise Radomir
 posted [1] to see if that solves the original technical problem we all have.
 
 Does having the requirements specified in a JSON file, without requiring
 a specific build tool to install the files, solve the packaging,
 testing, and deployment issue on platforms where node.js isn’t supported
 natively right now?
 
 For Solaris, yes.  We can make that work.  Thanks, Radomir for the
 suggestion.

Great!

Doug


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-16 Thread Matthew Farina
Doug, there still is one open question. Distributing JavaScript libraries
via system packages is unusual. Because of that, most of the JavaScript
libraries used by horizon don't have existing packages. Who will create and
maintain the packages for these JavaScript libraries for production? For
example, most of the libraries aren't available as debian or ubuntu
packages.

Updating a JavaScript dependency, such as angular, would mean each of the
system packages needs to be updated as well as the Horizon project. Would
would this process look like with packages on different systems needing
updates?

Using bower for development and system packages for production doesn't
appear to be ready to start using.

On Fri, Jan 16, 2015 at 12:09 PM, Doug Hellmann d...@doughellmann.com
wrote:


  On Jan 16, 2015, at 11:33 AM, Drew Fisher drew.fis...@oracle.com
 wrote:
 
  On 1/16/15 9:08 AM, Doug Hellmann wrote:
  We are, and as this conversation has veered off in a destructive
  direction, I think we should back up and look at the compromise Radomir
  posted [1] to see if that solves the original technical problem we all
 have.
 
  Does having the requirements specified in a JSON file, without requiring
  a specific build tool to install the files, solve the packaging,
  testing, and deployment issue on platforms where node.js isn’t supported
  natively right now?
 
  For Solaris, yes.  We can make that work.  Thanks, Radomir for the
  suggestion.

 Great!

 Doug


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-16 Thread Doug Hellmann

 On Jan 16, 2015, at 12:55 PM, Matthew Farina m...@mattfarina.com wrote:
 
 Doug, there still is one open question. Distributing JavaScript libraries via 
 system packages is unusual. Because of that, most of the JavaScript libraries 
 used by horizon don't have existing packages. Who will create and maintain 
 the packages for these JavaScript libraries for production? For example, most 
 of the libraries aren't available as debian or ubuntu packages.
 
 Updating a JavaScript dependency, such as angular, would mean each of the 
 system packages needs to be updated as well as the Horizon project. Would 
 would this process look like with packages on different systems needing 
 updates?
 
 Using bower for development and system packages for production doesn't appear 
 to be ready to start using.

We have, so far, relied on the distributors to build packages in whatever way 
works for their tools. What is it about JavaScript libraries that makes 
packaging them “unusual”?

If we’re going to continue to rely on distributors to handle the packaging, the 
next step is to get some of the distribution packagers to chime in on what else 
might be useful to make their jobs easier.  We’ve collaborated in the past by 
adding features or writing some of our own tools (that’s part of what led to 
pbr being created for python packages, for example). This thread is fairly 
long, so you might want to start a new one with an appropriate subject line to 
attract the right input.

Was there a spec for this work? If not, that would be useful to have.

 
 On Fri, Jan 16, 2015 at 12:09 PM, Doug Hellmann d...@doughellmann.com 
 mailto:d...@doughellmann.com wrote:
 
  On Jan 16, 2015, at 11:33 AM, Drew Fisher drew.fis...@oracle.com 
  mailto:drew.fis...@oracle.com wrote:
 
  On 1/16/15 9:08 AM, Doug Hellmann wrote:
  We are, and as this conversation has veered off in a destructive
  direction, I think we should back up and look at the compromise Radomir
  posted [1] to see if that solves the original technical problem we all 
  have.
 
  Does having the requirements specified in a JSON file, without requiring
  a specific build tool to install the files, solve the packaging,
  testing, and deployment issue on platforms where node.js isn’t supported
  natively right now?
 
  For Solaris, yes.  We can make that work.  Thanks, Radomir for the
  suggestion.
 
 Great!
 
 Doug
 
 
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe 
 http://openstack-dev-requ...@lists.openstack.org/?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev 
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-15 Thread Michael Krotscheck

  I think Oracle's got enough money to support Node.js on SPARC.

 How is money relevant here?


Well, normally the argument I've received is We don't have the
time/resources/insert-other-fiscally-motivated-reason to support/work on
node. Ergo, money. But then, given Oracle's conduct around the whole Java
ridiculousness I'm not exactly favorably disposed towards anything or
anyone associated with them. They'd get a lot more respect if they
open-sourced Solaris.

Which actually reminds me of something: Infra only tests against Debian,
CentOS, and Fedora. It does not test Solaris. So, no offense, but I don't
care about your SPARC servers.

... that Node.js is an issue because we can not use it.  Not because we

don't WANT to use it.  This is an important distinction that you seem to
 have missed.


I haven't missed it, I just made the assumption that if someone wants to
use a tool, they would be busy porting that tool rather than arguing on a
list about it.

Case and point: I wanted to use javascript in OpenStack Infra, so I did a
ton of legwork to bring node, npm, bower, karma, jasmine, protractor, and
grunt into the infra toolchain.

 So let me reframe this argument a bit: If you refuse to allow us
  frontend developers to use node, npm, and bower, then I expect you to
  reciprocate and no longer use the python executable or pip to write your
  code, and you can only debug using wsgi. Since those fill equivalent
  roles in our various languages-du-jour, it seems like a perfectly fair
  exchange. Deal?

 I'm sorry, what?  Python is fully supported on Solaris (both x86 and
 SPARC).  This discussion has nothing whatsoever to do with the
 'language-du-jour'.


It has everything to do with it: There are javascript engineers that want
to use their tools, just like there are python engineers that want to user
their tools. You're saying we can't use javascript tools because of SPARC's
lack of support. I'm merely asking that our python engineers reciprocate
and abandon your own tools out of solidarity. After all, we're all in this
together, right?

Michael
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-15 Thread Tihomir Trifonov
All we need is to have someone spend some time to make it possible to have
a common meta files(configs, package descriptions, etc.) so that they can
be interchangeable and used by both Bower and pip, e.g. some tool to sync
changes made in one config and adding it to another. Then - whoever prefers
Bower - will use Bower, that's mostly for development, and whoever prefers
pip - will use pip. Ideally, it seems fine to have the static files into
separate git repo(s), as it is now in XStatic.

I'll try to make an (incomplete or maybe not so correct) list of the stages
a static file goes through:

1. Development - all we need is versions of uncompressed js and css files.
We can

On Thu, Jan 15, 2015 at 12:05 AM, david.co...@oracle.com wrote:

 I won't stop to comment on this statement other than to say Javascript is
 quite relevant to Oracle, Oracle's customers, and Oracle's partners.

 Your argument is a boondoggle. Refusing to use node because your favorite
 platform doesn't support it is not the fault of node.js, it's the fault of
 the platform.


 Not to belabor the thread, but yes, of course JavaScript is very
 relevant to Oracle, Solaris, our customers/partners, etc. And that
 includes both client and server-side. As Drew stated, as of this moment
 we haven't yet made Node.js available on SPARC but I expect that to
 change in the future. But the question or potential concern remains as
 to whether adding a non-Python/pip build dependency makes sense.

 I'm not particularly well-versed in the Horizon build process so
 perhaps I'm way off base. But given that a distribution's Horizon build
 package embeds various JavaScript libraries to be used by the browser,
 how those libraries are obtained during the build process is an
 interesting build detail. I thought the intent of the XStatic work was
 to provide Python wrappers around the various JavaScript libraries so
 they could be pulled down via pip. Since there's already a Python
 requirements.txt file for versioning information, that seemed to be a
 nice way of indicating which versions of the JavaScript libraries could
 be used by Horizon and Python was used all the way through the build.

 I realize that it takes work to build the XStatic packages but given
 the Python packages are basically wrappers, it seems creating those and
 uploading them to pypi could be automated by using Bower and setup.py
 but perhaps translating the metadata isn't straightforward.


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Regards,
Tihomir Trifonov
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-15 Thread Tihomir Trifonov
Ops, sent the prev mail before finishing it...

1. Development - all we need is versions of uncompressed js and css files.
We can use bower or pip requirements to get specific versions.
2. Testing - we need to do first some 'uglify'-ing tasks, using pyscss or
grunt and to run tests on that. Is is possible to have both configurations
for grunt and pyscss ?
3. Packaging - again - 'uglifyng' some scripts and css to make packages
contain ready for production static files.


This seems like quite work to prepare the whole environment, but will it
work for the needs we have?


On Thu, Jan 15, 2015 at 10:12 AM, Tihomir Trifonov t.trifo...@gmail.com
wrote:

 All we need is to have someone spend some time to make it possible to have
 a common meta files(configs, package descriptions, etc.) so that they can
 be interchangeable and used by both Bower and pip, e.g. some tool to sync
 changes made in one config and adding it to another. Then - whoever prefers
 Bower - will use Bower, that's mostly for development, and whoever prefers
 pip - will use pip. Ideally, it seems fine to have the static files into
 separate git repo(s), as it is now in XStatic.

 I'll try to make an (incomplete or maybe not so correct) list of the
 stages a static file goes through:

 1. Development - all we need is versions of uncompressed js and css files.
 We can

 On Thu, Jan 15, 2015 at 12:05 AM, david.co...@oracle.com wrote:

 I won't stop to comment on this statement other than to say Javascript is
 quite relevant to Oracle, Oracle's customers, and Oracle's partners.

 Your argument is a boondoggle. Refusing to use node because your favorite
 platform doesn't support it is not the fault of node.js, it's the fault
 of
 the platform.


 Not to belabor the thread, but yes, of course JavaScript is very
 relevant to Oracle, Solaris, our customers/partners, etc. And that
 includes both client and server-side. As Drew stated, as of this moment
 we haven't yet made Node.js available on SPARC but I expect that to
 change in the future. But the question or potential concern remains as
 to whether adding a non-Python/pip build dependency makes sense.

 I'm not particularly well-versed in the Horizon build process so
 perhaps I'm way off base. But given that a distribution's Horizon build
 package embeds various JavaScript libraries to be used by the browser,
 how those libraries are obtained during the build process is an
 interesting build detail. I thought the intent of the XStatic work was
 to provide Python wrappers around the various JavaScript libraries so
 they could be pulled down via pip. Since there's already a Python
 requirements.txt file for versioning information, that seemed to be a
 nice way of indicating which versions of the JavaScript libraries could
 be used by Horizon and Python was used all the way through the build.

 I realize that it takes work to build the XStatic packages but given
 the Python packages are basically wrappers, it seems creating those and
 uploading them to pypi could be automated by using Bower and setup.py
 but perhaps translating the metadata isn't straightforward.


 
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:
 unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




 --
 Regards,
 Tihomir Trifonov




-- 
Regards,
Tihomir Trifonov
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-15 Thread Radomir Dopieralski
On 14/01/15 23:05, david.co...@oracle.com wrote:
 I'm not particularly well-versed in the Horizon build process so
 perhaps I'm way off base. But given that a distribution's Horizon build
 package embeds various JavaScript libraries to be used by the browser,
 how those libraries are obtained during the build process is an
 interesting build detail. I thought the intent of the XStatic work was
 to provide Python wrappers around the various JavaScript libraries so
 they could be pulled down via pip. Since there's already a Python
 requirements.txt file for versioning information, that seemed to be a
 nice way of indicating which versions of the JavaScript libraries could
 be used by Horizon and Python was used all the way through the build.
 
 I realize that it takes work to build the XStatic packages but given
 the Python packages are basically wrappers, it seems creating those and
 uploading them to pypi could be automated by using Bower and setup.py
 but perhaps translating the metadata isn't straightforward.

This has actually been discussed. The problem is, that it adds
considerable complexity and some amount of work, while solves exactly
zero problems. You are just sweeping the node.js dependency under the
rug, because now, instead of being a direct dependency (for development)
of Horizon, it becomes a dependency (for building) of a package that
Horizon is dependent on. That doesn't solve anything, since all
distributions insist on building their own packages from sources, not
relying on pre-built binaries.

So what we settled on is a compromise. Horizon will not care *how* the
static files got there. Whether you put them there by hand, use Bower,
or install your distribution's packages -- Horizon doesn't care. And
neither do the tests written for Horizon, or the build scripts. They
just assume the files are where you configured them. Period. Let me
repeat that:

***You will not need Node.js or Bower to build and test Horizon.***

The packagers for different distributions will want to make packages for
the JavaScript and CSS libraries on their own anyways, and they will
want to test Horizon with those -- not with what Bower installs.

The only place where you will need Bower (but only for convenience, as
you may as well install everything manually or with your own scripts) is
the development machine. For convenience, we will keep the list of
dependencies in a format compatible with Bower -- but it's a simple JSON
file that can be read by any other tool or script, written in any language.

I hope that clears it.

-- 
Radomir Dopieralski

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread Drew Fisher


On 1/14/15 11:49 AM, Michael Krotscheck wrote:
  Solaris is supported by node.js:
 
 x86 is certainly supported.  Always has been.  That's not the issue in
 question.  My point was that SPARC is not supported.
 
 
 I think Oracle's got enough money to support Node.js on SPARC.

How is money relevant here?

 
  I think Solaris is no longer relevant
 
 I won't stoop to comment on this statement other than to say Solaris
 is quite relevant to Oracle, Oracle's customers and Oracle's partners.
 
 
 I won't stop to comment on this statement other than to say Javascript
 is quite relevant to Oracle, Oracle's customers, and Oracle's partners.
 
 Your argument is a boondoggle. Refusing to use node because your
 favorite platform doesn't support it is not the fault of node.js, it's
 the fault of the platform.

Under no circumstances am I refusing to use it.  I stated in my original
email ...

---8---

For Solaris, a requirement on Node.js is especially problematic as there
is no official SPARC port and I'm not aware of anybody else working on one.

---8---

... that Node.js is an issue because we can not use it.  Not because we
don't WANT to use it.  This is an important distinction that you seem to
have missed.

 So let me reframe this argument a bit: If you refuse to allow us
 frontend developers to use node, npm, and bower, then I expect you to
 reciprocate and no longer use the python executable or pip to write your
 code, and you can only debug using wsgi. Since those fill equivalent
 roles in our various languages-du-jour, it seems like a perfectly fair
 exchange. Deal?

I'm sorry, what?  Python is fully supported on Solaris (both x86 and
SPARC).  This discussion has nothing whatsoever to do with the
'language-du-jour'.

I continued this thread because we came across the and the blueprint
suggesting moving to using Bower rather than XStatic and I'm attempting
to voice the concerns we have for moving to Node.  It may be that
nothing can be done in the short term (for Kilo) with the long term
action being to get Node ported to SPARC.

-Drew

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread Michael Krotscheck

  Solaris is supported by node.js:

 x86 is certainly supported.  Always has been.  That's not the issue in
 question.  My point was that SPARC is not supported.


I think Oracle's got enough money to support Node.js on SPARC.

 I think Solaris is no longer relevant

 I won't stoop to comment on this statement other than to say Solaris
 is quite relevant to Oracle, Oracle's customers and Oracle's partners.


I won't stop to comment on this statement other than to say Javascript is
quite relevant to Oracle, Oracle's customers, and Oracle's partners.

Your argument is a boondoggle. Refusing to use node because your favorite
platform doesn't support it is not the fault of node.js, it's the fault of
the platform.

Don't get me wrong: Node.js run as a server is a horrible, horrible idea,
and I *like* javascript. But then, running PHP3 on a server is *also* a
horrible, horrible idea, but that didn't really stop anyone 15 years ago.
The same goes for lots of other languages.

So let me reframe this argument a bit: If you refuse to allow us frontend
developers to use node, npm, and bower, then I expect you to reciprocate
and no longer use the python executable or pip to write your code, and you
can only debug using wsgi. Since those fill equivalent roles in our various
languages-du-jour, it seems like a perfectly fair exchange. Deal?

Michael
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread david . comay

I won't stop to comment on this statement other than to say Javascript is
quite relevant to Oracle, Oracle's customers, and Oracle's partners.

Your argument is a boondoggle. Refusing to use node because your favorite
platform doesn't support it is not the fault of node.js, it's the fault of
the platform.


Not to belabor the thread, but yes, of course JavaScript is very
relevant to Oracle, Solaris, our customers/partners, etc. And that
includes both client and server-side. As Drew stated, as of this moment
we haven't yet made Node.js available on SPARC but I expect that to
change in the future. But the question or potential concern remains as
to whether adding a non-Python/pip build dependency makes sense.

I'm not particularly well-versed in the Horizon build process so
perhaps I'm way off base. But given that a distribution's Horizon build
package embeds various JavaScript libraries to be used by the browser,
how those libraries are obtained during the build process is an
interesting build detail. I thought the intent of the XStatic work was
to provide Python wrappers around the various JavaScript libraries so
they could be pulled down via pip. Since there's already a Python
requirements.txt file for versioning information, that seemed to be a
nice way of indicating which versions of the JavaScript libraries could
be used by Horizon and Python was used all the way through the build.

I realize that it takes work to build the XStatic packages but given
the Python packages are basically wrappers, it seems creating those and
uploading them to pypi could be automated by using Bower and setup.py
but perhaps translating the metadata isn't straightforward.

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread Drew Fisher


On 1/14/15 6:25 AM, Anton Zemlyanov wrote:
 Solaris is supported by node.js:

x86 is certainly supported.  Always has been.  That's not the issue in
question.  My point was that SPARC is not supported.

 
 Solaris 32-bit Binary:
 http://nodejs.org/dist/v0.10.35/node-v0.10.35-sunos-x86.tar.gz
 Solaris 64-bit Binary:
 http://nodejs.org/dist/v0.10.35/node-v0.10.35-sunos-x64.tar.gz
 
 I think Solaris is no longer relevant

I won't stoop to comment on this statement other than to say Solaris is
quite relevant to Oracle, Oracle's customers and Oracle's partners.

-Drew

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread Jeremy Stanley
On 2015-01-14 17:25:46 +0400 (+0400), Anton Zemlyanov wrote:
 Solaris is supported by node.js:
 
 Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.35/
 node-v0.10.35-sunos-x86.tar.gz
 Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.35/
 node-v0.10.35-sunos-x64.tar.gz

I believe the point made was that without SPARC (probably only the
64-bit variant these days but still) support, that's not enough.
Solaris targets more than just Intel's processors. (So does Linux
for that matter!)

 I think Solaris is no longer relevant

The Solaris developer community probably disagrees with you on this
point. ;)
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread Jason Rist
On 01/14/2015 09:14 AM, Matthew Farina wrote:
 I think we're discussing two different situations with slightly different
 requirements.
 
 First, there is development and test. I believe the stated goal is to have
 node.js here. Would an environment not supporting node.js be needed for
 development or testing? Note, the JavaScript under test and to be executed
 by users is in browser rather than server side. The important execution
 environment is in their browser.
 
 The second environment is production. In that case the system packages
 would be used. What's still unclear is who creates and maintains those
 packages since many of them don't exist today.
 
 
 On Wed, Jan 14, 2015 at 10:14 AM, Drew Fisher drew.fis...@oracle.com
 wrote:
 


 On 1/14/15 6:25 AM, Anton Zemlyanov wrote:
 Solaris is supported by node.js:

 x86 is certainly supported.  Always has been.  That's not the issue in
 question.  My point was that SPARC is not supported.


 Solaris 32-bit Binary:
 http://nodejs.org/dist/v0.10.35/node-v0.10.35-sunos-x86.tar.gz
 Solaris 64-bit Binary:
 http://nodejs.org/dist/v0.10.35/node-v0.10.35-sunos-x64.tar.gz

 I think Solaris is no longer relevant

 I won't stoop to comment on this statement other than to say Solaris is
 quite relevant to Oracle, Oracle's customers and Oracle's partners.

 -Drew


Seems to me like you'd want to test using packages for SPARC, not using
a dev sort of environment.  Packages again for production. My two cents
is that you need to contribute to the node community if you require
SPARC compatibility for node for development, since SPARC is an outlier.

-J

-- 
Jason E. Rist
Senior Software Engineer
OpenStack Infrastructure Integration
Red Hat, Inc.
openuc: +1.972.707.6408
mobile: +1.720.256.3933
Freenode: jrist
github/identi.ca: knowncitizen

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread Matthew Farina
I think we're discussing two different situations with slightly different
requirements.

First, there is development and test. I believe the stated goal is to have
node.js here. Would an environment not supporting node.js be needed for
development or testing? Note, the JavaScript under test and to be executed
by users is in browser rather than server side. The important execution
environment is in their browser.

The second environment is production. In that case the system packages
would be used. What's still unclear is who creates and maintains those
packages since many of them don't exist today.


On Wed, Jan 14, 2015 at 10:14 AM, Drew Fisher drew.fis...@oracle.com
wrote:



 On 1/14/15 6:25 AM, Anton Zemlyanov wrote:
  Solaris is supported by node.js:

 x86 is certainly supported.  Always has been.  That's not the issue in
 question.  My point was that SPARC is not supported.

 
  Solaris 32-bit Binary:
  http://nodejs.org/dist/v0.10.35/node-v0.10.35-sunos-x86.tar.gz
  Solaris 64-bit Binary:
  http://nodejs.org/dist/v0.10.35/node-v0.10.35-sunos-x64.tar.gz
 
  I think Solaris is no longer relevant

 I won't stoop to comment on this statement other than to say Solaris is
 quite relevant to Oracle, Oracle's customers and Oracle's partners.

 -Drew

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread Anton Zemlyanov
Solaris is supported by node.js:

Solaris 32-bit Binary:
http://nodejs.org/dist/v0.10.35/node-v0.10.35-sunos-x86.tar.gz
Solaris 64-bit Binary:
http://nodejs.org/dist/v0.10.35/node-v0.10.35-sunos-x64.tar.gz

I think Solaris is no longer relevant

On Tue, Jan 13, 2015 at 7:13 PM, Drew Fisher drew.fis...@oracle.com wrote:



 On 1/13/15 7:59 AM, Jeremy Stanley wrote:
  On 2015-01-13 08:50:28 +0100 (+0100), Matthias Runge wrote:
  [...]
  But, as far as I understand, node.js will become a development
  requirement (and most probably a requirement for testing), but not for
  deployment.
  [...]
 
  A requirement for testing _is_ a requirement for deployment. If it's
  not tested, it's broken. If you're deploying software on a platform
  where it can't be tested then you're simply _hoping_ that it's not
  broken, and that is almost certainly a false hope.
 

 Exactly.  We have to test this code base extensively before we package
 it up for Solaris.  Under no circumstances do we just blindly repackage
 the releases and push them out to customers.  Node.js is a total
 incompatibility for Solaris.  If upstream moves to using Bower we'll be
 forced to look for alternatives at managing the JavaScript libraries.

 Why were the libraries ripped from the Horizon codebase in the first
 place?  It seems to me they belong with the code using it.

 -Drew

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-14 Thread Radomir Dopieralski
On 13/01/15 16:13, Drew Fisher wrote:
 
 
 On 1/13/15 7:59 AM, Jeremy Stanley wrote:
 On 2015-01-13 08:50:28 +0100 (+0100), Matthias Runge wrote:
 [...]
 But, as far as I understand, node.js will become a development
 requirement (and most probably a requirement for testing), but not for
 deployment.
 [...]

 A requirement for testing _is_ a requirement for deployment. If it's
 not tested, it's broken. If you're deploying software on a platform
 where it can't be tested then you're simply _hoping_ that it's not
 broken, and that is almost certainly a false hope.

 
 Exactly.  We have to test this code base extensively before we package
 it up for Solaris.  Under no circumstances do we just blindly repackage
 the releases and push them out to customers.  Node.js is a total
 incompatibility for Solaris.  If upstream moves to using Bower we'll be
 forced to look for alternatives at managing the JavaScript libraries.

I have some bad news for you. Horizon already uses node.js for running
jshint on its JavaScript files on the gate. Simply because there is no
other alternative. You are welcome to work on and propose a better solution.

-- 
Radomir Dopieralski


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-13 Thread Matthias Runge
On 13/01/15 16:31, Jeremy Stanley wrote:
 On 2015-01-13 08:13:41 -0700 (-0700), Drew Fisher wrote:
 [...]
 Why were the libraries ripped from the Horizon codebase in the
 first place? It seems to me they belong with the code using it.
 
 I disagree. If those libraries aren't developed as part of Horizon
 then they should not be copied into and distributed as part of its
 source tree. That's code duplication, plain and simple.
 
 I'm in favor of cleaning out all the vendoring of third-party
 libraries in OpenStack projects, but agree that it would be nice to
 find a cross-platform/portable mechanism for handling them.
 
Yes!

Keeping libraries separate, makes maintaining stuff so much easier.

You don't need to persuade me here. I completely agree.

Matthias

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-13 Thread Jeremy Stanley
On 2015-01-13 08:50:28 +0100 (+0100), Matthias Runge wrote:
[...]
 But, as far as I understand, node.js will become a development
 requirement (and most probably a requirement for testing), but not for
 deployment.
[...]

A requirement for testing _is_ a requirement for deployment. If it's
not tested, it's broken. If you're deploying software on a platform
where it can't be tested then you're simply _hoping_ that it's not
broken, and that is almost certainly a false hope.
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-13 Thread Drew Fisher


On 1/13/15 7:59 AM, Jeremy Stanley wrote:
 On 2015-01-13 08:50:28 +0100 (+0100), Matthias Runge wrote:
 [...]
 But, as far as I understand, node.js will become a development
 requirement (and most probably a requirement for testing), but not for
 deployment.
 [...]
 
 A requirement for testing _is_ a requirement for deployment. If it's
 not tested, it's broken. If you're deploying software on a platform
 where it can't be tested then you're simply _hoping_ that it's not
 broken, and that is almost certainly a false hope.
 

Exactly.  We have to test this code base extensively before we package
it up for Solaris.  Under no circumstances do we just blindly repackage
the releases and push them out to customers.  Node.js is a total
incompatibility for Solaris.  If upstream moves to using Bower we'll be
forced to look for alternatives at managing the JavaScript libraries.

Why were the libraries ripped from the Horizon codebase in the first
place?  It seems to me they belong with the code using it.

-Drew

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-13 Thread Jeremy Stanley
On 2015-01-13 08:13:41 -0700 (-0700), Drew Fisher wrote:
[...]
 Why were the libraries ripped from the Horizon codebase in the
 first place? It seems to me they belong with the code using it.

I disagree. If those libraries aren't developed as part of Horizon
then they should not be copied into and distributed as part of its
source tree. That's code duplication, plain and simple.

I'm in favor of cleaning out all the vendoring of third-party
libraries in OpenStack projects, but agree that it would be nice to
find a cross-platform/portable mechanism for handling them.
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-12 Thread Drew Fisher


On 12/18/14 6:58 AM, Radomir Dopieralski wrote:
 Hello,
 
 revisiting the package management for the Horizon's static files again,
 I would like to propose a particular solution. Hopefully it will allow
 us to both simplify the whole setup, and use the popular tools for the
 job, without losing too much of benefits of our current process.
 
 The changes we would need to make are as follows:
 
 * get rid of XStatic entirely;
 * add to the repository a configuration file for Bower, with all the
 required bower packages listed and their versions specified;

I know I'm very very late to this thread but can I ask why Bower?  Bower
has a hard requirement on Node.js which was removed as a dependency in
Havana.  Why are we reintroducing this requirement?

For Solaris, a requirement on Node.js is especially problematic as there
is no official SPARC port and I'm not aware of anybody else working on one.

I agree that XStatic isn't really the best solution here but are there
any other solutions that don't involve Node.js?

Thanks.

-Drew

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-12 Thread Matthias Runge
On 12/01/15 21:53, Drew Fisher wrote:

 I know I'm very very late to this thread but can I ask why Bower?  Bower
 has a hard requirement on Node.js which was removed as a dependency in
 Havana.  Why are we reintroducing this requirement?
 
 For Solaris, a requirement on Node.js is especially problematic as there
 is no official SPARC port and I'm not aware of anybody else working on one.
 
 I agree that XStatic isn't really the best solution here but are there
 any other solutions that don't involve Node.js?
 
The same is true for ARM based machines, as node.js is AFAIK x86 only.

But, as far as I understand, node.js will become a development
requirement (and most probably a requirement for testing), but not for
deployment.

Bower is just another package manager, comparable to npm, pip etc. if
you use that aside your systems package manager.

The idea is, to use something like dpkg or rpm to provide dependencies
for installation. During development and testing, it's proposed to rely
on bower to install dependencies.

Matthias


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-08 Thread Richard Jones
Thanks, Radomir. How much detail from this discussion should be captured in
the blueprint? I'm afraid I'm more familiar with the Python PEP process.

On Thu Jan 08 2015 at 11:38:57 PM Radomir Dopieralski 
openst...@sheep.art.pl wrote:

 On 06/01/15 01:53, Richard Jones wrote:
  I think the only outstanding question is how developers and
  non-packagers populate the bower_components directory - that is, how is
  bower expected to be available for them?
 
  I think following the Storyboard approach is a good idea: isolate a
  known-working node/bower environment local to horizon which is managed
  by tox - so to invoke bower you run tox -e bower command. No worries
  about system installation or compatibility, and works in the gate.
 
  Horizon installation (whenever a pip install would be invoked) would
  then also have a tox -e bower install invocation.
 
  Storyboard[1] uses a thing called nodeenv[2] which is installed through
  pip / requirements.txt to control the node environment. It then has
  bower commands in tox.ini[3] (though I'd just have a single bower
  environment to implement the tox command I suggest above.
 
 
   Richard
 
  [1] https://wiki.openstack.org/wiki/StoryBoard
  [2] https://pypi.python.org/pypi/nodeenv
  [3] https://git.openstack.org/cgit/openstack-infra/
 storyboard-webclient/tree/tox.ini
 

 I created a blueprint for this.
 https://blueprints.launchpad.net/horizon/+spec/static-file-bower
 --
 Radomir Dopieralski


 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-08 Thread Radomir Dopieralski
On 06/01/15 01:53, Richard Jones wrote:
 I think the only outstanding question is how developers and
 non-packagers populate the bower_components directory - that is, how is
 bower expected to be available for them?
 
 I think following the Storyboard approach is a good idea: isolate a
 known-working node/bower environment local to horizon which is managed
 by tox - so to invoke bower you run tox -e bower command. No worries
 about system installation or compatibility, and works in the gate.
 
 Horizon installation (whenever a pip install would be invoked) would
 then also have a tox -e bower install invocation.
 
 Storyboard[1] uses a thing called nodeenv[2] which is installed through
 pip / requirements.txt to control the node environment. It then has
 bower commands in tox.ini[3] (though I'd just have a single bower
 environment to implement the tox command I suggest above.
 
  
  Richard
 
 [1] https://wiki.openstack.org/wiki/StoryBoard
 [2] https://pypi.python.org/pypi/nodeenv
 [3] 
 https://git.openstack.org/cgit/openstack-infra/storyboard-webclient/tree/tox.ini
 

I created a blueprint for this.
https://blueprints.launchpad.net/horizon/+spec/static-file-bower
-- 
Radomir Dopieralski


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-07 Thread Radomir Dopieralski
On 06/01/15 18:39, Lin Hua Cheng wrote:
 Radomir,
 
 The current version of Angular were using in Horizon still does not have
 cookie and mock
 packages: 
 https://github.com/stackforge/xstatic-angular/tree/1.2.1.1/xstatic/pkg/angular/data
 
 We still need to do it the long way:
 1. Update the Angular version in global-requirements
 2. Wait till it gets merge and propagate to horizon requirements
 3. Remove references loading of mock and cookie packages in horizon and
 horizon requirement
 4. Remove mock and cookie from global-requirements.

That's strange, I thought that we use 1.2.16 already. Sorry for my mistake.

-- 
Radomir Dopieralski


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-06 Thread Radomir Dopieralski
On 06/01/15 01:39, Tripp, Travis S wrote:
 What Radomir proposes looks like it would greatly ease the process I am still 
 going through to get the latest angular available to Horizon for current 
 development.  At the time of writing this, I’m still trying to get the 
 updated library through.  I hit a rather difficult workflow:
 
 
   1.  Packaged the latest into Xstatic-Angular-1.3.7
   2.  Submitted patch which deprecated the separate older 
 xstatic-angular-cookies and xstatic-angular-mock packages
   3.  Reviewed and approved (after correcting an initial mis-repackaging)
   4.  Radomir released to Pypi
 
 This was pretty easy and not too hard. Not too much to complain about.
 
 However, now, to get Horizon to use it, I have to get that into global 
 requirements.  Since I’m deprecating old packages I got stuck in a sort of 
 ugly dependency path.  I couldn’t remove the cookies and mock libraries from 
 the global requirements patch that added the new 1.3.7 package because of 
 horizon still referencing the deprecated packages.  And, when I did it 
 anyway, the integration tests failed due to horizon being dependent on 
 something not in global requirements.  So, now, as far as I can tell we have 
 to jump through the following hoops:
 
 
   1.  Global requirements patch to add angular 1.3.7
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun
   2.  Horizon patch to update to angular 1.3.7 and remove deprecated mock and 
 cookies packages
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun
   3.  Global requirements patch to remove deprecated mock and cookies
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun
 
 Don’t get me wrong, I really do think the gate is brilliant and am all for a 
 review / approval process, but this does seem excessive for a UI library that 
 should only be used by Horizon. Is there some other reason that this should 
 have to go through global requirements?

You can do it much easier, since the current version of Angular already
packages what is in the deprecated modules. So just:

1. Patch Horizon to remove the xstatic dependencies to the mock and
cookies packages.
2. Patch global-requirements to remove them, and add newer Angular.
3. Patch Horizon to use the newer Angular.

-- 
Radomir Dopieralski

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-06 Thread Lin Hua Cheng
Radomir,

The current version of Angular were using in Horizon still does not have
cookie and mock packages:
https://github.com/stackforge/xstatic-angular/tree/1.2.1.1/xstatic/pkg/angular/data

We still need to do it the long way:
1. Update the Angular version in global-requirements
2. Wait till it gets merge and propagate to horizon requirements
3. Remove references loading of mock and cookie packages in horizon and
horizon requirement
4. Remove mock and cookie from global-requirements.

-Lin

On Tue, Jan 6, 2015 at 1:00 AM, Radomir Dopieralski openst...@sheep.art.pl
wrote:

 On 06/01/15 01:39, Tripp, Travis S wrote:
  What Radomir proposes looks like it would greatly ease the process I am
 still going through to get the latest angular available to Horizon for
 current development.  At the time of writing this, I’m still trying to get
 the updated library through.  I hit a rather difficult workflow:
 
 
1.  Packaged the latest into Xstatic-Angular-1.3.7
2.  Submitted patch which deprecated the separate older
 xstatic-angular-cookies and xstatic-angular-mock packages
3.  Reviewed and approved (after correcting an initial mis-repackaging)
4.  Radomir released to Pypi
 
  This was pretty easy and not too hard. Not too much to complain about.
 
  However, now, to get Horizon to use it, I have to get that into global
 requirements.  Since I’m deprecating old packages I got stuck in a sort of
 ugly dependency path.  I couldn’t remove the cookies and mock libraries
 from the global requirements patch that added the new 1.3.7 package because
 of horizon still referencing the deprecated packages.  And, when I did it
 anyway, the integration tests failed due to horizon being dependent on
 something not in global requirements.  So, now, as far as I can tell we
 have to jump through the following hoops:
 
 
1.  Global requirements patch to add angular 1.3.7
   *   Verify check / recheck fun
   *   Reviewed and approved
   *   Gate check / recheck fun
2.  Horizon patch to update to angular 1.3.7 and remove deprecated
 mock and cookies packages
   *   Verify check / recheck fun
   *   Reviewed and approved
   *   Gate check / recheck fun
3.  Global requirements patch to remove deprecated mock and cookies
   *   Verify check / recheck fun
   *   Reviewed and approved
   *   Gate check / recheck fun
 
  Don’t get me wrong, I really do think the gate is brilliant and am all
 for a review / approval process, but this does seem excessive for a UI
 library that should only be used by Horizon. Is there some other reason
 that this should have to go through global requirements?

 You can do it much easier, since the current version of Angular already
 packages what is in the deprecated modules. So just:

 1. Patch Horizon to remove the xstatic dependencies to the mock and
 cookies packages.
 2. Patch global-requirements to remove them, and add newer Angular.
 3. Patch Horizon to use the newer Angular.

 --
 Radomir Dopieralski

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-06 Thread Tripp, Travis S
Thanks, Radomir.

I originally started a patch on Horizon and was going to do that, but was
guided to update global requirements first.

I¹ll go ahead and redo that patch on Horizon.

-Travis

On 1/6/15, 2:00 AM, Radomir Dopieralski openst...@sheep.art.pl wrote:

On 06/01/15 01:39, Tripp, Travis S wrote:
 What Radomir proposes looks like it would greatly ease the process I am
still going through to get the latest angular available to Horizon for
current development.  At the time of writing this, I¹m still trying to
get the updated library through.  I hit a rather difficult workflow:
 
 
   1.  Packaged the latest into Xstatic-Angular-1.3.7
   2.  Submitted patch which deprecated the separate older
xstatic-angular-cookies and xstatic-angular-mock packages
   3.  Reviewed and approved (after correcting an initial
mis-repackaging)
   4.  Radomir released to Pypi
 
 This was pretty easy and not too hard. Not too much to complain about.
 
 However, now, to get Horizon to use it, I have to get that into global
requirements.  Since I¹m deprecating old packages I got stuck in a sort
of ugly dependency path.  I couldn¹t remove the cookies and mock
libraries from the global requirements patch that added the new 1.3.7
package because of horizon still referencing the deprecated packages.
And, when I did it anyway, the integration tests failed due to horizon
being dependent on something not in global requirements.  So, now, as
far as I can tell we have to jump through the following hoops:
 
 
   1.  Global requirements patch to add angular 1.3.7
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun
   2.  Horizon patch to update to angular 1.3.7 and remove deprecated
mock and cookies packages
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun
   3.  Global requirements patch to remove deprecated mock and cookies
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun
 
 Don¹t get me wrong, I really do think the gate is brilliant and am all
for a review / approval process, but this does seem excessive for a UI
library that should only be used by Horizon. Is there some other reason
that this should have to go through global requirements?

You can do it much easier, since the current version of Angular already
packages what is in the deprecated modules. So just:

1. Patch Horizon to remove the xstatic dependencies to the mock and
cookies packages.
2. Patch global-requirements to remove them, and add newer Angular.
3. Patch Horizon to use the newer Angular.

-- 
Radomir Dopieralski

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-05 Thread Radomir Dopieralski
On 05/01/15 00:35, Richard Jones wrote:
 On Mon Dec 22 2014 at 8:24:03 PM Radomir Dopieralski
 openst...@sheep.art.pl mailto:openst...@sheep.art.pl wrote:
 
 On 20/12/14 21:25, Richard Jones wrote:
  This is a good proposal, though I'm unclear on how the
  static_settings.py file is populated by a developer (as opposed to a
  packager, which you described).
 
 It's not, the developer version is included in the repository, and
 simply points to where Bower is configured to put the files.
 So just to be clear, as developers we:

 1. have a bower.json listing the bower component to use,
 2. use bower to fetch and install those to the bower_components
 directory at the top level of the Horizon repos checkout, and
 3. manually edit static_settings.py when we add a new bower component to
 bower.json so it knows the appropriate static files to load from that
 component.

 Is that correct?

 The above will increase the burden on those adding or upgrading bower
 components (they'll need to check the bower.json in the component for
 the appropriate static files to link in) but will make life easier for
 the re-packagers since they'll know which files they need to cater for
 in static_settings.py

Well, I expect you can tell Bower to put the files somewhere else than
in the root directory of the project -- a directory like ``bower_files``
or something (that directory is also added to ``.gitignore`` so that you
don't commit it by mistake). Then only that directory needs to be added
to the ``static_settings.py``. Of course, you still need to make all the
``script`` links in appropriate places with the right URLs, but you
would have to do that anyways.

Let's look at an example. Suppose you need to a new JavaScript library
called hipster.js. You add it to the ``bower.json`` file, and run
Bower. Bower downloads the right files and does whatever it is that it
does to them, and puts them in  ``bower_files/hipster-js``. Now you edit
Horizon's templates and add ``script src={{ STATIC_URL
}}/hipster-js/hipster.js`` to ``_scripts.html``. That's it for you.
Since your ``static_settings.py`` file already has a line:

  ('', os.path.join(BASE_DIR, '/bower_files')),

in it, it will just work.

Now, suppose that a packager wants to package this for, say, Debian. And
suppose that Debian has hipster.js packaged, except it was called
bro.js before, and they left the old name for compatibility reasons.
He will look at the change history to the ``bower.json`` and the
``_scripts.html`` files, take the ``static_settings.py`` file for his
distribution, and add a line:

  ('hipster-js/hipster.js', '/usr/lib/js_libraries/bro_js/bro.js'),


-- 
Radomir Dopieralski


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-05 Thread Richard Jones
On Mon Jan 05 2015 at 7:59:14 PM Radomir Dopieralski openst...@sheep.art.pl
wrote:

 On 05/01/15 00:35, Richard Jones wrote:
  On Mon Dec 22 2014 at 8:24:03 PM Radomir Dopieralski
  openst...@sheep.art.pl mailto:openst...@sheep.art.pl wrote:
 
  On 20/12/14 21:25, Richard Jones wrote:
   This is a good proposal, though I'm unclear on how the
   static_settings.py file is populated by a developer (as opposed to
 a
   packager, which you described).
 
  It's not, the developer version is included in the repository, and
  simply points to where Bower is configured to put the files.
  So just to be clear, as developers we:
 
  1. have a bower.json listing the bower component to use,
  2. use bower to fetch and install those to the bower_components
  directory at the top level of the Horizon repos checkout, and
  3. manually edit static_settings.py when we add a new bower component to
  bower.json so it knows the appropriate static files to load from that
  component.
 
  Is that correct?
 
  The above will increase the burden on those adding or upgrading bower
  components (they'll need to check the bower.json in the component for
  the appropriate static files to link in) but will make life easier for
  the re-packagers since they'll know which files they need to cater for
  in static_settings.py

 Well, I expect you can tell Bower to put the files somewhere else than
 in the root directory of the project -- a directory like ``bower_files``
 or something (that directory is also added to ``.gitignore`` so that you
 don't commit it by mistake). Then only that directory needs to be added
 to the ``static_settings.py``. Of course, you still need to make all the
 ``script`` links in appropriate places with the right URLs, but you
 would have to do that anyways.


Bower installs into a directory called bower_components in the current
directory, which is equivalent to your bower_files above.



 Let's look at an example. Suppose you need to a new JavaScript library
 called hipster.js. You add it to the ``bower.json`` file, and run
 Bower. Bower downloads the right files and does whatever it is that it
 does to them, and puts them in  ``bower_files/hipster-js``. Now you edit
 Horizon's templates and add ``script src={{ STATIC_URL
 }}/hipster-js/hipster.js`` to ``_scripts.html``. That's it for you.
 Since your ``static_settings.py`` file already has a line:

   ('', os.path.join(BASE_DIR, '/bower_files')),

 in it, it will just work.


Yep, except s/bower_files/bower_components :)


Now, suppose that a packager wants to package this for, say, Debian. And
 suppose that Debian has hipster.js packaged, except it was called
 bro.js before, and they left the old name for compatibility reasons.
 He will look at the change history to the ``bower.json`` and the
 ``_scripts.html`` files, take the ``static_settings.py`` file for his
 distribution, and add a line:

   ('hipster-js/hipster.js', '/usr/lib/js_libraries/bro_js/bro.js')


Ah! I had forgotten about that feature. Yep, all good :)


  Richard
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-05 Thread Tripp, Travis S
What Radomir proposes looks like it would greatly ease the process I am still 
going through to get the latest angular available to Horizon for current 
development.  At the time of writing this, I’m still trying to get the updated 
library through.  I hit a rather difficult workflow:


  1.  Packaged the latest into Xstatic-Angular-1.3.7
  2.  Submitted patch which deprecated the separate older 
xstatic-angular-cookies and xstatic-angular-mock packages
  3.  Reviewed and approved (after correcting an initial mis-repackaging)
  4.  Radomir released to Pypi

This was pretty easy and not too hard. Not too much to complain about.

However, now, to get Horizon to use it, I have to get that into global 
requirements.  Since I’m deprecating old packages I got stuck in a sort of ugly 
dependency path.  I couldn’t remove the cookies and mock libraries from the 
global requirements patch that added the new 1.3.7 package because of horizon 
still referencing the deprecated packages.  And, when I did it anyway, the 
integration tests failed due to horizon being dependent on something not in 
global requirements.  So, now, as far as I can tell we have to jump through the 
following hoops:


  1.  Global requirements patch to add angular 1.3.7
 *   Verify check / recheck fun
 *   Reviewed and approved
 *   Gate check / recheck fun
  2.  Horizon patch to update to angular 1.3.7 and remove deprecated mock and 
cookies packages
 *   Verify check / recheck fun
 *   Reviewed and approved
 *   Gate check / recheck fun
  3.  Global requirements patch to remove deprecated mock and cookies
 *   Verify check / recheck fun
 *   Reviewed and approved
 *   Gate check / recheck fun

Don’t get me wrong, I really do think the gate is brilliant and am all for a 
review / approval process, but this does seem excessive for a UI library that 
should only be used by Horizon. Is there some other reason that this should 
have to go through global requirements?

Thanks,
Travis

From: Richard Jones r1chardj0...@gmail.commailto:r1chardj0...@gmail.com
Reply-To: OpenStack List 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Monday, January 5, 2015 at 2:08 AM
To: OpenStack List 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [horizon] static files handling, bower/



On Mon Jan 05 2015 at 7:59:14 PM Radomir Dopieralski 
openst...@sheep.art.plmailto:openst...@sheep.art.pl wrote:
On 05/01/15 00:35, Richard Jones wrote:
 On Mon Dec 22 2014 at 8:24:03 PM Radomir Dopieralski
 openst...@sheep.art.plmailto:openst...@sheep.art.pl 
 mailto:openst...@sheep.art.plmailto:openst...@sheep.art.pl wrote:

 On 20/12/14 21:25, Richard Jones wrote:
  This is a good proposal, though I'm unclear on how the
  static_settings.py file is populated by a developer (as opposed to a
  packager, which you described).

 It's not, the developer version is included in the repository, and
 simply points to where Bower is configured to put the files.
 So just to be clear, as developers we:

 1. have a bower.json listing the bower component to use,
 2. use bower to fetch and install those to the bower_components
 directory at the top level of the Horizon repos checkout, and
 3. manually edit static_settings.py when we add a new bower component to
 bower.json so it knows the appropriate static files to load from that
 component.

 Is that correct?

 The above will increase the burden on those adding or upgrading bower
 components (they'll need to check the bower.json in the component for
 the appropriate static files to link in) but will make life easier for
 the re-packagers since they'll know which files they need to cater for
 in static_settings.py

Well, I expect you can tell Bower to put the files somewhere else than
in the root directory of the project -- a directory like ``bower_files``
or something (that directory is also added to ``.gitignore`` so that you
don't commit it by mistake). Then only that directory needs to be added
to the ``static_settings.py``. Of course, you still need to make all the
``script`` links in appropriate places with the right URLs, but you
would have to do that anyways.

Bower installs into a directory called bower_components in the current 
directory, which is equivalent to your bower_files above.


Let's look at an example. Suppose you need to a new JavaScript library
called hipster.js. You add it to the ``bower.json`` file, and run
Bower. Bower downloads the right files and does whatever it is that it
does to them, and puts them in  ``bower_files/hipster-js``. Now you edit
Horizon's templates and add ``script src={{ STATIC_URL
}}/hipster-js/hipster.js`` to ``_scripts.html``. That's it for you.
Since your ``static_settings.py`` file already has a line:

  ('', os.path.join(BASE_DIR, '/bower_files')),

in it, it will just work.

Yep, except s/bower_files/bower_components :)


Now, suppose

Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-05 Thread Richard Jones
I think the only outstanding question is how developers and non-packagers
populate the bower_components directory - that is, how is bower expected to
be available for them?

I think following the Storyboard approach is a good idea: isolate a
known-working node/bower environment local to horizon which is managed by
tox - so to invoke bower you run tox -e bower command. No worries about
system installation or compatibility, and works in the gate.

Horizon installation (whenever a pip install would be invoked) would then
also have a tox -e bower install invocation.

Storyboard[1] uses a thing called nodeenv[2] which is installed through pip
/ requirements.txt to control the node environment. It then has bower
commands in tox.ini[3] (though I'd just have a single bower environment
to implement the tox command I suggest above.


 Richard

[1] https://wiki.openstack.org/wiki/StoryBoard
[2] https://pypi.python.org/pypi/nodeenv
[3]
https://git.openstack.org/cgit/openstack-infra/storyboard-webclient/tree/tox.ini


On Tue Jan 06 2015 at 11:42:17 AM Tripp, Travis S travis.tr...@hp.com
wrote:

 What Radomir proposes looks like it would greatly ease the process I am
 still going through to get the latest angular available to Horizon for
 current development.  At the time of writing this, I’m still trying to get
 the updated library through.  I hit a rather difficult workflow:


   1.  Packaged the latest into Xstatic-Angular-1.3.7
   2.  Submitted patch which deprecated the separate older
 xstatic-angular-cookies and xstatic-angular-mock packages
   3.  Reviewed and approved (after correcting an initial mis-repackaging)
   4.  Radomir released to Pypi

 This was pretty easy and not too hard. Not too much to complain about.

 However, now, to get Horizon to use it, I have to get that into global
 requirements.  Since I’m deprecating old packages I got stuck in a sort of
 ugly dependency path.  I couldn’t remove the cookies and mock libraries
 from the global requirements patch that added the new 1.3.7 package because
 of horizon still referencing the deprecated packages.  And, when I did it
 anyway, the integration tests failed due to horizon being dependent on
 something not in global requirements.  So, now, as far as I can tell we
 have to jump through the following hoops:


   1.  Global requirements patch to add angular 1.3.7
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun
   2.  Horizon patch to update to angular 1.3.7 and remove deprecated mock
 and cookies packages
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun
   3.  Global requirements patch to remove deprecated mock and cookies
  *   Verify check / recheck fun
  *   Reviewed and approved
  *   Gate check / recheck fun

 Don’t get me wrong, I really do think the gate is brilliant and am all for
 a review / approval process, but this does seem excessive for a UI library
 that should only be used by Horizon. Is there some other reason that this
 should have to go through global requirements?

 Thanks,
 Travis

 From: Richard Jones r1chardj0...@gmail.commailto:r1chardj0...@gmail.com
 
 Reply-To: OpenStack List openstack-dev@lists.openstack.orgmailto:
 openstack-dev@lists.openstack.org
 Date: Monday, January 5, 2015 at 2:08 AM
 To: OpenStack List openstack-dev@lists.openstack.orgmailto:openstack
 -d...@lists.openstack.org
 Subject: Re: [openstack-dev] [horizon] static files handling, bower/



 On Mon Jan 05 2015 at 7:59:14 PM Radomir Dopieralski 
 openst...@sheep.art.plmailto:openst...@sheep.art.pl wrote:
 On 05/01/15 00:35, Richard Jones wrote:
  On Mon Dec 22 2014 at 8:24:03 PM Radomir Dopieralski
  openst...@sheep.art.plmailto:openst...@sheep.art.pl mailto:
 openst...@sheep.art.plmailto:openst...@sheep.art.pl wrote:
 
  On 20/12/14 21:25, Richard Jones wrote:
   This is a good proposal, though I'm unclear on how the
   static_settings.py file is populated by a developer (as opposed to
 a
   packager, which you described).
 
  It's not, the developer version is included in the repository, and
  simply points to where Bower is configured to put the files.
  So just to be clear, as developers we:
 
  1. have a bower.json listing the bower component to use,
  2. use bower to fetch and install those to the bower_components
  directory at the top level of the Horizon repos checkout, and
  3. manually edit static_settings.py when we add a new bower component to
  bower.json so it knows the appropriate static files to load from that
  component.
 
  Is that correct?
 
  The above will increase the burden on those adding or upgrading bower
  components (they'll need to check the bower.json in the component for
  the appropriate static files to link in) but will make life easier for
  the re-packagers since they'll know which files they need to cater for
  in static_settings.py

 Well, I expect you can tell Bower to put

Re: [openstack-dev] [horizon] static files handling, bower/

2015-01-04 Thread Richard Jones
So just to be clear, as developers we:

1. have a bower.json listing the bower component to use,
2. use bower to fetch and install those to the bower_components directory
at the top level of the Horizon repos checkout, and
3. manually edit static_settings.py when we add a new bower component to
bower.json so it knows the appropriate static files to load from that
component.

Is that correct?

The above will increase the burden on those adding or upgrading bower
components (they'll need to check the bower.json in the component for the
appropriate static files to link in) but will make life easier for the
re-packagers since they'll know which files they need to cater for in
static_settings.py


  Richard


On Mon Dec 22 2014 at 8:24:03 PM Radomir Dopieralski openst...@sheep.art.pl
wrote:

 On 20/12/14 21:25, Richard Jones wrote:
  This is a good proposal, though I'm unclear on how the
  static_settings.py file is populated by a developer (as opposed to a
  packager, which you described).

 It's not, the developer version is included in the repository, and
 simply points to where Bower is configured to put the files.

 --
 Radomir Dopieralski


 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2014-12-22 Thread Radomir Dopieralski
On 20/12/14 21:25, Richard Jones wrote:
 This is a good proposal, though I'm unclear on how the
 static_settings.py file is populated by a developer (as opposed to a
 packager, which you described).

It's not, the developer version is included in the repository, and
simply points to where Bower is configured to put the files.

-- 
Radomir Dopieralski


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [horizon] static files handling, bower/

2014-12-20 Thread Richard Jones
This is a good proposal, though I'm unclear on how the static_settings.py
file is populated by a developer (as opposed to a packager, which you
described).


 Richard

On Fri Dec 19 2014 at 12:59:37 AM Radomir Dopieralski 
openst...@sheep.art.pl wrote:

 Hello,

 revisiting the package management for the Horizon's static files again,
 I would like to propose a particular solution. Hopefully it will allow
 us to both simplify the whole setup, and use the popular tools for the
 job, without losing too much of benefits of our current process.

 The changes we would need to make are as follows:

 * get rid of XStatic entirely;
 * add to the repository a configuration file for Bower, with all the
 required bower packages listed and their versions specified;
 * add to the repository a static_settings.py file, with a single
 variable defined, STATICFILES_DIRS. That variable would be initialized
 to a list of pairs mapping filesystem directories to URLs within the
 /static tree. By default it would only have a single mapping, pointing
 to where Bower installs all the stuff by default;
 * add a line from static_settings import STATICFILES_DIRS to the
 settings.py file;
 * add jobs both to run_tests.sh and any gate scripts, that would run Bower;
 * add a check on the gate that makes sure that all direct and indirect
 dependencies of all required Bower packages are listed in its
 configuration files (pretty much what we have for requirements.txt now);

 That's all. Now, how that would be used.

 1. The developers will just use Bower the way they would normally use
 it, being able to install and test any of the libraries in any versions
 they like. The only additional thing is that they would need to add any
 additional libraries or changed versions to the Bower configuration file
 before they push their patch for review and merge.

 2. The packagers can read the list of all required packages from the
 Bower configuration file, and make sure they have all the required
 libraries packages in the required versions.

 Next, they replace the static_settings.py file with one they have
 prepared manually or automatically. The file lists the locations of all
 the library directories, and, in the case when the directory structure
 differs from what Bower provides, even mappings between subdirectories
 and individual files.

 3. Security patches need to go into the Bower packages directly, which
 is good for the whole community.

 4. If we aver need a library that is not packaged for Bower, we will
 package it just as we had with the XStatic packages, only for Bower,
 which has much larger user base and more chance of other projects also
 using that package and helping with its testing.

 What do you think? Do you see any disastrous problems with this system?
 --
 Radomir Dopieralski

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev