[Openstack] Process for new dependencies [was Re: Nodejs in horizon]

Mark McLoughlin markmc at redhat.com
Fri May 25 07:53:44 UTC 2012


On Thu, 2012-05-24 at 16:22 -0700, Devin Carlen wrote:
> -1 to introducing formal processes around this.  This will happen from
> time to time.  Development may be briefly impacted on other platforms
> but hindering innovation and telling developers that they are
> responsible for package availability across every distro is not
> healthy.
> 
> You are concerned about Fedora which is a perfectly reasonable stance.
> But what about CentOS, RHEL, Debian, etc.
> 
> I for once don't want to have my technical options limited by whether
> or not a package is currently maintained by a distro.  We have a lot
> of reach into these communities and we are still in the earliest
> stages of Folsom.  There is plenty of time to deal with this.
> 
> That said, this is why we made this change in the *first* milestone,
> and not a week before release. ;)

I do think some level of formal process is needed. At the design summit
we had a session discussing how we could put some process around
managing a common set of pip-requires across all projects:

  http://etherpad.openstack.org/FolsomDependencyManagement

We didn't even begin to get into the more difficult problem of
dependencies which aren't just python libraries in pypi.

It's not a question of red tape. It's a question of figuring out
together *how* we answer questions like this.

If this was a proposal to add a dep on Ruby, we'd probably all -1 it.
But why exactly? How about a dep on Python 3? A Fedora or Ubuntu
specific iptables tool? A new kernel feature?

IMHO, adding Node.js as a dependency of OpenStack Core is a big change.
It has a big effect on which distros OpenStack can be run on without
additional 3rd party dependencies. It's something which concerns more
than just the core developers of the individual project.

That's not to say the change shouldn't happen. But it'd be nice to see
every new dependency go through a sensible level of debate like:

  Node.js, that's a big dep. What's it for?
    Processing CSS.
  Wow, that sounds weird. Is this a runtime dependency?
    Yes.
  Does it need all of Node.js at runtime?
    Yes.
  What distros is Node.js included in?
    Just Ubuntu right now.
  Could LESS be used as a developer tool and the processed CSS checked 
  into git?
    Maybe.
  Or do the CSS processing client side?
    Maybe.
  Have you considered SASS? That's more widely available?
    Uggh! That's Ruby!

Which leads to an interesting question - why are we happy to add a
dependency on Node.js but not add a dependency on Ruby? :-)

Cheers,
Mark.





More information about the Openstack mailing list