[openstack-dev] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-25 Thread Hayes, Graham
Top posting - this is a recap of what has been said, and some
clarifications

I realise that I was not very clear at the beginning of this process, so
here is my effort to clarify things, from the ML thread, and the review.

 >   ... does this also include plugins within projects, like storage
 >   backends in cinder and hypervisor drivers in nova?

No - this was not clear enough. This change is aimed at projects that are
points of significant cross project interaction. While, in the future 
there may
come a point where Nova Compute Drivers are developed out of tree (though
I doubt it), that is not happening today. As a result, there is no 
projects in
the list of projects that would need to integrate with Nova.

 >   Could you please clarify: do you advocate for a generic plugin 
interface for
 >   every project, or that each project should expose a plugin 
interface that
 >   allows plugin to behave as in-tree components? Because the latter 
is what
 >   happens with Tempest, and I see the former a bit complicated.

For every project that has cross project interaction - tempest is a good
example.

For these projects, they should allow all projects in tree (like Nova,
Neutron, Cinder etc are today), or they should have a plugin interface
(like they currently do), but all projects *must* use it, and not use
parts of tempest that are not exposed in that interface.

This would mean that tempest would move the nova, neutron, etc tests to
use the plugin interface.

Now, that plugin could be kept in the tempest repo, and still maintained
by the QA team, but should use the same interface as the other plugins
that are not in that repository.

Of course, it is not just tempest - an incomplete list looks like:

* Tempest
* Devstack
* Grende
* Horizon
* OpenStack Client
* OpenStack SDK
* Searchlight
* Heat
* Mistral
* Celiometer
* Rally
* Documentation

And I am sure I have missed some obvious ones. (if you see a project missing
let me know on the review)


 >   I think I disagree here. The root cause is being addressed: 
external tests can
 >   use the Tempest plugin interface, and use the API, which is being 
stabilized.
 >   The fact that the Tempest API is partially unstable is a temporary 
things, due
 >   to the origin of the project and the way the scope was redefined, 
but again
 >   it's temporary.

This seems to be the core of a lot of the disagreement - this is only 
temporary,
it will all be fixed in the future, and it should stay this way.

Unfortunately the discrepancy between projects is not temporary. The 
specific
problems I have highlighted in the thread for one of the projects is 
temporary,
but I beleive the only long-term solution is to remove the difference 
between
projects.

 >   Before we start making lots of specific rules about how teams
 >   coordinate, I would like to understand the problem those rules are 
meant
 >   to solve, so thank you for providing that example.
 >   ...
 >   It's not clear yet whether there needs to be a new policy to change the
 >   existing intent, or if a discussion just hasn't happened, or if someone
 >   simply needs to edit some code.

Unfortunately there is a big push back on editing code to help plugins from
some of the projects. Again, having the differing access between 
projects will
continue to exacerbate the problem.


 >   "Change the name of the resolution"

That was done in the last patchset. I think the Level Playing Field title
bounced around my head from the other resolution that was titled Level 
Playing
Field. It may have been confusing alright.

I feel like I have been using tempest as an example a little too much, 
as it captures
the current issues perfectly, and a large number of the community have some
knowledge of it, and how it works.

There is other areas across OpenStack where plugins need attention as well:

Horizon
---

Horizon privileged projects have access to much more panels than
plugins (service status, quotas, overviews etc).
Plugins have to rely on tarballs of horizon

OpenStack Client


OpenStack CLI privileged projects have access to more commands, as
plugins cannot hook in to them (e.g. quotas)

Grenade
---

Plugins may or may not have tempest tests ran (I think that patch
merged), they have to use parts of tempest I was told explicitly
plugins should not use to get the tests to run at that point.

Docs


We can now add install guides and hook into the API Reference, and API
guides. This is great - and I am really happy about it. We still have
issues trying to integrate with other areas in docs, and most non docs
privileged projects end up with massive amounts of users docs in
docs.openstack.org/developer/ , which is not ideal.


Thanks,

Graham

On 14/07/2016 20:25, Hayes, Graham wrote:
> I just proposed a review to openstack/governance repo [0] that aims
> to have everything across OpenStack be plugin based for all cross
> project interaction, or allow all projects access to the same internal
>

Re: [openstack-dev] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Ihar Hrachyshka

Hi,

I am reading through the thread, and it puzzles me that I see a lot of  
right words about goals but not enough hints on who is going to implement  
that. We all love public and stable interfaces, everyone needs it, and I  
don’t think anyone works against that goal.


For one, tempest folks work on defining a plugin interface, and they work  
with interested projects too, projects like neutron already switched to  
plugin interface. The very fact that the interface is in progress shows  
that the tempest project think about the issue and works with interested  
parties on covering their use cases.


Yes, projects like neutron still rely on some internal functions, but it’s  
not because we have some special status, but because we had adopted in tree  
tempest tests long before the plugin interface became available. And yes,  
we still work to switch our in tree code to public interfaces, but it takes  
time and coordination with tempest folks. We have other things to do, so  
maybe we don’t put it as the most critical priority, but we are aware of  
the issue.


In the meantime, neutron in tree tests are sometimes broken by tempest  
changes that refactor their guts. It happens to neutron as well as for  
other projects, not more often but neither less. So it’s a level playing  
field already. If you don’t like to be broken from time to time, spend time  
on tempest to expose missing public  interfaces for your needs. Don’t  
expect that tempest folks will just show up and immediately cover all your  
use cases.


Ihar

Graham  wrote:


Top posting - this is a recap of what has been said, and some
clarifications

I realise that I was not very clear at the beginning of this process, so
here is my effort to clarify things, from the ML thread, and the review.


 ... does this also include plugins within projects, like storage
  backends in cinder and hypervisor drivers in nova?


No - this was not clear enough. This change is aimed at projects that are
points of significant cross project interaction. While, in the future
there may
come a point where Nova Compute Drivers are developed out of tree (though
I doubt it), that is not happening today. As a result, there is no
projects in
the list of projects that would need to integrate with Nova.


 Could you please clarify: do you advocate for a generic plugin

interface for

 every project, or that each project should expose a plugin

interface that

 allows plugin to behave as in-tree components? Because the latter

is what

 happens with Tempest, and I see the former a bit complicated.


For every project that has cross project interaction - tempest is a good
example.

For these projects, they should allow all projects in tree (like Nova,
Neutron, Cinder etc are today), or they should have a plugin interface
(like they currently do), but all projects *must* use it, and not use
parts of tempest that are not exposed in that interface.

This would mean that tempest would move the nova, neutron, etc tests to
use the plugin interface.

Now, that plugin could be kept in the tempest repo, and still maintained
by the QA team, but should use the same interface as the other plugins
that are not in that repository.

Of course, it is not just tempest - an incomplete list looks like:

* Tempest
* Devstack
* Grende
* Horizon
* OpenStack Client
* OpenStack SDK
* Searchlight
* Heat
* Mistral
* Celiometer
* Rally
* Documentation

And I am sure I have missed some obvious ones. (if you see a project  
missing

let me know on the review)



 I think I disagree here. The root cause is being addressed:

external tests can

 use the Tempest plugin interface, and use the API, which is being

stabilized.

 The fact that the Tempest API is partially unstable is a temporary

things, due

 to the origin of the project and the way the scope was redefined,

but again

 it's temporary.


This seems to be the core of a lot of the disagreement - this is only
temporary,
it will all be fixed in the future, and it should stay this way.

Unfortunately the discrepancy between projects is not temporary. The
specific
problems I have highlighted in the thread for one of the projects is
temporary,
but I beleive the only long-term solution is to remove the difference
between
projects.


 Before we start making lots of specific rules about how teams
  coordinate, I would like to understand the problem those rules are

meant

 to solve, so thank you for providing that example.
  ...
  It's not clear yet whether there needs to be a new policy to change the
  existing intent, or if a discussion just hasn't happened, or if someone
  simply needs to edit some code.


Unfortunately there is a big push back on editing code to help plugins from
some of the projects. Again, having the differing access between
projects will
continue to exacerbate the problem.



 "Change the name of the resolution"


That was done in the last patchset. I think the Level Playing Field title
bounced around my head from the ot

Re: [openstack-dev] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Andrea Frittoli
On Mon, Jul 25, 2016 at 10:36 PM Hayes, Graham  wrote:

> Top posting - this is a recap of what has been said, and some
> clarifications
>
> I realise that I was not very clear at the beginning of this process, so
> here is my effort to clarify things, from the ML thread, and the review.
>
>  >   ... does this also include plugins within projects, like storage
>  >   backends in cinder and hypervisor drivers in nova?
>
> No - this was not clear enough. This change is aimed at projects that are
> points of significant cross project interaction. While, in the future
> there may
> come a point where Nova Compute Drivers are developed out of tree (though
> I doubt it), that is not happening today. As a result, there is no
> projects in
> the list of projects that would need to integrate with Nova.
>
>  >   Could you please clarify: do you advocate for a generic plugin
> interface for
>  >   every project, or that each project should expose a plugin
> interface that
>  >   allows plugin to behave as in-tree components? Because the latter
> is what
>  >   happens with Tempest, and I see the former a bit complicated.
>
> For every project that has cross project interaction - tempest is a good
> example.
>
> For these projects, they should allow all projects in tree (like Nova,
> Neutron, Cinder etc are today), or they should have a plugin interface
> (like they currently do), but all projects *must* use it, and not use
> parts of tempest that are not exposed in that interface.
>

Defining a policy that *all* projects must use the plugin interface would
not help.
You could define plugins in tree in Tempest but that would not change much.
The plugin interface is quite complete as it is today, I don't expect it
will be extended much after [0] is merged.

What still requires work in Tempest is the stable interface. Because
plugins are not in the Tempest tree, the QA team recommend that they use
only tempest stable interfaces. Increasing the surface of stable interfaces
is what keeps a lot of the QA folks busy.

There's a lot of code in tempest that was written under the assumption that
all tests would always live in the tempest tree; evolving that code into a
stable publicly consumable interface is simply a lot of work, which the QA
team is prioritising based on the input from plugins.

Tempest plugins are for all right now. Keystone, Cinder and Neutron already
have a plugin today. We don't want tests which are not relevant for
integration or defcore to be added to Tempest, and that is true for *all*
services.


> This would mean that tempest would move the nova, neutron, etc tests to
> use the plugin interface.


> Now, that plugin could be kept in the tempest repo, and still maintained
> by the QA team, but should use the same interface as the other plugins
> that are not in that repository.
>

All tests in tempest consume the stable interfaces in tempest.lib.
The QA team is working continuously to stabilise and migrate more parts of
tempest into the tempest.lib namespace.

Since a lot of plugins are using tempest unstable interfaces, we're also
trying as much as possible to maintain backward compatibility on unstable
interfaces, until the stable version is available, but that is not always
an option.


>
> Of course, it is not just tempest - an incomplete list looks like:
>
> * Tempest
> * Devstack
> * Grende
> * Horizon
> * OpenStack Client
> * OpenStack SDK
> * Searchlight
> * Heat
> * Mistral
> * Celiometer
> * Rally
> * Documentation
>
> And I am sure I have missed some obvious ones. (if you see a project
> missing
> let me know on the review)
>
>
>  >   I think I disagree here. The root cause is being addressed:
> external tests can
>  >   use the Tempest plugin interface, and use the API, which is being
> stabilized.
>  >   The fact that the Tempest API is partially unstable is a temporary
> things, due
>  >   to the origin of the project and the way the scope was redefined,
> but again
>  >   it's temporary.
>
> This seems to be the core of a lot of the disagreement - this is only
> temporary,
> it will all be fixed in the future, and it should stay this way.
>
> Unfortunately the discrepancy between projects is not temporary. The
> specific
> problems I have highlighted in the thread for one of the projects is
> temporary,
> but I beleive the only long-term solution is to remove the difference
> between
> projects.
>
>  >   Before we start making lots of specific rules about how teams
>  >   coordinate, I would like to understand the problem those rules are
> meant
>  >   to solve, so thank you for providing that example.
>  >   ...
>  >   It's not clear yet whether there needs to be a new policy to change
> the
>  >   existing intent, or if a discussion just hasn't happened, or if
> someone
>  >   simply needs to edit some code.
>
> Unfortunately there is a big push back on editing code to help plugins from
> some of the projects. Again, having the differing access between
> projects will
> continue to ex

Re: [openstack-dev] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Doug Hellmann
Excerpts from Andrea Frittoli's message of 2016-07-26 10:24:07 +:
> On Mon, Jul 25, 2016 at 10:36 PM Hayes, Graham  wrote:
> 
> > Top posting - this is a recap of what has been said, and some
> > clarifications
> >
> > I realise that I was not very clear at the beginning of this process, so
> > here is my effort to clarify things, from the ML thread, and the review.
> >
> >  >   ... does this also include plugins within projects, like storage
> >  >   backends in cinder and hypervisor drivers in nova?
> >
> > No - this was not clear enough. This change is aimed at projects that are
> > points of significant cross project interaction. While, in the future
> > there may
> > come a point where Nova Compute Drivers are developed out of tree (though
> > I doubt it), that is not happening today. As a result, there is no
> > projects in
> > the list of projects that would need to integrate with Nova.
> >
> >  >   Could you please clarify: do you advocate for a generic plugin
> > interface for
> >  >   every project, or that each project should expose a plugin
> > interface that
> >  >   allows plugin to behave as in-tree components? Because the latter
> > is what
> >  >   happens with Tempest, and I see the former a bit complicated.
> >
> > For every project that has cross project interaction - tempest is a good
> > example.
> >
> > For these projects, they should allow all projects in tree (like Nova,
> > Neutron, Cinder etc are today), or they should have a plugin interface
> > (like they currently do), but all projects *must* use it, and not use
> > parts of tempest that are not exposed in that interface.
> >
> 
> Defining a policy that *all* projects must use the plugin interface would
> not help.
> You could define plugins in tree in Tempest but that would not change much.
> The plugin interface is quite complete as it is today, I don't expect it
> will be extended much after [0] is merged.
> 
> What still requires work in Tempest is the stable interface. Because
> plugins are not in the Tempest tree, the QA team recommend that they use
> only tempest stable interfaces. Increasing the surface of stable interfaces
> is what keeps a lot of the QA folks busy.
> 
> There's a lot of code in tempest that was written under the assumption that
> all tests would always live in the tempest tree; evolving that code into a
> stable publicly consumable interface is simply a lot of work, which the QA
> team is prioritising based on the input from plugins.
> 
> Tempest plugins are for all right now. Keystone, Cinder and Neutron already
> have a plugin today. We don't want tests which are not relevant for
> integration or defcore to be added to Tempest, and that is true for *all*
> services.

Thank you for those details, and for confirming that the situation
is more or less what I expected (it's in progress, creating a stable
API takes work, etc.). Where would someone who wanted to contribute
look for details? Are there specs or an etherpad with a task list
or something like that?

And just to satisfy my own curiosity, how does someone looking at the
internals of tempest know what's on the stable API and what's not
considered stable? Are the parts of the API documented separately
somehow or is there a different part of the code tree to look at?

Doug

> 
> > This would mean that tempest would move the nova, neutron, etc tests to
> > use the plugin interface.
> 
> > Now, that plugin could be kept in the tempest repo, and still maintained
> > by the QA team, but should use the same interface as the other plugins
> > that are not in that repository.
> >
> 
> All tests in tempest consume the stable interfaces in tempest.lib.
> The QA team is working continuously to stabilise and migrate more parts of
> tempest into the tempest.lib namespace.
> 
> Since a lot of plugins are using tempest unstable interfaces, we're also
> trying as much as possible to maintain backward compatibility on unstable
> interfaces, until the stable version is available, but that is not always
> an option.
> 
> >
> > Of course, it is not just tempest - an incomplete list looks like:
> >
> > * Tempest
> > * Devstack
> > * Grende
> > * Horizon
> > * OpenStack Client
> > * OpenStack SDK
> > * Searchlight
> > * Heat
> > * Mistral
> > * Celiometer
> > * Rally
> > * Documentation
> >
> > And I am sure I have missed some obvious ones. (if you see a project
> > missing
> > let me know on the review)
> >
> >
> >  >   I think I disagree here. The root cause is being addressed:
> > external tests can
> >  >   use the Tempest plugin interface, and use the API, which is being
> > stabilized.
> >  >   The fact that the Tempest API is partially unstable is a temporary
> > things, due
> >  >   to the origin of the project and the way the scope was redefined,
> > but again
> >  >   it's temporary.
> >
> > This seems to be the core of a lot of the disagreement - this is only
> > temporary,
> > it will all be fixed in the future, and it should stay this way.
> >
> > Un

Re: [openstack-dev] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Doug Hellmann
Excerpts from Hayes, Graham's message of 2016-07-25 21:36:29 +:
> Top posting - this is a recap of what has been said, and some
> clarifications
> 
> I realise that I was not very clear at the beginning of this process, so
> here is my effort to clarify things, from the ML thread, and the review.
> 
>  >   ... does this also include plugins within projects, like storage
>  >   backends in cinder and hypervisor drivers in nova?
> 
> No - this was not clear enough. This change is aimed at projects that are
> points of significant cross project interaction. While, in the future 
> there may
> come a point where Nova Compute Drivers are developed out of tree (though
> I doubt it), that is not happening today. As a result, there is no 
> projects in
> the list of projects that would need to integrate with Nova.
> 
>  >   Could you please clarify: do you advocate for a generic plugin 
> interface for
>  >   every project, or that each project should expose a plugin 
> interface that
>  >   allows plugin to behave as in-tree components? Because the latter 
> is what
>  >   happens with Tempest, and I see the former a bit complicated.
> 
> For every project that has cross project interaction - tempest is a good
> example.
> 
> For these projects, they should allow all projects in tree (like Nova,
> Neutron, Cinder etc are today), or they should have a plugin interface
> (like they currently do), but all projects *must* use it, and not use
> parts of tempest that are not exposed in that interface.
> 
> This would mean that tempest would move the nova, neutron, etc tests to
> use the plugin interface.
> 
> Now, that plugin could be kept in the tempest repo, and still maintained
> by the QA team, but should use the same interface as the other plugins
> that are not in that repository.
> 
> Of course, it is not just tempest - an incomplete list looks like:
> 
> * Tempest
> * Devstack
> * Grende
> * Horizon
> * OpenStack Client
> * OpenStack SDK
> * Searchlight
> * Heat
> * Mistral
> * Celiometer
> * Rally
> * Documentation
> 
> And I am sure I have missed some obvious ones. (if you see a project missing
> let me know on the review)
> 
>  >   I think I disagree here. The root cause is being addressed: 
> external tests can
>  >   use the Tempest plugin interface, and use the API, which is being 
> stabilized.
>  >   The fact that the Tempest API is partially unstable is a temporary 
> things, due
>  >   to the origin of the project and the way the scope was redefined, 
> but again
>  >   it's temporary.
> 
> This seems to be the core of a lot of the disagreement - this is only 
> temporary,
> it will all be fixed in the future, and it should stay this way.
> 
> Unfortunately the discrepancy between projects is not temporary. The 
> specific
> problems I have highlighted in the thread for one of the projects is 
> temporary,
> but I beleive the only long-term solution is to remove the difference 
> between
> projects.
> 
>  >   Before we start making lots of specific rules about how teams
>  >   coordinate, I would like to understand the problem those rules are 
> meant
>  >   to solve, so thank you for providing that example.
>  >   ...
>  >   It's not clear yet whether there needs to be a new policy to change the
>  >   existing intent, or if a discussion just hasn't happened, or if someone
>  >   simply needs to edit some code.
> 
> Unfortunately there is a big push back on editing code to help plugins from
> some of the projects. Again, having the differing access between 
> projects will
> continue to exacerbate the problem.
> 
>  >   "Change the name of the resolution"
> 
> That was done in the last patchset. I think the Level Playing Field title
> bounced around my head from the other resolution that was titled Level 
> Playing
> Field. It may have been confusing alright.
> 
> I feel like I have been using tempest as an example a little too much, 
> as it captures
> the current issues perfectly, and a large number of the community have some
> knowledge of it, and how it works.
> 
> There is other areas across OpenStack where plugins need attention as well:
> 
> Horizon
> ---
> 
> Horizon privileged projects have access to much more panels than
> plugins (service status, quotas, overviews etc).

Is this by intent, lack of foresight, or changing requirements?

> Plugins have to rely on tarballs of horizon

It sounds like we need to figure out how to tag intermediate releases of
horizon and publish them to PyPI so projects can use them in tests. I'd
be happy to work with the Horizon team on that.

> 
> OpenStack Client
> 
> 
> OpenStack CLI privileged projects have access to more commands, as
> plugins cannot hook in to them (e.g. quotas)

I think Steve addressed this point elsewhere on the thread (it's not by
design, but due to lack of contributor resources).

> 
> Grenade
> ---
> 
> Plugins may or may not have tempest tests ran (I think that patch
> merged), they have to use parts of te

Re: [openstack-dev] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Luigi Toscano
On Tuesday, 26 July 2016 08:34:27 CEST Doug Hellmann wrote:
> Excerpts from Andrea Frittoli's message of 2016-07-26 10:24:07 +:
> > 
> > What still requires work in Tempest is the stable interface. Because
> > plugins are not in the Tempest tree, the QA team recommend that they use
> > only tempest stable interfaces. Increasing the surface of stable
> > interfaces
> > is what keeps a lot of the QA folks busy.
> > 
> > There's a lot of code in tempest that was written under the assumption
> > that
> > all tests would always live in the tempest tree; evolving that code into a
> > stable publicly consumable interface is simply a lot of work, which the QA
> > team is prioritising based on the input from plugins.
> > 
> > Tempest plugins are for all right now. Keystone, Cinder and Neutron
> > already
> > have a plugin today. We don't want tests which are not relevant for
> > integration or defcore to be added to Tempest, and that is true for *all*
> > services.
> 
> Thank you for those details, and for confirming that the situation
> is more or less what I expected (it's in progress, creating a stable
> API takes work, etc.). Where would someone who wanted to contribute
> look for details? Are there specs or an etherpad with a task list
> or something like that?
Andrea can share more details as he is driving the Client Manager refactors, 
but for example:

http://specs.openstack.org/openstack/qa-specs/specs/tempest/client-manager-refactor.html
https://etherpad.openstack.org/p/newton-tempest-service-clients

> 
> And just to satisfy my own curiosity, how does someone looking at the
> internals of tempest know what's on the stable API and what's not
> considered stable? Are the parts of the API documented separately
> somehow or is there a different part of the code tree to look at?

tempest.lib is the stable part (previously split in a separate tempest-lib 
repository, which is now deprecated as the code was put back into the main 
tempest repository):
http://docs.openstack.org/developer/tempest/overview.html#library

Ciao
-- 
Luigi

__
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] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Sean Dague
On 07/26/2016 08:51 AM, Doug Hellmann wrote:

> 
> Given the amount of in-progress work to address the issue you've
> raised, I'm not convinced we need a global rule or policy. All of
> the teams mentioned are working toward the goal of providing stable
> APIs already, and no one seems to be arguing against that goal. The
> teams doing the work are not dragging their feet, and a rule or
> policy wouldn't make the work go any faster.
> 
> The directions for cross-project teams were given when the bit tent
> change went into effect were to "support all official teams" and
> definitely not "do the work for all official teams." There was also
> no requirement that the support be exactly equal, and it would be
> a mistake to try to require that because the issue is almost always
> lack of resources and not lack of desire.  Volunteers to contribute
> to the work that's needed will do more to help than a one-size-fits-all
> policy.

Yes, exactly.

Like Ihar said earlier, we get all kinds of breaks across out system all
the time. It's a complex system. If you look hard what you'll notice is
that project interactions where there are team members in common break a
bit less. For instance Grenade breaks Nova less than other projects.
oslo.versionedobjects breaks Nova less than oslo.messaging does. Why?
Because even with stable interfaces and tests, a lot of behavior remains
in flux given the patch rate on all projects. And when people understand
both sides of a problem, they are more likely to anticipate a problem
during review that no tests caught and didn't seem to change an interface.

This isn't a thing that gets fixed with policy. It gets fixed with people.

-Sean

-- 
Sean Dague
http://dague.net

__
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] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Doug Hellmann
Excerpts from Luigi Toscano's message of 2016-07-26 15:02:28 +0200:
> On Tuesday, 26 July 2016 08:34:27 CEST Doug Hellmann wrote:
> > Excerpts from Andrea Frittoli's message of 2016-07-26 10:24:07 +:
> > > 
> > > What still requires work in Tempest is the stable interface. Because
> > > plugins are not in the Tempest tree, the QA team recommend that they use
> > > only tempest stable interfaces. Increasing the surface of stable
> > > interfaces
> > > is what keeps a lot of the QA folks busy.
> > > 
> > > There's a lot of code in tempest that was written under the assumption
> > > that
> > > all tests would always live in the tempest tree; evolving that code into a
> > > stable publicly consumable interface is simply a lot of work, which the QA
> > > team is prioritising based on the input from plugins.
> > > 
> > > Tempest plugins are for all right now. Keystone, Cinder and Neutron
> > > already
> > > have a plugin today. We don't want tests which are not relevant for
> > > integration or defcore to be added to Tempest, and that is true for *all*
> > > services.
> > 
> > Thank you for those details, and for confirming that the situation
> > is more or less what I expected (it's in progress, creating a stable
> > API takes work, etc.). Where would someone who wanted to contribute
> > look for details? Are there specs or an etherpad with a task list
> > or something like that?
> Andrea can share more details as he is driving the Client Manager refactors, 
> but for example:
> 
> http://specs.openstack.org/openstack/qa-specs/specs/tempest/client-manager-refactor.html
> https://etherpad.openstack.org/p/newton-tempest-service-clients

Good.

> 
> > 
> > And just to satisfy my own curiosity, how does someone looking at the
> > internals of tempest know what's on the stable API and what's not
> > considered stable? Are the parts of the API documented separately
> > somehow or is there a different part of the code tree to look at?
> 
> tempest.lib is the stable part (previously split in a separate tempest-lib 
> repository, which is now deprecated as the code was put back into the main 
> tempest repository):
> http://docs.openstack.org/developer/tempest/overview.html#library

That seems quite clear, thanks.

> 
> Ciao

__
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] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Hayes, Graham
On 26/07/2016 14:18, Doug Hellmann wrote:
> Excerpts from Luigi Toscano's message of 2016-07-26 15:02:28 +0200:
>> On Tuesday, 26 July 2016 08:34:27 CEST Doug Hellmann wrote:
>>> Excerpts from Andrea Frittoli's message of 2016-07-26 10:24:07 +:

 What still requires work in Tempest is the stable interface. Because
 plugins are not in the Tempest tree, the QA team recommend that they use
 only tempest stable interfaces. Increasing the surface of stable
 interfaces
 is what keeps a lot of the QA folks busy.

 There's a lot of code in tempest that was written under the assumption
 that
 all tests would always live in the tempest tree; evolving that code into a
 stable publicly consumable interface is simply a lot of work, which the QA
 team is prioritising based on the input from plugins.

 Tempest plugins are for all right now. Keystone, Cinder and Neutron
 already
 have a plugin today. We don't want tests which are not relevant for
 integration or defcore to be added to Tempest, and that is true for *all*
 services.
>>>
>>> Thank you for those details, and for confirming that the situation
>>> is more or less what I expected (it's in progress, creating a stable
>>> API takes work, etc.). Where would someone who wanted to contribute
>>> look for details? Are there specs or an etherpad with a task list
>>> or something like that?
>> Andrea can share more details as he is driving the Client Manager refactors,
>> but for example:
>>
>> http://specs.openstack.org/openstack/qa-specs/specs/tempest/client-manager-refactor.html
>> https://etherpad.openstack.org/p/newton-tempest-service-clients
>
> Good.
>
>>
>>>
>>> And just to satisfy my own curiosity, how does someone looking at the
>>> internals of tempest know what's on the stable API and what's not
>>> considered stable? Are the parts of the API documented separately
>>> somehow or is there a different part of the code tree to look at?
>>
>> tempest.lib is the stable part (previously split in a separate tempest-lib
>> repository, which is now deprecated as the code was put back into the main
>> tempest repository):
>> http://docs.openstack.org/developer/tempest/overview.html#library
>
> That seems quite clear, thanks.

it is actually a bit more -

http://docs.openstack.org/developer/tempest/plugin.html

>>
>> Ciao
>
> __
> 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] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Luigi Toscano
On Tuesday, 26 July 2016 13:23:05 CEST Hayes, Graham wrote:
> On 26/07/2016 14:18, Doug Hellmann wrote:

> >>> And just to satisfy my own curiosity, how does someone looking at the
> >>> internals of tempest know what's on the stable API and what's not
> >>> considered stable? Are the parts of the API documented separately
> >>> somehow or is there a different part of the code tree to look at?
> >> 
> >> tempest.lib is the stable part (previously split in a separate
> >> tempest-lib
> >> repository, which is now deprecated as the code was put back into the
> >> main
> >> tempest repository):
> >> http://docs.openstack.org/developer/tempest/overview.html#library
> > 
> > That seems quite clear, thanks.
> 
> it is actually a bit more -
> 
> http://docs.openstack.org/developer/tempest/plugin.html

This is the documentation on how plugins should be implemented, i.e. how the 
plugin code can consume the stable API described above. It's really a bit of 
boilerplate about the custom configuration options and the registration of the 
classes.

-- 
Luigi


__
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] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Hayes, Graham
On 26/07/2016 14:15, Sean Dague wrote:
> On 07/26/2016 08:51 AM, Doug Hellmann wrote:
> 
>>
>> Given the amount of in-progress work to address the issue you've
>> raised, I'm not convinced we need a global rule or policy. All of
>> the teams mentioned are working toward the goal of providing stable
>> APIs already, and no one seems to be arguing against that goal. The
>> teams doing the work are not dragging their feet, and a rule or
>> policy wouldn't make the work go any faster.
>>
>> The directions for cross-project teams were given when the bit tent
>> change went into effect were to "support all official teams" and
>> definitely not "do the work for all official teams." There was also
>> no requirement that the support be exactly equal, and it would be
>> a mistake to try to require that because the issue is almost always
>> lack of resources and not lack of desire.  Volunteers to contribute
>> to the work that's needed will do more to help than a one-size-fits-all
>> policy.
>
> Yes, exactly.
>
> Like Ihar said earlier, we get all kinds of breaks across out system all
> the time. It's a complex system. If you look hard what you'll notice is
> that project interactions where there are team members in common break a
> bit less. For instance Grenade breaks Nova less than other projects.
> oslo.versionedobjects breaks Nova less than oslo.messaging does. Why?
> Because even with stable interfaces and tests, a lot of behavior remains
> in flux given the patch rate on all projects. And when people understand
> both sides of a problem, they are more likely to anticipate a problem
> during review that no tests caught and didn't seem to change an interface.
>
> This isn't a thing that gets fixed with policy. It gets fixed with people.
>
>   -Sean
>

If this is where all these projects are going, is a policy not a good
way to indicate that this is how we want to work in the future?

So when the next project starts, or a team wants to move in a different
direction we have a piece of policy that shows we feel that this is the
way we work as a community?

I don't understand the objection to stating "this is how we should work"
when teams are moving that way anyway.

If to do that we need to dilute the policy, so be it.

__
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] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Doug Hellmann
Excerpts from Hayes, Graham's message of 2016-07-26 13:48:35 +:
> On 26/07/2016 14:15, Sean Dague wrote:
> > On 07/26/2016 08:51 AM, Doug Hellmann wrote:
> > 
> >>
> >> Given the amount of in-progress work to address the issue you've
> >> raised, I'm not convinced we need a global rule or policy. All of
> >> the teams mentioned are working toward the goal of providing stable
> >> APIs already, and no one seems to be arguing against that goal. The
> >> teams doing the work are not dragging their feet, and a rule or
> >> policy wouldn't make the work go any faster.
> >>
> >> The directions for cross-project teams were given when the bit tent
> >> change went into effect were to "support all official teams" and
> >> definitely not "do the work for all official teams." There was also
> >> no requirement that the support be exactly equal, and it would be
> >> a mistake to try to require that because the issue is almost always
> >> lack of resources and not lack of desire.  Volunteers to contribute
> >> to the work that's needed will do more to help than a one-size-fits-all
> >> policy.
> >
> > Yes, exactly.
> >
> > Like Ihar said earlier, we get all kinds of breaks across out system all
> > the time. It's a complex system. If you look hard what you'll notice is
> > that project interactions where there are team members in common break a
> > bit less. For instance Grenade breaks Nova less than other projects.
> > oslo.versionedobjects breaks Nova less than oslo.messaging does. Why?
> > Because even with stable interfaces and tests, a lot of behavior remains
> > in flux given the patch rate on all projects. And when people understand
> > both sides of a problem, they are more likely to anticipate a problem
> > during review that no tests caught and didn't seem to change an interface.
> >
> > This isn't a thing that gets fixed with policy. It gets fixed with people.
> >
> > -Sean
> >
> 
> If this is where all these projects are going, is a policy not a good
> way to indicate that this is how we want to work in the future?
> 
> So when the next project starts, or a team wants to move in a different
> direction we have a piece of policy that shows we feel that this is the
> way we work as a community?
> 
> I don't understand the objection to stating "this is how we should work"
> when teams are moving that way anyway.
> 
> If to do that we need to dilute the policy, so be it.
> 

I do agree that writing down our expectations is a good thing.  In
this case, I think the policy that the TC has agreed to is accurately
and sufficiently documented in the existing resolution under the
"Impact for horizontal teams" section [1].  The stewardship working
group is actively working on a set of general principles for the
TC to consider, and it may make sense to incorporate the existing
policy into that list of principles to make it easier to find.

I personally don't agree with changing the policy, or making it
"stronger" in some way, right now because I'm not convinced that
we need to treat all projects exactly the same in all cases.  It
seems like a relatively benign assumption to make, but until we
actually have an issue that would be solved by formalizing it in
policy I would prefer to avoid introducing unintended consequences
in implementations of projects brought on by layers of rules.  We
don't want any projects discriminated against, but I don't think
that's what is happening in these cases, and I think the existing
policy addresses that case.

Doug

[1] 
http://governance.openstack.org/resolutions/20141202-project-structure-reform-spec.html#impact-for-horizontal-teams

__
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] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Hayes, Graham
On 26/07/2016 18:47, Doug Hellmann wrote:
> Excerpts from Hayes, Graham's message of 2016-07-26 13:48:35 +:
>> On 26/07/2016 14:15, Sean Dague wrote:
>>> On 07/26/2016 08:51 AM, Doug Hellmann wrote:
>>> 

 Given the amount of in-progress work to address the issue you've
 raised, I'm not convinced we need a global rule or policy. All of
 the teams mentioned are working toward the goal of providing stable
 APIs already, and no one seems to be arguing against that goal. The
 teams doing the work are not dragging their feet, and a rule or
 policy wouldn't make the work go any faster.

 The directions for cross-project teams were given when the bit tent
 change went into effect were to "support all official teams" and
 definitely not "do the work for all official teams." There was also
 no requirement that the support be exactly equal, and it would be
 a mistake to try to require that because the issue is almost always
 lack of resources and not lack of desire.  Volunteers to contribute
 to the work that's needed will do more to help than a one-size-fits-all
 policy.
>>>
>>> Yes, exactly.
>>>
>>> Like Ihar said earlier, we get all kinds of breaks across out system all
>>> the time. It's a complex system. If you look hard what you'll notice is
>>> that project interactions where there are team members in common break a
>>> bit less. For instance Grenade breaks Nova less than other projects.
>>> oslo.versionedobjects breaks Nova less than oslo.messaging does. Why?
>>> Because even with stable interfaces and tests, a lot of behavior remains
>>> in flux given the patch rate on all projects. And when people understand
>>> both sides of a problem, they are more likely to anticipate a problem
>>> during review that no tests caught and didn't seem to change an interface.
>>>
>>> This isn't a thing that gets fixed with policy. It gets fixed with people.
>>>
>>> -Sean
>>>
>>
>> If this is where all these projects are going, is a policy not a good
>> way to indicate that this is how we want to work in the future?
>>
>> So when the next project starts, or a team wants to move in a different
>> direction we have a piece of policy that shows we feel that this is the
>> way we work as a community?
>>
>> I don't understand the objection to stating "this is how we should work"
>> when teams are moving that way anyway.
>>
>> If to do that we need to dilute the policy, so be it.
>>
>
> I do agree that writing down our expectations is a good thing.  In
> this case, I think the policy that the TC has agreed to is accurately
> and sufficiently documented in the existing resolution under the
> "Impact for horizontal teams" section [1].  The stewardship working
> group is actively working on a set of general principles for the
> TC to consider, and it may make sense to incorporate the existing
> policy into that list of principles to make it easier to find.

Sure, I know the work they are doing - this has been bouncing around
my PC for a bit before I had any knowledge of what the plans were there.

> I personally don't agree with changing the policy, or making it
> "stronger" in some way, right now because I'm not convinced that
> we need to treat all projects exactly the same in all cases.  It

This is the crux of the debate.

Are all projects equal?

If they are not, I will be disappointed, but we should then move to
define this in-equality, and state who is in, and who is out.

In some ways we are back to the stackforge vs integrated situation,
but unlike then we have no frame of reference for how a project would
become more equal.

If projects have difficulty getting into top level docs (for example)
it is more difficult to grow adoption, which would let them into
top level docs, which would help adoption ...

> seems like a relatively benign assumption to make, but until we
> actually have an issue that would be solved by formalizing it in

I think that we have one. I could be wrong (it happens), but I think
this is a problem, and waiting for something bigger to happen, then
having the existential debate about what OpenStack is (again) causes
issues that could be dealt with to grow. (See Golang discussion).

> policy I would prefer to avoid introducing unintended consequences
> in implementations of projects brought on by layers of rules.  We
> don't want any projects discriminated against, but I don't think
> that's what is happening in these cases, and I think the existing
> policy addresses that case.

And I disagree - I think we need it to be more explicit.

> Doug
>
> [1] 
> http://governance.openstack.org/resolutions/20141202-project-structure-reform-spec.html#impact-for-horizontal-teams
>
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listin

Re: [openstack-dev] [all][tc] Equal Chances for all projects (was Plugins for all)

2016-07-26 Thread Doug Hellmann
Excerpts from Hayes, Graham's message of 2016-07-26 18:16:16 +:
> On 26/07/2016 18:47, Doug Hellmann wrote:
> > Excerpts from Hayes, Graham's message of 2016-07-26 13:48:35 +:
> >> On 26/07/2016 14:15, Sean Dague wrote:
> >>> On 07/26/2016 08:51 AM, Doug Hellmann wrote:
> >>> 
> 
>  Given the amount of in-progress work to address the issue you've
>  raised, I'm not convinced we need a global rule or policy. All of
>  the teams mentioned are working toward the goal of providing stable
>  APIs already, and no one seems to be arguing against that goal. The
>  teams doing the work are not dragging their feet, and a rule or
>  policy wouldn't make the work go any faster.
> 
>  The directions for cross-project teams were given when the bit tent
>  change went into effect were to "support all official teams" and
>  definitely not "do the work for all official teams." There was also
>  no requirement that the support be exactly equal, and it would be
>  a mistake to try to require that because the issue is almost always
>  lack of resources and not lack of desire.  Volunteers to contribute
>  to the work that's needed will do more to help than a one-size-fits-all
>  policy.
> >>>
> >>> Yes, exactly.
> >>>
> >>> Like Ihar said earlier, we get all kinds of breaks across out system all
> >>> the time. It's a complex system. If you look hard what you'll notice is
> >>> that project interactions where there are team members in common break a
> >>> bit less. For instance Grenade breaks Nova less than other projects.
> >>> oslo.versionedobjects breaks Nova less than oslo.messaging does. Why?
> >>> Because even with stable interfaces and tests, a lot of behavior remains
> >>> in flux given the patch rate on all projects. And when people understand
> >>> both sides of a problem, they are more likely to anticipate a problem
> >>> during review that no tests caught and didn't seem to change an interface.
> >>>
> >>> This isn't a thing that gets fixed with policy. It gets fixed with people.
> >>>
> >>> -Sean
> >>>
> >>
> >> If this is where all these projects are going, is a policy not a good
> >> way to indicate that this is how we want to work in the future?
> >>
> >> So when the next project starts, or a team wants to move in a different
> >> direction we have a piece of policy that shows we feel that this is the
> >> way we work as a community?
> >>
> >> I don't understand the objection to stating "this is how we should work"
> >> when teams are moving that way anyway.
> >>
> >> If to do that we need to dilute the policy, so be it.
> >>
> >
> > I do agree that writing down our expectations is a good thing.  In
> > this case, I think the policy that the TC has agreed to is accurately
> > and sufficiently documented in the existing resolution under the
> > "Impact for horizontal teams" section [1].  The stewardship working
> > group is actively working on a set of general principles for the
> > TC to consider, and it may make sense to incorporate the existing
> > policy into that list of principles to make it easier to find.
> 
> Sure, I know the work they are doing - this has been bouncing around
> my PC for a bit before I had any knowledge of what the plans were there.
> 
> > I personally don't agree with changing the policy, or making it
> > "stronger" in some way, right now because I'm not convinced that
> > we need to treat all projects exactly the same in all cases.  It
> 
> This is the crux of the debate.
> 
> Are all projects equal?

According to our current policy, all projects are equal in the sense
that cross-project teams must support them. They are not equal in
that the level of support given, and criteria for choosing that
level of support, is left up to the cross-project teams.

> 
> If they are not, I will be disappointed, but we should then move to
> define this in-equality, and state who is in, and who is out.

This is not an in-or-out distinction. It's a matter of resources
available to support teams directly, or not. A few examples:

* The documentation team has drawn a line for which projects
  are included in the tutorial-driven installation guide they are
  writing.  Other teams are able to write their own installation
  guides, or even collaborate to create joint guides.

* The release team formerly had a special tag that we used to
  indicate which project teams we were managing. With the increasing
  automation, we have expanded that list of projects significantly.

* The TC has directed the QA team to take tests into the Tempest
  tree when those tests are needed for DefCore. Any other decisions
  about what tests live in-tree or out is up to the QA team.

> In some ways we are back to the stackforge vs integrated situation,
> but unlike then we have no frame of reference for how a project would
> become more equal.
> 
> If projects have difficulty getting into top level docs (for example)
> it is more difficult to grow ad