16:00:09 #startmeeting api-wg 16:00:10 Meeting started Thu Feb 2 16:00:09 2017 UTC and is due to finish in 60 minutes. The chair is cdent. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:11 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:00:13 The meeting name has been set to 'api_wg' 16:00:26 #chair edleafe etoews 16:00:27 Current chairs: cdent edleafe etoews 16:00:34 o/ 16:00:41 o/ 16:00:50 \o 16:01:07 hi 16:01:11 o/ 16:01:13 hi everybody 16:01:45 #topic old biz and actions 16:01:47 #link http://eavesdrop.openstack.org/meetings/api_wg/2017/api_wg.2017-01-26-16.00.html 16:02:09 I was supposed to schmooze with the arch-wg about spending time at the ptg 16:02:10 I did 16:02:11 they were happy 16:02:17 we started some discussions about topics. some for daytime 16:02:20 some for bar 16:02:33 foo bar? 16:02:40 :) 16:02:52 #link etherpad for arch-wg ptg talk: https://etherpad.openstack.org/p/ptg-architecture-workgroup 16:03:36 I know we can't schedule cross-project talks, but is there an etherpad or some way to register names of interested individuals? 16:03:51 This came up for the Consistent Endpoints conversation... 16:04:39 I guess just that etherpad ^^^ :) 16:04:39 scottda: yeah, lots of people have expressed this problem 16:04:45 and that etherpad is one way 16:04:51 but I think we're going to have etherpad conflicts 16:05:10 as, for example, the py35-goals etherpad has the same thing: people registering their interest 16:05:14 but not in a global way 16:05:28 on the day of there is going to be an ethercalc to help people manage space and topics 16:05:32 Maybe we need a meta-etherpad, that points to all the other etherpads... 16:05:35 but I hope we start that before the day of 16:05:48 cdent: OK. 16:06:14 #action cdent to agitate with whomever to make sure the ethercalc is available before ptg 16:07:16 scottda: like https://wiki.openstack.org/wiki/PTG/Pike/Etherpads ? 16:07:37 edleafe: Yeah, like that. 16:07:56 #link ptg link of etherpads https://wiki.openstack.org/wiki/PTG/Pike/Etherpads 16:08:26 The other action item was that edleafe and cdent were going to hobnob over how freezing etc works. We didn't do that because of cycle timing 16:09:07 so we'll keep that for next time 16:09:16 #action edleafe to get with cdent to talk about freezing 16:09:31 #topic open mic and new biz 16:09:35 cool 16:09:54 "We probably need to cleanup and correct the list of people notified when we freeze" 16:10:25 I realized that when we pester people with the auto-pester script we're probably not up to date. I'm not sure I remember where that list comes from or what it even means. etoews ? 16:11:15 it's all documented here http://specs.openstack.org/openstack/api-wg/liaisons.html 16:11:32 (which is linked to from step #2 of http://specs.openstack.org/openstack/api-wg/process.html ) 16:12:34 yes, but do we have any indication that the json file is being kept up to date? 16:12:56 that's up to the liaison's themselves 16:13:00 hmmm, perhaps so, the last change was november last year, which is relatively good 16:13:35 I think we should add something in today's newletter reminding projects that that's the case 16:13:58 cdent: yes, especially with PTL elections ongoing 16:14:09 new PTLs should be reminded of this 16:14:43 see also #link https://wiki.openstack.org/wiki/CrossProjectLiaisons#API_Working_Group 16:15:21 k, moving on 16:15:55 let's reorder and talk "Glance!" before stability guidelines as they are related and "Glance!" will warm us up. rosmaita, you ready ? 16:16:01 sure 16:16:11 Really need some timely input on this 16:16:21 Here's the context: there's a disagreement between the Glance team and the QA team on what's the correct way to fix a bug. 16:16:30 (links in agenda) 16:16:38 I think this is a clear case where the docs are correct, so the code should change, but some on the QA team think the docs have to change (which ordinarily would be the correct move, but I don't think so in this case) 16:16:50 Anyway, Glance requests some timely advice. because while we were holding our patch until we received some advice, a tempest test was merged 16:16:59 This test will have to be reverted if the Glance patch is accepted, which of course is going to slow things down during RC time 16:17:10 which is really annoying because the QA team knew full well this issue was under discussion and that I was holding the Glance patch until we'd talked it over 16:17:19 so i just want to state out loud my opinion that this power play by the QA team was not made in the proper community spirit 16:17:28 but i digress 16:17:43 QA is being an activist judiciary? 16:17:51 at least 16:18:12 self-appointed, to boot 16:18:18 but again, i digress 16:18:32 my ask is if you could look those over and let me know what you think 16:18:40 My problem in understanding this is I don't use Glance on a regular enough basis to be affected by this, so I'm taking people's word for it 16:18:56 Some say that this change makes sense, and operators will be hurt without it 16:19:10 this is a different change, i think 16:19:11 The QA people say that making this change will cause all sorts of operator pain 16:19:15 the visibility one got through 16:19:32 this change is just that a DELETE call for a metadefs operation returns 200 16:19:33 rosmaita: ah, I hadn't seen that 16:19:39 it is documented to return 204 16:19:45 the last time I saw it QA was pretty strident about it 16:19:50 and all the other DELETEs for metadefs do in fact return 204 16:20:02 they seem to be strident about everything 16:20:07 heh 16:20:09 (oops did i say that out loud) 16:20:28 Long ago and far away the goal of the api-wg was to achieve consistency across and within the apis 16:20:52 a random delete operation that behaves differently from all the others "next" to it is inconsistent 16:21:01 that is my thought, too 16:21:17 but, if the openstack consensus is inconsistent but stable is the ideal, we will do that 16:21:33 i'm just trying to figure out if i'm being stubborn or reasonable 16:21:50 so my ask is to give me some feedback about that 16:21:54 And if it's documented to return 204, then it's a bug if it returns 200 16:22:18 that's what i think, the docs do provide a contract 16:22:24 success handling is often fairly generic, such that 200 and 204 are both in the class of "success". So the stability cost here is different from changing a 403 to a 400 (or whatever) 16:22:53 yeah, i think a consumer who hard coded in a 200 expectation here would be ... inept 16:23:07 the other thing is, if we change the docs, we need to make a big deal about it 16:23:13 becuase otherwise it looks like a typo 16:23:19 given what all the other operations do 16:23:23 * cdent nods 16:23:24 which is fine 16:23:34 if that's the appropriate thing to do 16:24:27 well, that's basically it ... would appreciate whether the fast fix (just change the docs) or the slow fix (get the code change + tempest test change) is the way to go 16:24:46 it seems to this is clearly a code bug. so the bug should be fixed. period. 16:24:46 if not, openstack risks going down the path of internet explorer where people wind up coding to the bugs and that way lies madness. 16:24:56 I think, unfortunately, you're going to need to go to the TC with this. The underlying issue is with regard to qa activism (which is a reasonable role for them to take, to a degree). You've got a sympathetic ear, but little in the way of executive power 16:24:58 Agree 16:25:01 the IE care! 16:25:03 *card 16:25:08 wish i'd thought of that 16:25:12 :) 16:25:35 BTW, my "agree" was with etoews' assessment 16:25:40 we three can pile on the review, if that will help 16:25:53 but I don't think that will change anything in any permanent sense 16:25:59 yes, it would be good to see soem consensus 16:26:02 *some 16:26:11 i will take it to the TC 16:26:31 just wanted to make sure i had done appropriate groudwork first 16:26:49 I think so. edleafe, etoews ? 16:27:05 Yes, I think an #agreed is in order 16:27:23 sure 16:28:21 #agreed The bug in https://bugs.launchpad.net/glance/+bug/1656183 is a code bug, not a documentation bug. The code should be fixed to return 204. 16:28:21 Launchpad bug 1656183 in Glance "Delete tags return 200 status code but api-ref says 204" [High,In progress] - Assigned to Ian Cordasco (icordasc) 16:28:29 Is that ok? 16:28:35 i reckon so 16:28:46 * sigmavirus did not expect that resolution 16:29:14 sigmavirus: call me roosmaita 16:29:28 sigmavirus: what resolution was your money on? 16:29:48 sigmavirus rosmaita - do you two just meet all day in separate channels? 16:29:50 edleafe: that it was a doc bug 16:29:55 asettle: yes 16:30:02 Cool. I take my leave. 16:30:05 asettle: we have to stop meeting like this 16:30:11 rosmaita: or do we? 16:30:24 *twilight zone music* 16:30:37 sigmavirus: the api-wg is evidently not in the camp of permanent stability 16:30:41 I'm running a meeting in the other room if you guys wanna pop in :p 16:31:13 i think the api-wg stives for "flexible stability" 16:31:25 sigmavirus: If every similar delete method returns a 204, consistency would say that that method is incorrect 16:31:27 not handicapping rigidity 16:32:08 sigmavirus: which is part of why I keep asking for input on the stabilty guideline, because it's hard to write about something like that without help from both the true believers and the opposers and the compromisers 16:32:09 which is a nice segue to the next topic 16:32:54 which can be summarized as: I'm really struggling to have any mental traction on refactoring/correcting etc the stability guidelines 16:32:59 masterful sequeway 16:33:10 cdent: i have a really unhelpful comment 16:33:24 the more i think about it, the more this stability tag seems like a bad idea 16:33:43 because, does it mean that if glance, for instance, doesn't adopt it 16:33:49 we can do whatever the heck we want? 16:33:57 that woudl be insane 16:34:21 i think we really need to all strive for stability period 16:34:37 also, is tag application retroactive? 16:34:48 like, the visibility thing we just went through 16:34:54 are we doomed from ever getting the tag? 16:35:00 if so, wild west time! 16:35:08 rosmaita: the tag is the TC's way of saying that "this project has achieved the stability as defined by x, y, and z..." 16:35:22 and it is at a point in time 16:35:30 from release X, this project's api is stable 16:35:45 s/api is/is asserting its api is/ 16:35:54 rosmaita: Not having the tag just means that a consumer cannot rely on that project to have as stable an API as OpenStack would like 16:35:54 though that's not much help to people who want to use release Y 16:36:21 ok, thanks, maybe i've been thinking about this the wrong way 16:36:42 projects don't adopt that tag 16:37:05 It's assigned to them, based on the guidelines under discussion 16:37:12 edleafe: that's not entirely true 16:37:27 cdent: oh? Enlighten me 16:37:29 the assertion tags (which this one is) are chosen by a project 16:37:46 and they are responsible for making that assertion 16:38:01 the TC has to validate the gerrit change 16:38:04 but the projects make it 16:38:30 I understood that to be more procedural 16:38:48 Instead of the TC constantly combing the projects and evaluating each one 16:39:11 when a project feels that it's ready, it creates the tag change 16:39:19 which is the signal to the TC 16:39:50 https://review.openstack.org/#/c/418010/3/reference/tags/assert_supports-api-compatibility.rst 16:40:08 an assertion tag is described as "self-imposed contract" 16:40:47 So a project can propose the tag change as much as they want, but it is the TC that always approves it 16:41:09 so, tbh, the reason i've been stubborn about that bug mentioned earlier, is that i'm trying to figure out what kind of "compatibility" we're talking about -- consistency across APIs or IE-style sitck-with-what-you've-got 16:41:10 I think it is more that a project can choose _not_ to propose the tag 16:41:32 cdent: well, yeah, that's the flip side of the definition 16:42:08 edleafe: and given rosmaita's concerns I'd be hard pressed to understand why any project (which didn't have microversions) would ever want to 16:42:44 rosmaita: from my perception of the people responding on the guidelines it is "ie-style stick-with-what-you've-got for ever and ever amen" 16:42:50 except that 16:43:09 for those project that have microversions there is an immediately accessible get out of jail free card 16:43:17 except that card is only useful to developers of the project 16:43:23 hopefully this is not off topic, but what are the deprecation rules for microversions? 16:43:32 not really all that useful to users of the api 16:43:40 rosmaita: again depends on who you talk to 16:43:44 rosmaita: my take is that you cannot change an API, except if not changing it causes more pain that doing so 16:43:45 some people say never 16:43:55 rosmaita: that's a very high bar to cross 16:45:09 edleafe: My take is you can change an api (to a new microversion) but not remove the old one. 16:45:15 rosmaita: technically, a project could document that after a cycle, the minumum supported microversion will be a number higher than the current minimum 16:45:40 edleafe: that makes sense, it would give people some time to adjust 16:45:43 rosmaita: but, at least among Nova, we've said that that will probably never happen 16:45:57 Most in Cinder say it will never happen 16:45:58 edleafe: that would violate the stability guidelines, if they are being followed to the letter of some people's laws 16:46:28 there is a vocal body of people who think none of the http apis should be deprecated ever 16:46:44 there is a much less vocal body that thinks this allows tech debt to live forever 16:46:45 cdent: sure, but nova has already indicated that it will break stability by dropping the code to support nova-network 16:47:38 I'd like to see a conversation about changing our understanding of microversions to allow incrementing the major version for a breaking change. 16:47:52 No one wants to support that rotting bit of tech debt 16:48:02 We've got 13 minutes before we finish up. I feel like we're going round (and have been going round) in circles on this topic and I'm not sure what to do about it. 16:48:19 Maybe we can mark things as "unsupported" and stay away from "deprecated" 16:48:20 scottda: there is no concept of "major version" with microversions 16:48:21 rosmaita with respect to deprecation, it's https://governance.openstack.org/tc/reference/tags/assert_follows-standard-deprecation.html if you assert that tag 16:48:21 if you don't assert that tag then ¯\_(ツ)_/¯ 16:48:26 edleafe: I know. 16:49:14 edleafe: But to me, that is a cause of great confusion. We should just have microversions be interpreted as "versions" with the ability to bump both major and minor number 16:49:19 scottda: ah, ok. Some people think that since Nova's start at 2.1 and go up to 2.42 (now), at some point, we will go to 3.0 16:49:42 edleafe: Yes. IF nova removes nova networking (for example), go to 3.0 16:49:58 sure makes it easier to know when the change is, as opposed to "in microversion 2.87" 16:50:17 and makes it easier to explain to all the confused developers I work with... 16:50:23 :) 16:50:23 who hate microversions. 16:50:36 scottda: so no one will be able to request 2.21 anymore? Because that version won't have nova-network anymore, either 16:50:57 sure, you can request whatever "version" of the api you want... 16:51:06 using the existing mechanism in the HTTP header 16:51:29 It's just a more user-friendly way of incrementing the numbers. Basically, semver 16:51:48 scottda: So at some point 2.x supports nova-net. Then nova-net is dropped. Now that same version number will behave differently 16:52:09 edleafe: why would 2.x behave differently? 16:52:23 it's no different than microversions today 16:52:38 at this point i think you're really just discussing deprecation 16:52:43 scottda: Because if you call a nova-net function as request version 2.x, it will no longer work 16:52:46 if nova-net is dropped in 2.87, you can use nova-net if you request 2.85 16:53:03 scottda: no 16:53:09 the code is gone 16:53:10 deleted 16:53:13 edleafe: Well, I'm assuming the code stays in the code base. 16:53:21 completely violating the microversion concept btw :) 16:53:24 scottda: that's the difference - it's gone 16:53:25 7 minutes 16:53:25 edleafe: If the code is deleted, then all bets are off 16:53:36 OK, we can talk more at the PTG 16:53:37 scottda: my point exactly 16:53:49 Let's move on 16:54:18 Yes, let's. Can people apply some of this enthusiams to the associated email threads and reviews (see link in the agenda). 16:54:34 #topic guidlines 16:54:38 I thikn we can merge some stuff 16:54:48 #link https://review.openstack.org/#/q/status:open+project:openstack/api-wg,n,z 16:55:05 the stuff frozen last week didn't get any objects 16:55:08 objections 16:55:26 Not exactly controversial stuff :) 16:55:32 true 16:55:40 i'll merge (since I froze) 16:55:58 Haven't gotten any more input on the boolean patch 16:56:53 If people could go there just to register your preference for style, that would be a big help 16:57:12 I.e.: 'is_enabled' or 'enabled' for naming 16:57:27 #action everyone look at https://review.openstack.org/#/c/411529/ to express preference on booleans 16:57:48 i'm fine with it as written (hence my +1) 16:57:49 capabilities is on the agenda (from several etherpads) for the ptg 16:58:35 i'm not sure on the status of pagination: https://review.openstack.org/#/c/390973/ 16:59:20 any last words (I'll get the newsletter) 16:59:32 I'm good 17:00:00 thanks everyone for coming and trying to get to the bottom of things 17:00:09 #endmeeting