First I really appreciate Jordan's work, and I always appreciate those who 
really do something. If we don't have a begining, then we will never reach the 
end.




I now sort out the problem as:


1) Do we need to refactory the Tempest scenario code?  ------ yes

2) What if scenario refactory will affect many plugins which use scenario's 
unstable code?

    2.1) choice 1: plugins modify their code simply

           * for simplified modification, one week is enough

           * if plugins do nothing, then Tempest will not be responsible for 
their gate failures after one week.




    2.2) choice 2: scenario provides a set of "stable interfaces", and plugins 
switch to use them.

           * if many plugins use interfaces in scenario, then it may worth to 
have a stable base of scenario(not the current manager.py)

           * it will need more work in Tempest, but plugins will benefit from 
it.




to sum up, Tempest should let plugins feel as comfortable as we can, but if 
plugins doing nothing no matter what we do,

then they won't stop the pace of our scenario refactoring.




Zhufl      












Original Mail



Sender:  <[email protected]>
To:  <[email protected]>
Date: 2017/02/27 08:32
Subject: Re: [openstack-dev] [QA]Refactoring Scenarios manager.py







Yea, there is no doubt we should refactor scenario tests but even those are 
internal interface it breaks plugins. We can argue that plugins should not be 
using those but before that tempest should have all required 
interface/class/helper as stable interface for plugins. which is what scenario 
tests refactoring is trying to do.  






I agree with the process Andrea defined and we should follow the same.. If we 
can put a deadline for projects to fix, we can speed up our work of 
refactoring. I propose to keep refactoring patch for 2 week (including comments 
fixes etc) and give time to plugins to fix and yes we will help them.

After 2 week of time, we do not guarantee about any plugin failure (with very 
rare exception if interface is being used very widely)





Let's not break plugins (what we doing as max as possible) but we really need 
each plugins helps on those. QA team fix plugins since starting and we have 
submitted lot of patches for many plugins to fix them and many of them never 
got attention or reviewed. 

For such cases (which falls under 2 week of deadlines), yes plugins needs to 
take full responsibility if any of the tempest interface break them.




-gmann







On Mon, Feb 27, 2017 at 3:13 AM, Andrea Frittoli <[email protected]> 
wrote:




On Sun, Feb 26, 2017 at 12:49 AM Masayuki Igawa <[email protected]> wrote:


Hi,Thank you for bringing this up.Yeah, I understand your frustration. We 
already have the document about our stable interface[1]. It says 
------StabilityAny code that lives in tempest/lib will be treated as a stable 
interface. This means that any public interface under the tempest/lib directory 
is expected to be a stable interface suitable for public consumption. However, 
for any interfaces outside of tempest/lib in the tempest tree (unless otherwise 
noted) or any private interfaces the same stability guarantees don't 
apply.------So we can change private interfaces basically. However, I also 
assume that this document is not well known(or people just ignore it, though, 
maybe). So I'd like to advertise this policy here, and discuss it (if the 
discussion is needed.)

[1] https://docs.openstack.org/developer/tempest/library.html#stability



On Sat, Feb 25, 2017 at 22:39 Jordan Pittier <[email protected]> wrote:

Hi guys,
So I have a problem with these 2 patches here [1] and here [2]. You basically 
are blocking any attempt of refactoring manager.py. Refactoring that file has 
been our number one priority for 2 cycles, and so far hardly no one stepped up 
really to do the work, except me with these 2 patches. Let me remind you that 
that file is a gigantic mess, an so are our network scenarios. 



The manager.py file in the scenarios directory has no stable interface, and it 
was never "advertised" so. That some plugins decided to use some private 
methods (such as this _get_network_by_name) is unfortunate but that should not 
block us from moving.





I agree this should not block us from moving, and as you mentioned we 
definitely need to move and I appreciate the fact that you started the work!
 






So just to be clear, if we really want to refactor our scenarios (and we must 
in my opinion), things will break for projects that are importing Tempest and 
using it outside of its stable interface. I am not interested in being the good 
Samaritan for the whole OpenStack galaxy, I have enough with the 6 core 
projects and the Tempest stable interface. So guys, if you are and don't want 
to go forward with [1] and [2], be sure I'll never touch those scenarios again. 
I am not upset, but we have to make clear decisions, sometimes difficult.





We have no way to know exactly who's using unstable interfaces in Tempest, so 
it's likely someone will have to change their code as a consequence of the 
refactor.
But I think it's important that we are good citizens and advertise well what's 
going to change, even if it's about an interface which is not declared as 
stable.








[1] : https://review.openstack.org/#/c/436555/

[2] : https://review.openstack.org/#/c/438097/ 

__________________________________________________________________________ 
OpenStack Development Mailing List (not for usage questions) Unsubscribe: 
[email protected]?subject:unsubscribe 
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev 


-- 


Masayuki Igawa

__________________________________________________________________________ 
OpenStack Development Mailing List (not for usage questions) Unsubscribe: 
[email protected]?subject:unsubscribe 
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Scenario tests will go through a significant number of changes as part of the 
refactor and if every change risks to break someone's gate job it won't work.

I propose we proceed as follows:
- identify projects that import from tempest.scenario 
- send a notification to the ML about the changes that are going to happen
- help the affected teams to identify a way decouple them from tempest scenario 
code - most likely copy the relevant code in-tree
- meanwhile continue to work on patches for scenario tests but do not merge 
them yet






This process shouldn't take long and be rather straight forward.


I already have some data from codesearch, I will send out the e-mail tomorrow.


Andrea



__________________________________________________________________________
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: [email protected]?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to