We need to have a session about this at the summit that takes into account the 
needs of vendors, core developers, and packagers/deployers.

I'm hoping we can come to something that works better for everyone.

Vish

On Feb 15, 2012, at 9:50 AM, Dan Wendlandt wrote:

> Hi Aaron,
> 
> Thanks for raising this.  Interestingly, I think Nova is dealing with
> similar questions with respect to drivers, so I'm adding Vish to the
> thread as well.  My feeling is that the decision of whether
> plugin/driver code is kept in the main repos and reviewed by core devs
> should probably be made consistently across openstack projects (or at
> least have clear guidance from the policy board).  Below are some
> initial thoughts I have that provide some background for the
> discussion.
> 
> To date, we have real experience with two plugins, one that can be run
> entirely with OS components and one that requires proprietary hardware
> and software to test.  I expect moving forward we will have more of
> both types.  Already there is no assumption that core devs test either
> type of plugins, due to the concerns you've mentioned.  All unit
> testing is done with a basic "FakePlugin".  It is possible for plugin
> developers to easily run those unit tests against their own plugins as
> well, but plugin developers themselves are responsible for this.
> Likewise, there is not assumption that core openstack resources will
> contribute plugin specific documentation, as that is also the
> responsibility of the plugin developer.
> 
> Still, I share your concern that the amount of plugin code is growing
> more quickly than the number of core devs able to review.  I don't
> want core devs so swamped with reviewing plugin code that they can't
> make progress on the base Quantum platform.  One approach would be to
> just let people commit code to the quantum/plugins sub-directory
> without review, but I think that is likely to lead to a mess of poorly
> maintained code in an official openstack repo, which I don't like.
> Another option, as you suggest, is to have all plugins in separate
> repos.  Splitting things out makes it a bit more complex to even get a
> basic setup running from a dev perspective, but probably doesn't
> impact end-users too much, as they will be installing using packages
> anyway.  Splitting out is unlikely to change current testing +
> documentation procedures, as they are already the responsibility of
> the plugin "owner".
> 
> One major reasons people probably want to get their plugins merged is
> for visibility, so that when people see the set of plugins available,
> their plugin is on the list.  We can probably solve this visibility
> problem  more easily by just providing a public registry that people
> can add to in order to publicly announce the set of plugins.  This
> would also hopefully address another concern about splitting out the
> repos, which is how distributions like Ubuntu, Red Hat, Debian, etc.
> would learn about new plugins they may want to package.
> 
> One other issue, if we decided to go with a split, would be how we
> handle code that needs to be shared among a set of plugins.  To some
> degree, this could be handled on an adhoc basis (creating yet more
> repos), but it definitely adds to complexity.
> 
> I'd also want to think more about what this means for API extensions.
> My goal is that while an API extension may be proposed by a particular
> plugin first, if this extension is designed in a generic way, it would
> be able to be leveraged by other plugins and (perhaps after some
> additional tweaks), become part of the standard API.  In your
> thinking, would extensions live in the main code base, or with plugins
> (or an option for both)?
> 
> As I said, I think this question is probably broader than just
> Quantum, though the pain may be the most acute with Quantum, given the
> small core team and the surging interest in plugins.  Would be curious
> to get input from others on how they see it.
> 
> Dan
> 
> 
> On Wed, Feb 15, 2012 at 5:02 AM, Aaron Lee <aaron....@rackspace.com> wrote:
>> We have several plugins in Quantum currently, and several more waiting for 
>> review. Several plugins ares currently waiting for review, and this problem 
>> is only going to get worse. We don't have enough core devs, who are very 
>> familiar with the underlying systems, to properly evaluate the plugins. I 
>> don't think this problem is going to go away, so we should remove the 
>> plugins from the main Quantum repository and require they be stored on their 
>> own.
>> 
>> The first issue I worry about is Testing. Running the functional tests, and 
>> the plugin itself, requires access to soft and hardware. Some is open source 
>> and available to anyone, while some of these systems are proprietary. We 
>> can't expect the Core devs to have access to all of the proprietary 
>> equipment. If the core devs are not able to fully test the plugin, or even 
>> see the system it interfaces with, they can't be expected to fairly evaluate 
>> the plugin. This would lead to rubber stamping any commits that comes across 
>> Gerrit, and I think that would be bad for the Quantum codebase. A quick 
>> breeze through review does not help the plugin maintainers, its an extra 
>> hurdle without the benefit of review.
>> 
>> Once the plugins are in Quantum, I'm worried about their maintenance. 
>> Keeping the plugins up to the quality expected of Quantum we will require 
>> developers proficient in the underlying system. If those people fall behind, 
>> or leave, what amount of regression will trigger the removal? We have a lot 
>> of changes planned for the near future, and requiring that every plugin be 
>> up to date will cause delays. It should be the job of the plugin's 
>> maintainer to keep the plugin up to date with Quantum, not the other way 
>> around. We can point out the repo of each plugin, but the plugin 
>> authors/maintainers should be responsible for documentation, maintenance, 
>> and compatibility.
>> 
>> Thanks,
>> Aaron Lee
>> --
>> Mailing list: https://launchpad.net/~netstack
>> Post to     : netstack@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~netstack
>> More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
> -- 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Dan Wendlandt
> Nicira Networks: www.nicira.com
> twitter: danwendlandt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~


-- 
Mailing list: https://launchpad.net/~netstack
Post to     : netstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~netstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to