The Changelog: Software Development, Open Source - Python's new governance and core team (Interview)

Episode Date: June 6, 2019

We’re talking with Brett Cannon for a behind the scenes look at Guido stepping down as Python’s BDFL (Benevolent dictator for life) and the process they had to go through to establish a new govern...ance model, the various proposed PEPs to establish this new direction, the winning PEP, and what the future holds for Python.

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at Fastly.com. We move fast and fix things here at Changelog because of Rollbar. Check them out at Rollbar.com. And we're hosted on Linode cloud servers. Head to Linode.com slash Changelog. This episode is brought to you by DigitalOcean. DigitalOcean makes it super simple to launch a Kubernetes cluster in minutes. The DigitalOcean Kubernetes platform empowers developers to launch their containerized applications
Starting point is 00:00:27 into a managed, production-ready cluster without having to maintain or configure the underlying infrastructure. They seamlessly integrate everything with the rest of the DigitalOcean stack, including load balancers, firewalls, object storage spaces, and block storage volumes. They even have built-in support for public and private image registries like Docker Hub and Quay.io. Developers can now run and scale container-based workloads
Starting point is 00:00:53 with ease with the DigitalOcean platform. Learn more and get started for free with a $50 credit at do.co.changelog. Again, do.co. ChangeLog. All right. Welcome back, everyone. This is the ChangeLog, a podcast featuring the hackers, leaders, and innovators of software development. I'm Adam Stachowiak, Editor-in-Chief here at ChangeLog. Today, we're joined again by Brett Cannon for a behind-the-scenes look at Python as Guido steps down as the BDFL benevolent dictator for life. And the process they had to go through to establish this new governance model, the various proposed PEPs, to establish this new direction, the winning PEP, of course, and what the future holds for Python.
Starting point is 00:01:40 All right, we're back. Brett Cannon's back. We are so excited. This is a two-time guest. Gosh, man. It's just such a good day, Brett. I'm just so glad to have you here, man. I feel very privileged to have made it to the two-time guest level of the changelog, so thanks for having me. Well, that means you definitely didn't suck.
Starting point is 00:01:59 Oh, that's good. And not to give you too much praise, but get the four, maybe five. That's better. What's the record? Mike Parham's at four, I believe, right, Jared? Or five? Four or five. I think Mike Parham might be our highest guest.
Starting point is 00:02:13 We have a few people at three, but Mike, I think, has the most. Yeah. All right. New thing to strive for in life. That's right. That's right. Either way, since the last time we talked, which was episode 318, some big news, some big things happened in the Python community.
Starting point is 00:02:26 One of the biggest things was the BDFL, Guido, stepped down. So maybe give us the lay of the land of how the community, how the language, how the whomever is involved in Python has reacted to this. It seems so far to have been well received uh when guido retired well i should rephrase it he he phrased it as taking a permanent vacation uh so actually when he announced there were a lot of like conspiracy theories going around and slash hope that he was actually joking or oh he's just taking a break and he'll actually come back he really didn't retire a lot of wordsmithing going on in that uh email so what did he do then uh he retired
Starting point is 00:03:11 yeah at least as the benelic dictator for life for python he definitely retired um i think the community's uh accepted fairly well When it first happened, a lot of people spoke out and said, thank you so much for your time and dedication and everything you did. He received a couple awards subsequent, acknowledging his contribution to open source and obviously to Python. And I think everyone's been fairly respectful
Starting point is 00:03:43 of the reasons why, and obviously we can get into that. And yeah, I think it's turned out to be pretty well received, and I don't think anyone's really held it against them in any way, shape, or form. Well, they shouldn't, right? I mean... Oh, yeah. God, no.
Starting point is 00:03:56 You can only have such a long term of service, you know? You can't be in it to win it for forever. Yeah. Well, he started... Yeah. Yeah. can't be in it to win it for forever yeah well he started yeah yeah well he started python uh december of 1989 yeah so retiring in july of 2019 means he's yeah over 29 years so i look at that and think like ken griffey jr 1989 rookie card upper deck yeah anyways that was my hero when i was a kid but unfortunately he didn't have the the stick-to-it-edness that guido has shown that's right yeah that's the difference there because griffey got injured quite a bit and uh didn't have the career that
Starting point is 00:04:36 he could have had that's right guido's been going on and on until a happy retirement from bdfl at least it sounds like he's still somewhat involved. But undoubtedly, there was a big reaction because when you have a dictator for life and then the life part doesn't happen to be true anymore, then it's like, what do we do? And that's where we all were left, right? Exactly. When Guido announced his retirement,
Starting point is 00:05:03 as part of that announcement, he said, he basically asked the development team, so what are you going to do now? He purposely did not tell us how to choose how to manage ourselves going forward. There was no succession plan. There was no specific guidance of, i think you should do this it was very much i am stepping down and taking a vacation i'm still around he's he didn't unsubscribe from alias or anything or fall off the earth uh but he very purposely said you all are going to figure it out on your own and good luck and i i call doing a mic drop but basically he kind of just left it to us i don't know him personally obviously but it seems like
Starting point is 00:05:55 there's either a massive amount of trust or this is a gigantic experiment you know to get it right yeah and it it felt like both right it was i and i think he did trust that we would figure it out but i think it was also kind of his way to say i don't want to force anything upon you now it is now your choice to decide how you want to run yourselves. And so I'm going to let you decide for yourselves instead of telling you how you should do it. I view it as a much more kind of stereotypical hippie decision of, yes, you're
Starting point is 00:06:37 all going to choose how you're going to want to run the commune now. So I think it was very much along the lines of, I don't think he wanted to have his last act as bdf he'll be and now you're going to run your project this way i think it was very much more like i i think it's now up to you all to decide how you want to do it and it's you're the ones are going to be leading uh not leading living with this longer than he does so it should be up to you to decide how you want to do it any chance there's any
Starting point is 00:07:06 lost archives of like scribblings from Guido or something like that there's like future of Python that has not become in a pep near you
Starting point is 00:07:14 sometimes like on a cave wall who knows I'm just thinking like gosh this guy must like have so many dreams that that may be just
Starting point is 00:07:22 left under the table and I don't know I'm just kind of curious if we'll find some lost Guido archives or something. Probably not actually just because he's still participating
Starting point is 00:07:35 so he is still providing advice we are still getting Python and Hamster proposals and he's still providing input so I think if there was something he honestly decided he really wanted he could totally still do that and
Starting point is 00:07:53 see that come to fruition so I don't think honestly even if there was something he wanted to get to that hadn't happened before his retirement he still has the opportunity to do it so I would honestly hope that he didn't have any regrets going like, darn, I didn't get to that one thing. I would hope that he would still feel empowered enough to still get to see that happen.
Starting point is 00:08:14 So the announcement came July 12th of 2018. We last had you on the show. We recorded in October, and it was very much in progress what was going to happen. The peps were in progress. For those of us who are not deep in the Python community, maybe the uninitiated, explain what peps are, what that process is, and then once you do that, you can go into what happened,
Starting point is 00:08:38 July, August, September, moving forward to get to where we are today, which there is a new governance in place. We're going to try to tell that story and also, you know, peel back the whys behind what the decisions finally came to be. Yeah, I mean, to give the plot away, Python did not collapse. So obviously it all worked out in the end. You're not going to listen to the end, Brett. You ruined it. Yeah, I know. Oh, well.
Starting point is 00:09:03 But yeah, story time. So before July 12, 2018, the way PEPS worked, and PEPS are Python Enhancement Proposals, and they're very much based on the IETF's RFC system. Basically, what would happen is if someone had a major change they wanted to make to Python, typically this is language level. It can be module level, but it was kind of a gut feel of what really required a PEP and what didn't. But basically, you would write this document that would give an abstract of what you wanted to change, a rationale of why you wanted to change it, an explanation of exactly what that change was, hopefully implementation,
Starting point is 00:09:49 discussions of backwards incompatibility problems potentially, and then also act as a historical document of what came up in the discussion of this idea. Because PEPs tend to lead to changes to the language. It tends to be fairly controversial with some people. And so the PEP also records rejected ideas and why they were rejected. And if it's in the middle of a conversation, any current open issues that are still open for debate. But basically, that's it.
Starting point is 00:10:18 It just becomes a document that records a proposal for an idea. And for the fateful retirement day, what would happen was Guido would either choose to make a pronouncement himself and either accept it or reject it, or in the last few years, he added the concept of PDFL delegates, where basically Guido would say look I don't have enough domain specific knowledge in this area but this other person does and I trust them to make a good decision
Starting point is 00:10:54 so I'm going to delegate my BDFL powers for this one pep to them and then they would play that role so they would be the one that you would have to convince they would be the one that would provide the feedback and ultimately they would be the ones that would make the call of whether to accept or reject the PEP. And that's basically it. And anyone technically could make a Python enhancement proposal. It is open to the public. We do ask people to propose the idea first to a main list called Python Ideas. That's Python's Python dash ideas, if you're going to search for it later.
Starting point is 00:11:27 And just to make sure that it hasn't been discussed before, because obviously 29 years of history means there's a decent chance your idea has come up before. And then if the general people on that main list go like, yeah, that's not a crazy idea, or are able to give you feedback as to why it's a crazy idea, you can then consider moving forward and writing a draft PEP, sending it to the list again, getting feedback,
Starting point is 00:11:51 getting it kind of tightened up, ready to go, and then get that sent to Python Dev and have the real serious discussion. So that's how the PEP process worked. And then starting July 12th, that all came to a screeching halt because we no longer had someone to make the BDFL decisions on a single PEP. So what happened is we basically put Python's feature development from a PEP perspective on hold.
Starting point is 00:12:21 We literally put our forks down and said, okay, no more. Pencils down. We are not going to touch a pep. No one is in a position of power right now to make a call on any peps. Whether it's to actually make a decision or to actually delegate to someone. So we all just immediately agreed to that.
Starting point is 00:12:40 Day to day kept working though. We still fixed bugs and stuff and kept moving towards getting I believe we were still under Day-to-day kept working, though. We still fixed bugs and stuff and kept moving towards getting... I believe we were still under Python 3.8 at that time? No, it would have... Yeah, Python 3.8 development would have started by then. So day-to-day was still going on, but the high-level stuff stopped.
Starting point is 00:13:01 And then we started to discuss, what the heck are we going to do? As we discussed just a minute ago, Guido left it completely up to us to decide how we wanted to handle our governance. How do you run the Python open source project now from a development perspective? And so we very quickly agreed that we were going to do it through the pet process
Starting point is 00:13:24 if for any other reason than because we all agree on it, and don't reinvent the wheel if you don't have to. So we just decided at least we were going to be proposing peps on potential governance models. And then we tried to get initial, I don't want to say deadlines, because we didn't keep to them at all, but at least guidelines of when we wanted to aim for this stuff to get done. Because we realized we were in a very interesting position of we didn't want to rush this because obviously there's the possibility
Starting point is 00:13:59 for some of us to actually live with this for a long time. I've been contributing to Python now for 17, 16 years? 17 years? So whatever decision here, I could have to live with for decades. So I didn't want to rush it personally. But the other thing is we also realized the Python community, specifically in the open source community,
Starting point is 00:14:20 honestly, as a whole, was very much watching what we were up to and users especially and not wanting to see us necessarily take forever because having the language kind of in this uh what some of you does a crisis of leadership uh last too long so we were in this weird spot where it's like let's not rush it but we don't want to take too long to give the impression that we don't know what the hell is going to happen or what's going on and thus you should not use python because who knows if it's going to be around in a year right so we more or less seem to have agreed that we
Starting point is 00:14:54 were definitely going to try to get it done uh at least the major steps in 2018 um i think some of us were hoping to get it completely wrapped up in 2018 that didn't quite happen but we didn't miss by too much and so with that squared away we realized while people were starting to think about how we wanted to govern ourselves and make governance model proposals we also had to figure out how to choose the actual model because there's kind of a
Starting point is 00:15:24 recursive problem here. Well, all right, how do you choose? Well, you got to choose how you're going to choose. Well, how are you going to choose how you choose? Well, you could choose how to choose how to choose how to choose. And you got to stop somewhere. So we realized figuring out simultaneously while we were choosing, or not choosing, coming up with our potential governance models,
Starting point is 00:15:43 we also had to figure out how we were going to actually choose. Because once again, Guido did not provide guidance on that. He just said, it's up to you to decide how you want to decide. So we also started a simultaneous discussion somewhat on voting. We are lucky enough that we all tried to get together for a week once a year in September at the Python dev sprints, where it's only core devs because we find we aren't very productive at sprints
Starting point is 00:16:12 at conferences like PyCon because we're trying to help newcomers get up and going and answer questions for people. And so it's not a good productive time for us. So we started annually having a week where it's just core devs so that only core devs are able to ask questions of each other so that we can get more focus time. And in September 2018, I was hosted at Microsoft in Redmond, Washington,
Starting point is 00:16:33 in the United States. And we were able to get a bunch of us in a room who cared about voting, because obviously you can really nerd out a voting system, it turns out. And some people cared a lot and some people could care less and so some of us who cared got together in a room and we just brainstormed and kind of like okay what feels right what feels wrong where do we want to do the voting and where
Starting point is 00:16:57 do we want it to go uh we came up with what we thought worked. We took it back to the main list shortly thereafter in September while people were still getting proposals for government smalls. There was back and forth on that. There was a lot of discussing. And it was kind of tricky because, as I say,
Starting point is 00:17:19 we were trying to choose how we wanted to choose, but we had no one in a position to choose how to choose how to choose, right? but we had no one in a position to choose how to choose how to choose, right? So how do you choose what voting model? There's no one in a position to say, all right, that voting model seems to win, right? Does that have more votes or how do you vote for a voting system? It was a really odd position to be in because it was done entirely by consensus and just sheer willpower of everyone involved to kind of go like okay this seems like the voting system everyone mostly seems to agree
Starting point is 00:17:52 on but we have no real way to like officially declare that so we kind of all just went like okay this seems to be what everyone jelled around and so we're going to go forward with this if you got a problem speak up and i don't really remember anyone specifically speaking up but honestly had they it would have been needed like a large number of people to really speak up to go like no that seemingly consensus is not right so we ended up on a voting system um it was uh based around the uh condescending method it's basically it was uh sort of like ranked ballot it's there there's a whole thing uh we can if you really want to get into the nitty-gritty details uh but there it's all written down in a pep uh It is in, I believe, the PEP 8001. That PEP lays out how we did the voting. So with that out of the way, and that was decided, I believe we've decided on that sometime in
Starting point is 00:19:00 October, maybe by the end of October. We had started to get a kind of coalescing of what models we wanted. And so come about mid-November, I believe we set as the deadline to get all of the proposals in and locked in. And then we held a vote from the beginning of December till mid-December 2018, and then we got a result,
Starting point is 00:19:30 and then we all took a big deep breath for having finally settled that one, and then the selected model, and we can discuss the models if you want later, required some elections, so we had to hold those elections. We held those elections from mid-January to mid-February. We did that, and then the elections finished, and then the new governance model kicked in more or less that day, and we've been running under that model ever since. This episode is brought to you by the O'Reilly Open Source Software Conference in Portland, Oregon, July 15th through the 18th. is where you go to understand what's shaping software development from AI and cloud technology to distributed computing and learn how to put it to work for you and your team. Whether you're looking to understand where software development is heading or machine learning can make or break
Starting point is 00:20:33 your code, OzCon is where you'll find your answers. Hear from industry leaders like Pete Skomoroch, Holden Carew, Allison McCauley, and Sam Charrington. Passes start at $7.96 when you register with the code CHANGELOG20 before June 7th. Again, before June 7th, use the code CHANGELOG20 and head to oscon.com slash changelog to learn more and register. so brett as you describe this entire process i can't help but wonder do you like this stuff um governance and voting and model like the cone the condirect method is this stuff like get your juices going or is it just like drudgery in order to continue? Because if it was me, I'd be like, I'd like to just do the features of the language. But here we are.
Starting point is 00:21:34 So I have a bachelor's degree in philosophy. You like that stuff. Yeah, so I like political philosophy. So I like the ideas behind it i like the thought problem of just thinking through the ramifications of the decisions but the i will fully admit that the whole process was a bit stressful um because i i i am vested to the level that I am. At this point, I am one of the longer-serving core devs that's still active.
Starting point is 00:22:12 And so I felt kind of like a vested interest of making sure this went well and smoothly. And so the actual decision-making was a bit stressful and trying to herd the cats as it were of like okay let's try to get all this done by this date so we don't drag on and trying to drive try to keep the discussions focus and trying to do all that while not having people think that i was trying to play mini pdf all and trying to become my own trying to become an overlord in the middle of all this or something while still trying to somehow exert some good forcing motions towards reconciliation and actually ending it.
Starting point is 00:22:56 It was kind of tricky. So yeah, learning about all the voting methods was interesting. The arguing about it was nice. So anytime that power leaves a scenario, there's a vacuum, right? So you have the person who's been the dictator, as the acronym states, for a long time, gone. No, like you said, no secession planning,
Starting point is 00:23:20 no handing off the keys to the kingdom to this person, and now they're in charge. That, I would imagine, produces a power vacuum. Python's a very important language, very important community, open source project. And undoubtedly there's lots of money involved because it's producing money for all the businesses that are using it, et cetera, et cetera.
Starting point is 00:23:44 How heated were the debates? How heated were the debates? How heated were the arguments? Was it relatively civil? Was there any, not the name names, but were there moments where it was like, wow, this is really intense? So you're right, there's a lot of money. I mean, I know of a bank that has billions of things trading daily thanks to Python, right?
Starting point is 00:24:09 Like, that's just one example. I mean, I don't think there's probably a single Fortune 500 company that's not using Python somewhere. So there is definitely money behind it but and one of the very interesting things about python is it's probably it is definitely the most popular programming language that is what i call community-based open source right there it and versus corporate-based open source it's not a go or um a rust where there's a very specific backer who is who basically acts as a backstop to make sure things happen. I'm not saying necessarily that they overexert control, but that there is a backstop there to make sure things happen.
Starting point is 00:24:53 Right. Or even JavaScript, right? Like they have ECMA there, and companies pay people full-time to work on JavaScript. So there is no worry of JavaScript disappearing. Python, on the other hand, I think now we can potentially claim we have a single core dev
Starting point is 00:25:10 who gets to spend all his time on Python. And honestly, he gets to do that because he just declared one day at work he was going to do it and no one said no. So, and I think he calculated if you add up all the core devs who get any form of paid time, I think we might equate to three developers on Python.
Starting point is 00:25:29 So it's very volunteer-based, which means pretty much everyone who's participating isn't really being driven by their employer. It's pretty much across the board driven by people who are choosing to put their time and effort into it. I mean, I'm very lucky. I got made manager of my team in March officially. And as part of that, I made a deal that any time I have that's not spent managing my team, I get to put into Python. So I can steal a good chunk of time when my team doesn't ask too much of my time.
Starting point is 00:26:02 But I'm extremely lucky in that perspective. So you to microsoft for that but it's not normal and so it means that there's not money in the management of the language everyone's pretty much acting as altruistically as they come which does mean though that it can become very passionate because there's not this, like, oh, I'm going to just make sure this works for my company, but it's for the company, not me. I don't have to worry too much versus I am putting my personal blood, sweat, and tears into this project, so I very much care that this result comes out well. There was – it got kind of heated over the voting system, actually. The actual individual governance models, there was enough of a variety there that covered the gamut of what I think everyone kind of expected as potential outcomes that there wasn't really any major heated discussions on that. But the voting system actually, there were times where it's like, wow, okay, that person's really passionate about this specific approach and really feels like there's going to be
Starting point is 00:27:10 potential disenfranchisement of people if we don't choose the right voting model. And that was an honest to God worry, was if we chose a voting model that people disagreed with at a fundamental level as not being fair, that could delegitimize the actual choice made through that voting system. So there was some heated discussion around the voting.
Starting point is 00:27:35 It worked out in the end and it wasn't horrendous. I think everyone also very much realized that this was a very unique situation and everyone was a little stressed and worried about the outcome anyway. so i think everyone put in a bit of extra effort to try to stay civil and try to make it not horrible basically so there was there were seven models proposed and these are the voting on which model to use you said was the one that got was was under debate versus the voting on how to vote. The first one that you all just, that was kind of a consensus, a soft consensus, but the actual voting on the governance models. Or maybe was there a bunch of people in the room saying,
Starting point is 00:28:17 hey, 8012, hey, 8011. These are the peps, 8010 through 8016, which, by the way, the steering council model eventually won, which we'll talk about how that works. But these seven PEPs, was there advocates for each one? And they describe why the commons governance model makes more sense. And somebody else would say why the external governance model made more sense, et cetera. Correct. I mean, because we use the PEP process, the author always acts as the advocate for that PEP.
Starting point is 00:28:46 So when someone made the proposal that I wanted, basically another BDFL, for instance, and that was PEP 8010, Barry Warsaw wrote that, and he, by default, became the de facto advocate for that. And there were discussions. A lot of it was around clarifications uh to try to work out exactly what peps were defining clearly because some of the pets were very specific about
Starting point is 00:29:14 how things would run going forward and some of them were very uh loose on purpose uh we have historically uh because we had guido as bdfl did not have very strict rules about how things happened it was always just whatever guido said which meant we've never really had to write down a lot of things things just kind of organically grew out of the project in terms of how to make decisions and basically if there's ever a disagreement you just ask guido all right what's the decision and then he would make it and that basically made's ever a disagreement you just ask guido all right what's the decision and then he would make it and that basically made it that decision the rule of law but we purposely didn't want we if purposely as a group never wanted to get drowned in the minutia
Starting point is 00:29:56 of how certain things happened um but now that we had peps uh proposing new governance model some of them were very specific on how things happened. So a lot of the discussion at that level was people wanting to get very clear clarification on what certain things did or did not mean. And then after that, there was some discussion of, so I like this because of this. I don't like this because of that. But actually, there wasn't a ton of back and forth um discussion actually some people got a little frustrated from that like some people were going like okay i don't have the time to keep up with all the little discussions of what each of the peps are uh i'd like to hear
Starting point is 00:30:40 people's opinions and some people and there was actually some discussions about whether people should come out and say okay my name is brett cannon and i like this because of this and i don't like the other six because of this and this is my preference uh because they felt that was kind of influencing they'd rather have people actually read them themselves and i said like i just i want to hear other people's opinions just to see where they're coming from, to see if that sparks a thought on my side. But it was very fluid in that regard. So it wasn't a lot of that. I mean, really, the coming to consensus and trying to make decision of the voting model,
Starting point is 00:31:19 the 8001 PEP, was really it. After that, it was just a lot of clarification, a little bit of people here and there occasionally stating i like this or i don't like that and you could read into it sometimes based on how they were asking for clarification questions like well you say this but what does it mean in this situation they weren't really leading per se but it was very obvious where people were coming from with their questions but otherwise it was pretty much a here are the seven at the, here are the seven ideas. Go read a bunch of PEPs for two weeks, and then we're going to start voting in two weeks and be ready to have a ranked choice order of what you like over what.
Starting point is 00:31:56 So as I said, the steering council model, which was PEP 8016, won out. Now that it's all said and done, you can go ahead and just tell us was this your choice or did you did you have to settle other people like this one did you like another one more was this uh we're hoping for what no actually uh so no this was actually not the one i voted for uh pep 8000 and i believe 11 uh yes the python governance model led by a trio of pythonistas so the one five yeah now we got well it's interesting though
Starting point is 00:32:48 we do have five it's good yeah yeah that was actually also discussed like do we
Starting point is 00:32:56 do we need to have an odd number does it really matter because if you have a tie you just basically can just say well then that fails so there's even
Starting point is 00:33:03 discussions at that level it's like is odd numbers important is there such a thing as too big of a number or too small of a number basically can just say, well, then that fails. So there's even discussions at that level. It's like, is odd numbers important? Is there such a thing as too big of a number or too small of a number? So no, actually, this was not my top choice. What I like about it, though, is top, tree of Pythonistas. I like that. Can I go for the acronym, huh?
Starting point is 00:33:23 Yeah, I do. Well, coming back from the military, you called the, jeez, I'm showing my age here when I forget these things, First Sergeant. The First Sergeant was in charge of the unit, the whole entire brigade. And that person you would call Top. It's just a term of endearment, a nickname, but it was meant to mean they're the person in charge.
Starting point is 00:33:44 They're the Tops, man're the top yeah top i kind of like that for that reason so if adam was voting and he goes solely on acronyms he's like which of these model has the best acronym well let's dive deeper into those details then so i like that aspect of it what is the dramatic differences between uh 811 and 816? Well, how about this? Why don't I go through all of them real quick? And then that way I can kind of just, I'll just kind of call out the major differences. Cool. So, 810 was basically a elected BDFL.
Starting point is 00:34:18 Otherwise, same thing. So, really all that did was just dictate how do we vote in a BDFL and how do we throw out the dictator. That didn't win basically because we couldn't agree. People didn't, there was a disagreement over whether that PEP needed to specify who the initial dictator would probably be. Or whether or not that should be completely left out and then after that was a general feeling that there was no single individual who could directly replace guido's uh commute ability to lead the community as well as has his technical acumen so honestly that very quickly didn't have any chance
Starting point is 00:34:59 uh 8011 was the trio which as i mentioned was basically BDFL but split across three, to kind of help take care of that issue of not having a single individual but having at least across three people, a good way to manage the community and all that, but also have the technical acumen to actually either make decisions or to delegate as necessary. AD12 was actually Rust's governance model. So that was very much everything is run by working groups. And working groups can form themselves, but then you had to get voted in. And then it was all about how to dissolve the working groups and how to choose which
Starting point is 00:35:41 working group handles peps. That one was very much a devolvement of power to more or less give everyone an equal chance to kind of lead if they chose to in their chosen area. That one actually came in second in the voting. And I will mention that the trio came in third. And I don't remember if they were that close. All the voting results are public, by the way, so you can totally look at the actual voting results. But it wasn't a huge difference. 813 was kind of interesting because that was for a...
Starting point is 00:36:23 It was basically, let's run python like an enterprise uh it was kind of the idea of when it when you go to your vp with an idea you sit in a meeting you tell them what your idea is you pitch it to them you try to convince them in that meeting that's a good idea and then if they like it, they say, okay, great, go do it. Or they will sit there, pepper you with questions, hopefully good questions, and then say, no, go back and go fix it. And that's basically what this model laid out. The other interesting thing about it, though, was it specifically said the council members could not be core developers with the idea being that you want someone who is impartial and has no specific pre-existing leanings that would cause them to make a bad decision because
Starting point is 00:37:16 they just have a pet project they want to see or change they want to see happen that didn't happen because basically a lot of the core developers said, no, I don't trust an outsider to know how the project necessarily works and how to handle things appropriately in the Python community, etc., etc. So that didn't really go anywhere. PEP 8014 honestly was anarchy. And I'm not joking.
Starting point is 00:37:40 Jack Jansen actually admits in the PEP that he would have used the word anarchy, but it's such an overloaded term of negativity that he didn't feel like he could say it that way. But basically, all it said was to choose on peps, there should be a vote. And that there would be more or less. And then there's a council to decide the result of the vote.
Starting point is 00:38:04 And that's it. And it says the council to decide the result of the vote and that's it and it says the the council should decide the result of the vote based on how the vote finished who voted how those people voted it was very much like we could have a vote among our vote in the core devs we could vote with the community we can look at who voted and how they voted, or we could not care. Basically, all there was was there was an election council to validate the results of the election, but they're allowed to interpret the results of that election almost any way they want.
Starting point is 00:38:37 In the blurb on that, by the way, PEP 8000 has all these blurbed out, and 8014, it says, instead, this is determined by the council of elders sounds kind of cool yeah i like that is it as late describe what an elder is like how old you gotta be uh no there is no age limitation yeah 38 80 or no everyone suddenly starts nominating their grandparents yes my granddad should be on this Because he's old enough
Starting point is 00:39:07 And he still has his wits about him That one sounds like you have to go on like a spirit quest Out into the mountains or something Come back different Yeah come back different With your feature With your pep all written up I've seen the whole
Starting point is 00:39:22 Didn't actually place last though I mean that one got uh it actually ranked fifth out of the seven so it wasn't last the external council came in last last yeah no that one uh and actually that one had the best quote from uh monty python the holy grail at the end where they um if you've seen the movie when king arthur runs into the commune out uh collecting muck out in the mud uh that was basically the model he was going for was having an autonomous commune run python i'm in a nice experiment yeah um 8015 uh was organization of the python community that one was basically basically it said there was going to be a council
Starting point is 00:40:08 and the council either chose a BDFL delegate or there would be a vote. And that's basically what the council did. Otherwise, the kind of expectation was it was going to be everything was going to be done in working groups otherwise.
Starting point is 00:40:23 I don't think that one because it wasn't quite strong enough in a specific position because there was still choosing delegates, but there were still working groups and votes. And honestly, after all of this, I think there was some voting fatigue after all the discussing of voting and what has to happen for a proper vote that I think some people were going like, yeah, I don't want to have to vote every time there's a new PEP.
Starting point is 00:40:46 So please don't ask me to vote that much. So I think that's partially why that PEP lost. And then AD16, which has actually become PEP 13, and PEP 13 is the actual official governance model PEP. That was the steering council one. And what that basically said was every release of Python, we will elect a council of five people. There can be no more than two people from the same company to make sure that no company can basically own the council. And the council has absolute power except for changing PEP 13, which dictates how votes are handled and who gets to vote.
Starting point is 00:41:29 And then the other little interesting bit of the PEP is it basically says the council has absolute power, but looks to use it as little as possible. So the PEP itself says the council should try to find consensus among the core developers. And I will admit, the reason I personally didn't like this pep is that felt a little too wishy-washy to me and too ripe for abusive power,
Starting point is 00:41:56 if that was what people were worried about. Because if the council has absolute power, they don't have to listen for consensus from the core devs. It's just kind of a hope. And I felt like if you were just going to hope for that, you should just go ahead and just do the trio and keep it simple. But because subsequently, since we've done this,
Starting point is 00:42:17 I've actually had people quote that part of the pep to me at least twice that the council was supposed to find consensus. So it's there, but it can't be ignored, but the council's not trying to ignore it. So it's put it in an interesting perspective of like the council can basically do what they want, but they're trying not to. But it also means that almost any action taken by the council, if it hasn't had a full-blown discussion before, can be questioned as not trying to reach consensus.
Starting point is 00:42:49 So that was one of the reasons I voted against it. But it won, and we have not collapsed, so it seems to be working. And those are all the models. Is there an escape hatch built in? Like if the steering council model is an utter failure, can there be not an overthrow of the council,
Starting point is 00:43:09 but an overthrow of the model and say, let's revote and try a different one of these seven or a new one that somebody else proposes? Are you stuck with it for good? Well, so not necessarily. So what the PEP specifically states is what the definition of a core developer is, and very specifically what an active core developer is.
Starting point is 00:43:29 So you had to have contributed to Python in the last two years to be considered active. And so that makes you eligible to vote. And then through approval voting, we vote in anyone who has put themselves forward to run on the council. It can be a core dev or it can be an external person who is sponsored by a core dev, I believe. So that also lets people who are not core developers participate, although everyone currently on the council is a core developer. You are allowed to call for a vote to throw out a council member, and that can include the entire council.
Starting point is 00:44:10 People can also propose changes to PEP 13, and that calls for a vote from other core devs. So technically what you could do, if you were not happy with this model, is propose a change to PEP 13 that basically completely rewrote how the model worked. Call for a vote and as long as the council does not veto actually we can't even
Starting point is 00:44:36 veto this. So basically if you propose a change to PEP 13 that says we're going to go back to a dictator and a majority of Cordes voted for it, that would change the model. So you could still do it potentially. One thing to pay attention to is the sheer amount of detail
Starting point is 00:44:56 in each of these proposals. I mean, I can only imagine, was this, this is the comprehensive list, right? How was this formed? Did you reach right the how how was this formed did you reach out to those that cared enough and said hey propose you know a new model well so what happened was uh i think we we obviously knew some pre-existed based on various people who have participated in other open source projects actually if you look you look at PEP 8002, it's actually a survey of other open source projects
Starting point is 00:45:29 and how they govern themselves. So it's actually an interesting document just to read how, in one place, how other projects do their own governance. But basically what happened was we just went, okay, if there's a way you feel we should be running the project, please speak up
Starting point is 00:45:48 and write a PEP. And basically, 810 was obvious because that was a dictatorship. 8011, which was the trio, made sense to those who thought there was no singular individual who could replace Guido. The community governance model
Starting point is 00:46:04 was basically Rust, so that was already known. The community governance model was basically Rust, so that was already known. The external governance model was a unique one. The commas governance model was Anarchy, so you could say that was unique or you could just say that was obvious as an option. And then the organization of the Python community as this kind of hybrid approach was a unique one.
Starting point is 00:46:24 But it was very much just us going to ourselves, what would we want? And then people just, some opinions just very quickly came up and bubbled up. And then some came along. Like 8016 was not actually originally a proposal. up in October based on various discussions that sparked Nathaniel Smith and to, and I believe he had some coauthors, yeah, Donald Stuff, to come up with the proposal. It was based on what they were hearing and where they thought things could potentially go. So yeah, we didn't specifically reach out to anyone other than some people specifically
Starting point is 00:47:02 going out and researching what other communities did and how they handled themselves and just kind of taking a step back and looking at if anyone's felt inspired to then take the time and effort to write up a PIP to propose it and advocate for it. This episode is brought to you by GoCD. With native integrations for Kubernetes and a Helm chart to quickly get started, GoCD is an easy choice for cloud-native teams. With GoCD running on Kubernetes, you define your build workflow and let GoCD provision and scale build infrastructure on the fly for you. GoCD installs as a Kubernetes native
Starting point is 00:47:45 application, which allows for ease of operations, easily upgrade and maintain GoCD using Helm, scale your build infrastructure elastically with a new Elastic agent that uses Kubernetes conventions to dynamically scale GoCD agents. GoCD also has first-class integration with Docker registries, easily compose, track, and visualize deployments on Kubernetes. Learn more and get started at gocd.org slash Kubernetes. Again, gocd.org slash Kubernetes. So let's focus in on PEP 8016 because that's the one. It's the one model to currently rule them all.
Starting point is 00:48:33 The steering council model, there's five members of the steering council. You've been talking about it a little bit. One of the things I found interesting is the duration and the term. So there's no term limits, but a new council is elected after each feature release. And I'm curious if that's a known quantum, or are you guys on like a six-week cycle, or does it just depend on how Python features roll out?
Starting point is 00:49:00 So we, that is a roughly known quantity, we release every 18 months for new feature releases. That's a good duration for a steering council, it seems. Yeah, so the 18 months is actually we occasionally discuss, do we want to switch to a year? Do we want longer? Because
Starting point is 00:49:20 we kind of got into Linux distros early as a thing, the 18 months just seem to have always worked out as a good number and it's continued to work out. Although there has been rumblings of like, what happens if we did annually like some languages? So it's known, it's not like lockdown every October 15th or every March 15th we do a release,
Starting point is 00:49:41 but it's roughly around those months. And we do know this initial group is going to be truncated because the next release of Python is later this year. So this initial council is going to have a shortened cycle. But yeah, so it's roughly known that basically if you end up, you will be on for 18 months. Now, as you did point out, Jared, there is no term limits. And that was somewhat on purpose. The idea being that if people felt people were doing a good job, there was no reason to kick them out. We do recognize there is institutional knowledge and just running things.
Starting point is 00:50:19 But it does allow bringing new blood because people will come on and come off as necessary. We did look at the Django Slaughter Foundation and how they run things. And out of their original council, I believe they have three that are still on. So there is some churn. But there is full recognition that basically people, I don't want to say people are lazy, but honestly, if people do a reasonable enough job, people will keep voting in people if they think a reasonable job is occurring. And so there was acknowledgment that the initial group of people, unless they step down, chances are they will keep being on it. And people seem honestly fine with it.
Starting point is 00:50:59 So the lack of term limits so far hasn't been a problem. But then again, we haven't had a second election or a third or a fourth or a fifth. Come back in a decade and then we'll see if people have problems with the lack of term limits so far hasn't been a problem, but then again, we haven't had a second election or a third or a fourth or a fifth. Come back in a decade, and then we'll see if people have problems with the lack of term limits. So we should mention that you're a member of this council. Congratulations. Thank you.
Starting point is 00:51:17 Yes, and the twist ending to this story is Greedo's back. He's on the list. Yeah, so it was funny. So I put my name forward. As I said, I feel invested in Python at this point. I'm lucky enough to have a lot of friends in this community. So I want to see Python to keep going, if for any other reason,
Starting point is 00:51:36 to just selfishly make sure PyCon continues to happen so I get to spend a week hanging out with good friends of mine somewhere around the world. But Guido actually emailed me asking if I thought it was okay for him to run because he did say when he retired that he didn't want to completely walk away from Python and didn't want to participate. He just didn't want to be the sole person in charge anymore. I think I've heard him in an interview kind of related to sending your kids off to college. They're still your child, and you still talk to them and try to help them out with life,
Starting point is 00:52:14 but they're not living on your roof anymore, and they're not coming to you day to day with all their problems, and you don't have to make them lunch anymore. So I think that's basically where Guido was coming from. He felt he still has a technical insight to provide and he still wants to help out. He just didn't want to have to run all the political stuff and all those kinds of decisions. So I personally told him that I thought it was reasonable and a good thing to
Starting point is 00:52:40 do. And I think it also helped with validity of the council for, so there's good optics honestly to be able to go like okay guido may have stepped down as bdfl but he's on the council that someone helps legitimize it and uh yeah i know some people have been worried like are we just a mouthpiece for guido and he's still pulling the strings behind the scenes and the answer is no uh Guido attends the meeting that's my next question yeah yeah no we were told you to say no yeah it's really all deep state and it's really a shadow government for Guido and it's totally just so we can take blame for everything uh no so uh Barry Warsaw, Carol Willing, Nick Coggan, and myself plus Guido. We have weekly meetings, and Guido's just another participant.
Starting point is 00:53:29 He takes notes just like the rest of us have taken notes in the meetings. He gets no special treatment. If he has some technical thing to say, we listen to him just like anyone else would listen. I mean, obviously, he has some very deep knowledge of how the language is structured so obviously we listen to him as someone who's been working on python for 29 years but it's not like we are willing to go against him in a decision um like i've that we've had one thing that kind of split the council and i i personally went against what guida wanted and it just was what it was.
Starting point is 00:54:05 And it was nothing personal. And he knew that. And I knew that. And it was just a thing. The decision was made and it's no big deal. So no, he was, he's not running the council behind the scenes in any way,
Starting point is 00:54:17 shape or form. And there's already been decisions where others have disagreed and it was no big deal because we're all basically friends anyway. And it's just, okay, it is no big deal, because we're all basically friends anyway. And it's just, okay, no big deal. I'm not that intimate with the contributions history of Guido, but one of the stipulations is having non-trivial contributions in two years. So does that mean that he will continually actually write code for Python?
Starting point is 00:54:42 Yeah, I mean, he still participates. We have not officially defined what that represents yet. I actually am in the middle of writing some code to try to hopefully automate how we calculate that based on contributions to certain repositories. But Guido still participates in PEPs. He's still been named BDFL delegate on a couple peps at this point he he's made prs and merged them so he's still participating it seems like his succession plan was not a succession plan that was a succession plan and the fact that he like he
Starting point is 00:55:16 wants to be involved it seems like maybe some of his underlying motivations might have just been to resolve himself off of like some of the pressures and responsibilities that the bdfl model requires of the dictator oh very much so i mean the key catalyst to this was that python introduced what we call excitement expressions or the walrus operator and it was a very controversial decision it introduced new syntax where there's definite benefits but it was viewed as margin one of those things where it's a marginal benefit in several cases that you might scatter about in some places but it didn't introduce a new capability to the language that was not somehow doable without it being there. And at this point, people very much like Python's size
Starting point is 00:56:12 because we have a phrase that Python fits your brain, and whenever there's new syntax that doesn't open up a new avenue of abilities that weren't possible before, people very much worry that that feature is going to lead to a potential cascade, or that will be the feature that finally pushes some other aspect of the
Starting point is 00:56:31 language out of their head. And because of the amount of negativity he got over that pep, he just finally said, forget it. I don't want to have to fight that hard for one of my decisions ever again. It was just, it was funny. He just went, enough's enough. I just don't want to be that kind of focal point.
Starting point is 00:56:56 And I think the best way to kind of point that out is if you look at what the hierarchy used to be, it all funneled to him, right? So all the pressure of all the development more or less funneled to this one individual very, very decisively. And then now that he's no longer doing that, the pressure is alleviated not only among all five of us. It does not mean there's five more PDFLs so we have five times more capacity
Starting point is 00:57:25 as some people have suggested. But also because the PEP specifically says we have to get consensus, it also falls a bit more on the overall development team to have to come to an agreement and participate and make decisions as well. So that also helps alleviate some of the pressures like, well, we try to get consensus. No one can come to consensus, so we're just going to let it go. Unless we feel as a council something is very critical
Starting point is 00:57:50 and we need to make a decision and we really think this is for the benefit of the team. And thus we have to potentially make that unpopular decision that not everyone's on board for because we honestly think that it's important enough to make that kind of call. So have you you as a council well i guess first of all i'm curious why the number five is the magic number um i know you
Starting point is 00:58:11 had the other one with three this one was five i haven't read the details enough to know if there was like a specific reason for five but i'm also curious if it's if the council itself has been stressed at all in terms of decision making so far i know it's only been a couple of months that y'all have been active but has there been any difficult decisions where you haven't reached consensus or struggled to get there uh so for the number five if i remember correctly uh it was mainly it's an odd number and it's enough that reaching consensus means there isn't any specific, um,
Starting point is 00:58:51 way to hopefully directly influence people to get what you want, but it's not so big that actually reaching consensus is difficult. I mean, basically five is a manageable number without feeling like, Oh, there's just this magic little cabal. I can see with three where you could just turn one person to your side and basically strong arm the third,
Starting point is 00:59:13 where with five you'd have to convince two others. So it requires a little more effort there in order to get a vote to go your way. Yes. In terms of any controversy so far uh yeah um we purposely try to present any decisions we make as a council there's we don't say like oh well these we voted this way and thus the results this so i don't want to necessarily point out any specifics in terms of splits but i will say there has been at least one where we've split three two um but i, I mean, as I said, no one felt like,
Starting point is 00:59:46 oh my God, this is such a horrible decision, why are we doing this, who didn't get their way. It was just like, oh, all right, well, that's too bad. But that was it. We have had at least one decision we made that was viewed as somewhat controversial. And honestly, I think part of the controversy was, honestly, we were a little sloppy in the process.
Starting point is 01:00:07 Basically, we, I think it was last month, accepted a PEP to move our issues over to GitHub. And the PEP that outlined the reason behind the decisions wasn't updated fully, and it had some factually inaccurate statements that need to get fixed. It doesn't necessarily change the decision, but it was just kind of a sloppy way of handling it. And so people called us out on it and it was totally rightfully so to be called out on
Starting point is 01:00:34 and we do plan to fix it. That was somewhat controversial. There have been other times where things have been stated or suggested. And as I said, I've had people like quote back at me you didn't ask for consensus blah blah and then honestly that was main typically just people not noticing that something else had been discussed uh somewhere else and so it was usually just misunderstanding i was able to say no actually it was brought up over here and people didn't object and that usually settles that pretty quickly so it's it hasn't been too tumultuous really uh i mean we only all got elected february 4th i think i was in new zealand at the time on
Starting point is 01:01:16 vacation so i was off by days in the western hemisphere anyway so i don't even remember the exact technical day um but it uh so we just haven't been going too long it seems to be working out pretty well uh people seem to be more or less happy with the way things are going people have not been going like we need to overthrow me or someone else on the council or the whole council or there's not been a crazy thing. I think we've all agreed that in about three years time, we're going to kind of have a little retrospective on this and go, how do we think this has worked out? Do we think this is the right thing? Do we need to tweak something? Do we need to completely replace it? Much like I think Jared, I think you asked earlier, how do,
Starting point is 01:02:03 or maybe it was, yeah. how do you completely replace it? Well, we can change PEP 13. And so we've already decided as a group that in about three years, we're going to come back together and just have the discussion like, everyone OK? Is it all good? Do we want to completely throw this out and try again? And so we're aware that it is kind of experimental still.
Starting point is 01:02:24 And we're all still trying to figure things out. I mean, everyone is, right? It's one of those things where because it's a new model, everyone's trying to figure out where people, at least I think the development team is still trying to figure out where they want the council to fit in and be and where those boundaries of what should the council just directly handle versus when should we try to specifically get consensus and then even at that point there's always going to be the question of
Starting point is 01:02:51 was that consensus or not it's always going to be a little hazy and there's always going to be those times where decisions are made and it's like there seem to maybe be consensus but not clear consensus and is that acceptable and and i'll see people are people and there will always just be some people who just disagree and it just is what it is. How do you think all this will play out for the future of Python? So when we look at its impact, its ability to garner newcomers,
Starting point is 01:03:17 grow as a language, as a community, et cetera, one of the concerns before was the BDFL model where you have a dictator instead of a committee or some sort of proper governance models that you have now how do you think the long-term benefit to the language and those using it will play out give me some speculation here i'm hoping that it will actually um i don't want to say accelerate but I'm hoping it will open up some avenues to some things that we haven't been able to try before
Starting point is 01:03:50 I don't think it's going to hurt the popularity of the language I think we've reached cobalt level of integration into companies where there's no chance in hell people can get rid of us at this point so Python will always be around just whether or not we are,
Starting point is 01:04:08 the name Python is used in hatred or in love. We'll hopefully be where things end up, but hopefully it stays love. My hope though is by having five of us, it kind of opens up the potential for having ideas of how to try to move things forward. I kind of view the council as if everyone were to quit tomorrow volunteering, there's at least five of us around
Starting point is 01:04:31 to make sure something functions somewhere and we can somehow kickstart the project again. I view the council as now the backstop. As part of that, I'm hoping as a council we can work towards focusing the community's energy towards improving things right like Python 2 for instance has been a long running I don't say albatross but it's been a weight on us in terms of maintaining it and dealing with that transition in the community and that's all ending on January 1st 2020 right that's when Python 2 is going to officially be
Starting point is 01:05:03 retired and I think the hope is all that energy that's been kind of put behind my ending on January 1st, 2020, right? That's when Python 2 is going to officially be retired. And I think the hope is all that energy that's been kind of put behind migrating people over will suddenly be freed up and hopefully the council can help kind of focus it towards things that we think can help the community continue to grow and be a wonderful, welcoming place for everyone. For instance, to give actually a concrete example
Starting point is 01:05:24 of that, Adam, is we're currently working to potentially get a product manager through the PSF to help out with some things. Like the initial thing we're thinking about is the sunsetting of Python 2, right? That has a very hard deadline. And there's some things we probably need to work out. There's communication on that.
Starting point is 01:05:43 And so we're hoping we can actually hire someone to do that kind of work because Lord knows I don't want to have to grow through the python.org website and find every reference to Python 2 and rip it out. That's just not what I want to do with my Sundays. We're also talking about like having a vision document with kind of just like expositorily saying like,
Starting point is 01:06:01 where do we see Python in 10 years? Where can we potentially try to, as I said, funnel the energy of the community towards things that we think will have beneficial payout to keep the language relevant going forward and something people want to use? Because we don't want to end up in a position where we are just comfortable with where we're at,
Starting point is 01:06:20 and then we lose sight of where the community is going, and then we have to be left behind by our users because we just aren't where they need to be. So that's my hope is the council will enable that because before Guido just didn't have the bandwidth on his own to do that kind of thinking. And now that there's five of us, I'm hoping we can spread that around enough
Starting point is 01:06:38 that we can actually see those kinds of things come to fruition and have a positive impact going forward. That's a hard burden to bear solo. It's much better to have a team. Yeah, exactly. Brett, one last question for you. I'm curious about the Python Software Foundation, its role in the new governance, if it has any at all. Can you explain how they play a role? I don't know who they are or you are. ahead uh yeah so the python software foundation as a non-profit is basically evolved since its founding in oh god i don't remember i was elected to it in 2003 so that's when my memory starts uh it basically holds all the like uh ip for python and all the trademarks and then it also
Starting point is 01:07:22 does all the community outreach uh but it's always been run very independently of the Python development team, such that if the Python development team has something they need monetarily, like infrastructure, we can go to the PSF and ask for it. But otherwise, the PSF doesn't dictate anything to the actual development team.
Starting point is 01:07:42 So for us, actually, part of PEP 13 specifies that the council acts as the intermediary between the development team and the PSF. So for instance, we've started this conversation with the PSF about, hey, could you potentially hire a contractor to be a PM for the development team to handle the Python 2 sun setting? And that sort of thing.
Starting point is 01:08:06 The PSF helps organize and get funding together to fly core devs together for our weekly sprint every year in September. But otherwise, they stay out of it. Basically, they just say, hey, you come to us with what you need, and otherwise we are never going to try to influence the development of Python itself, because that's viewed as like a political wing
Starting point is 01:08:27 kind of coming in and influencing the language. And that's just not how the PSF is structured or its mandate anyway. So to us, it's acting more, I don't want to say a piggy bank because that just discounts the great people at the PSF and how they've always been very helpful when we needed stuff. But basically they just say, come to us with what you need, and otherwise we're going to leave you alone and let you do what you want.
Starting point is 01:08:50 Well, Brett, it's been awesome catching up with you. This pep talk has been, oh, sorry, that was a good pun, has been a lot of fun catching up with you for one, but then also just seeing, no, I didn't rehearse that. I was on the fly. Catching up with you. It's just been a lot of fun. I mean, it's good to, to hear that the Python community is taking the right steps. Thanks to Guido for seeing, I guess, his own future for one and the pressure
Starting point is 01:09:16 on him and then how to, uh, you know, provide a new way and, and even better to not actually put it in writing at first and let you all figure it out. I feel like that's really been the best step. Would you agree with that? Yeah. I mean, I think it's worked out for his personal well-being and I think it's going to work out well for everyone. Yeah. I'm hopeful for the future. We'll have to maybe do something like this more often too. We talk about the underpinnings of Python in the community and how the council is working out maybe the the five-year check-in as you mentioned three-year check-in yeah hey i gotta do what i can to get my next four uh guest spots on so
Starting point is 01:09:54 i can get the running crown of six i'll get you your ring soon enough yeah happy to be on if you want all right thank you for tuning in to this episode of the changelog. Hey, guess what? We have discussions on every single episode now. So head to changelog.com and discuss this episode. And if you want to help us grow this show, reach more listeners and influence more developers, do us a favor and give us a rating or review in iTunes or Apple podcasts. If you use Overcast, give us a star. If you tweet, tweet a link. If you make lists of your favorite podcasts, include us in it.
Starting point is 01:10:29 Of course, thank you to our sponsors, DigitalOcean, OzCon, and GoCD. Also, thanks to Fastly, our bandwidth partner, Rollbar, our monitoring service, and Linode, our cloud server of choice. This episode is hosted by myself, Adam Stachowiak, and Jared Santo. And our music is done by Breakmaster Cylinder.
Starting point is 01:10:49 If you want to hear more episodes like this, subscribe to our master feed at changelog.com slash master. Or go into your podcast app and search for Changelog Master. You'll find it. Thank you for tuning in this week. We'll see you again soon.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.