Lily joins us again to talk about the new Steering Council, composite primary keys in Django 5.2, working with uv package manager, and more.
This episode was brought to you by HackSoft, your development partner beyond code. From custom software development to consulting, team augmentation, or opening an office in Bulgaria, they’re ready to take your Django project to the next level!
Will Vincent 0:00
This episode is sponsored by Hacksoft, your Django development partner, beyond code more in their services later in the show.
Carlton Gibson 0:12
Hi. Welcome to another episode of Django chat podcast on the Django web framework. I'm Carlton Gibson. Joined asever by Will Vincent, hello, Will,
Will Vincent 0:19
hi, Carlton!
Carlton Gibson 0:20
Hello. Will. Today. We've got with us. Lily for joining us again. Hello, Lily, how are you doing?
Lily Foote 0:24
Hello again.
Carlton Gibson 0:26
Thanks for coming on. It's been a while, so the big news was that you were elected to the steering Council. Yes, congratulations, along with you. Carlo, well, yes, but you know, so we get to see far too much of each other now, right?
Will Vincent 0:39
All right. Well, so let's, let's assume people don't know anything about that, like, what? What is that? What does that do? And what do you all do now that you're on is it one? Is it I don't even know. Actually, is it once a month? How often do you do meets? Or is it all email list we've been doing weekly
Lily Foote 0:54
recently, as we got started, we were thinking we should just have a lot of meetings so that we can start working out where we're at. We've just started to maybe drop down to for every two weeks. But, yeah, there's a lot to do and a lot to get started with. So,
Carlton Gibson 1:19
so what have we been doing every week? Because it's not just it's not just tea and
Lily Foote 1:22
cakes. That's true. Yeah, we've been discussing various things. There were a few quick wins we got out the way first, like confirming Marius, who was a previous fellow, as a merger and release.
Carlton Gibson 1:42
It is that it was it? Was it a merger? Was it a release? Oh, I don't know. I don't even know anymore. Whichever it was, he can now do that. Yes.
Will Vincent 1:52
Sorry, just for context, because once he lost his fellowship, he couldn't do that.
Carlton Gibson 1:58
Yeah. So the under the depth 10 rules the it used to be the case that everybody who was on the old Django core team could hit the Merge button on Django, Django, and it was like, Well, hang on. That's a the old core team. You know, people who hadn't been active for 10 years were just, you know, still had commit rights to Django and say, Hang on. That's not kind of how it was. And so depth 10 defined both a merger and a releaser role. And I think there's three or four mergers, the fellows, and then couple of other people. And then there's, meant, there's, I think there's three releases, or maybe even four releases. So there's the fellows who do it mostly, but then Maris, who's, they're able to do one if you know, you know one was on hold and the other was ill, and Maris could step in and get the release out, and that
Lily Foote 2:41
was something that came up just as the previous steering council was resigning. So it's not had anything happen with it until we got going,
Will Vincent 2:51
got it. And I'll just shout out to James Bennett, because I was on the board when he was doing a ton of work to kind of make all this happen. So I believe he spearheaded a lot of depth, 10, yes, a lot of invisible, a lot of invisible work. He spent on that. I saw a little bit of it on the board. But, you know, I just just to say, like, these things, you know, come at a cost, even though they're largely invisible the community, so it's good to highlight them.
Carlton Gibson 3:18
And, yeah, I mean, and part of the issue, not, not the issue. Part of the reality is that Django is a big ship, and it takes an awful lot of effort to turn because, and rightly so. It's got 20 million downloads a month, right? It's, it's a there's a lot of vested interests in, you know, various different points, and lots of competing desires and wants. And okay, that, no, it takes an awful lot of effort to get Django to move and depth 10 was crucial in in doing that and setting us up for the for the next thing. What else we've been up to? Lady? Um,
Lily Foote 3:53
well, several others got elected on various things. So we've started discussing some of those. I know Carlton's big on improving the third party package ecosystem and making that more understandable and so on. Myself, I'm I was looking to make contributor experience better, and we've been having a lot of discussions about, why is that not great at the moment? What are various things we could try and do to change that. But there's a lot of stakeholders, and it's a very thorny problem. I mean, looking over at the Linux kernel, they're dealing with similar problems. Of there's the rust in Linux project, who are wanting to make big changes, and then there's the maintainers who are wanting to make sure that they're not left supporting stuff without enough time and energy and so on. It's, and we're facing similar problems. It's, it's, it's a 10. Level as old as time. I think Taylor as old as time.
Carlton Gibson 5:06
So can there any sort of headline, sort of things that you that stand out to you? So, you know, it's been a couple of months. We've been meeting every week. We've got, we talked with the fellows, we talked with, you know, all numbers of people, what sort of things step stand out to you? Is like, okay, you know, this is doable. This isn't this. This will take longer. This is quicker. Yeah,
Lily Foote 5:27
I'm not sure there's any really, really quick wins with the contributor experience. Thing, one thing that I think we've agreed will be helpful is to try and get new Feature Ideas and discussion away from the detention of the fellows, because it's a lot of energy that it takes from them, and try and replace that With a process that is more community driven. And once we've as a community decided that, actually, yes, we do want to pursue this idea, then it can get put into track and worked on, and get the review and so on from the fellows. How exactly we manage that is still being discussed. We've long used the forum as a hey, you've got a new feature idea. You should discuss it here. First, one of the problems we have with that is that discussions tend to fade away and no one realizes that they're actually ready to make an action on sometimes there's disagreement, and it fills us out with no one agreeing. Or sometimes people are like, yeah, that seems a good idea, but no one takes the next step of moving it on as it were, so we're thinking about ways we can maybe formalize which ideas are worth thinking about more and having a way of tracking them better. We
Will Vincent 7:20
don't need to turn this into a steering council meeting. Helpful, helpful for the rest of us to have a sense of what all is happening. I think,
Carlton Gibson 7:26
I think this so, I mean, the conclusion to draw, at least from outside, is that there's lots of activity, and there's lots of stuff going on. It's even if not instant, least visible. But we've, we have got a project, a good job, project board, that people can go and have a look at, and and all the rest. We should link that in the show notes, but that just sort of shows what we're thinking about now actively, and what we know exists for, you know, later on, when we've got a bit more capacity,
Will Vincent 7:52
what's what is that under? Is that under the Django it's under
Carlton Gibson 7:56
the Django org, and then I think it's a mystery. GitHub projects are an utter mystery.
Will Vincent 8:02
I'll find it and
Carlton Gibson 8:05
put it, I believe it's a project, an organizational level project, called steering Council, something. And then there's also another repo with our meeting notes, where we're putting on every week. There's, you can go and see the meeting notes and what's been discussed and all the rest.
Lily Foote 8:20
It's GitHub, slash dango slash steering Council. And then if you click the Projects tab, you'll find it
Will Vincent 8:26
okay. I We me and Jeff should link to that in the newsletter as well. I think
Carlton Gibson 8:34
so, yeah, I mean that. So one thing we wanted to do was be more visible, right? We wanted to show that. So, you know, going in the news, that would be amazing. Well,
Will Vincent 8:45
I mean, you know, yeah, now that I know about it, we'll put it in there. But, you know, I remember, you know, being being on the board, the Secretary would take all these notes, and we had all these extra work to have, some things were private and some things were public, but it was just, you know, in this dark, dusty corner of the Django project site. So it's sort of, anyway, so it's doing the work, and then it's like telling people about the work. Speaking of which we should we make sure that on the newsletter, we're linking to the board notes, because we were for a while, but
Carlton Gibson 9:17
as well, we could put those in the show notes, because they the board notes now go up on a, you know, it's a whole Django app in the in the Django project.com website with a model and a list view and all sorts.
Will Vincent 9:27
Yeah, Jeff and I need you know, because we have the Django updates, which various people do, which is great, because it means it's in there every time, and it's a quick way to see, oh, yeah, there's double digit, you know, things, you know, added every week. So as much as it, I think we talk about, you know, being stuck and slow, like there are all the, all these things happening.
Carlton Gibson 9:50
So just on that little side thing, Lily, I just wondered, do you have any thoughts on how we might or are we communicating well enough? Do we need to improve? Do we have any. Ideas? Maybe the answer, no, I don't have any ideas. But like,
Will Vincent 10:02
can I recommend the blog? The blog was good. You guys did a quick blog post. Like, that's super easy. Sorry, to jump in. That's super easy for like, the newsletter to link to, for people to post on social. To me, that seems like the easiest way to like, link to stuff. For example,
Lily Foote 10:19
I think I am worried that we're even with the communication we are doing where it's probably not enough, probably not visible enough. We do have our steering Council minutes posted on the forum, I think. But I I think until we start announcing that we're doing something rather than just discussing what we might do, it's difficult to be more open about what we're doing. I mean, talking about on the podcast like we were just now is one way. But I Yes, yeah, I there's a lot we're talking about, and not loads of it, I think is filtering out at the moment, but hopefully that will change. Yeah,
Carlton Gibson 11:14
there are no quick fixes, I guess is the thing. So talking talking of quick fixes, this wasn't a quick fix at all. You involved in this year's Google Summer of Code project? Oh, yes. So tell us all about this, because it headline feature of Django 5.2 coming up. Yeah. Well,
Lily Foote 11:29
so concert primary keys, the oldest at the time, open ticket in Django. I started to look at it a bit myself, but life circumstances and so on. Mental wasn't making loads of progress. And then Ben comes along, says he wants to do it for his Google Summer of Code. No one else has been proposing this, but he has a proposal. It seems good, so we say, Yeah, let's give it a go. And he's just absolutely blasted through it. And
Carlton Gibson 12:04
it's a success, right? It's in, yeah, still
Lily Foote 12:08
more to do. There's foreign key support and generic foreign key support specifically, but an awful lot of the work has been done, and it's, as far as I can tell really solid,
Will Vincent 12:21
well, that that's a big thing. I was just talking to someone the other day who was who didn't know that was coming, who was having to do that their own, you know, their own cobble together way for performance reasons. So they were super excited.
Lily Foote 12:35
I think it's also there's a pull request, which may or may not have emerged out how attracted closely, but that uses corporate keys somewhere in the Django website.
Will Vincent 12:48
Fancy would that be to do with track in some way?
Lily Foote 12:52
So, because,
Carlton Gibson 12:54
yeah, I was definitely talking to Baptist at the last DjangoCon about track, because he, you know, busy maintaining that. And he was like, Well, I would write, rewrite it as a Django app, but composite primary keys. It's like, well, you know, you've got no excuse. Baptist,
Lily Foote 13:06
yeah, I don't remember which area it was, but they had something that was basically a composite primary key, and they the PR was to make it actually a composite primary key.
Carlton Gibson 13:18
My you'll tell me this. If this, my sort of understanding is that it's going to be most useful for people integrating Django with a legacy database in the first pass, right? So you've got an existing schema that uses composite primary keys, and then you'll be able to attach a Django model to it much more easily.
Lily Foote 13:35
Yeah, I think that's a very solid use case for it. There's also potential use cases in multi tenant C, I think the motivating use case for Ben, who's working on it, but yeah, there's various use cases for it, and especially once foreign key supports in it should be very solid, yeah.
Carlton Gibson 13:59
And it's going to be another one those exciting periods where the patterns, the usage patterns, emerge over the next couple of releases, right? Yeah. And how was mentoring, like you just sat back and, yeah,
Lily Foote 14:12
yeah. We had, I think we had weekly meetings, and I reviewed the code as it came in, and there wasn't much more to it than that. He had a very clear idea of what he was trying to do. So it was just about okay, helping him understand the code base and making suggestions on how to do things. A bit more Django II, but it was actually quite hands off. Okay, super, and
Will Vincent 14:45
now you have to remind us, I know you've you've with Django, not you've been a navigator, and I believe you, I was that
Lily Foote 14:53
navigator on the pilot session Django, not space. And then life and Google, Summer of Code got. The way, and I haven't done it again. I would like to, but time constraints, yeah,
Will Vincent 15:04
yeah, yeah, well, but just the fact that it's, you know, it's Django knots, who are often doing the update, the Django, the updates on Django itself, and the, as I think we probably discussed a year ago, the whole point is it shouldn't be the same people dipped into every time it's like, you know, when you have the bandwidth contribute, and so it's great that there's an organization and structure around it to facilitate that. So it's not the case that, yeah,
Lily Foote 15:29
I think it's one of the biggest wins of the past few years, more than any of the technical contributions. Even though composite prime keys is amazing, I think Jack development space is even better, still
Will Vincent 15:42
good, I would agree was so the couple things we want to talk about, but I feel like coming from these highs of steering Council, Google, summer code, so you're willing to share with us that at the moment you're in between jobs because You were made redundant. Of all people. Are you willing to expand upon that? Because so many people have trouble getting a job or keeping a job, and then for someone like you to lose their job is, I think it's helpful for people to hear about that, because it seems quite shocking, but it happens. Yeah,
Lily Foote 16:19
so I started at back in November, and I was getting settled in working on understanding the code base, doing a bit of support for other people in the team, that sort of thing. And at the and then in January, as I was expecting to pass probation, which my manager had told me he was expecting me to do it, I discovered that the company had over hired and were having to do a redundancy round. And I believe a lot of my team went with that as well as just me. But, yeah, job hunting again. It's not the, not the most fun experience
Will Vincent 17:15
well, but it's, you know, companies, there's a lot of cost to companies doing that, right? Obviously, not trying to, but just just from a for them to hire a team and let go of a team. Clearly, they didn't want that. Obviously you didn't want that. But it happens so well and then. So where are you at now? Right? Because I know when we spoke to you last you, you worked on colo for quite a while, and you're doing a lot of rust. Are you how much? What would you say the split is between rust versus Python, Django these days, for you, or in terms of your you know, dive in right now.
Lily Foote 17:52
Well, given I'm unemployed, it's all side projects at the moment. Yeah. So Well,
Will Vincent 18:01
do you have a preference? I guess I would say, right? You know, we often, we often lose people to rust, and they don't come back.
Lily Foote 18:09
I mean, at the moment, I'm trying to do both. It's rust is exciting. I love a lot of the power it gives me and the performance, but I also really love Django for its flexibility and just ability to get something working that is very easy to get to production quality is battle tested, and stuff like
Will Vincent 18:38
that. Well, let me, let me ask you, because so I'm a little late to the party, but I've and I'll probably attach it to this. I hopefully have a tutorial, finally, on UV and Django. So uv is written in rust. It's the package manager. It's taking over the world. You must have some thoughts on on that and how they did that, right? Because they sort of, they did it from scratch, as opposed to cobbling together other existing pieces the way most of the other tools out there had had done,
Carlton Gibson 19:05
yeah, it wants to be, it wants to be the cargo for Python.
Will Vincent 19:09
So, yes, exactly, yeah, yeah. The rest the rest,
Lily Foote 19:12
very impressive. There was a keynote at a rust conference by the founder of astral Charlie. Charlie mush, yes, that's the name about a lot of the stuff that they were doing with UV and from a rust perspective, and that's great watch. I highly recommend it. I've not actually used UV much myself, but, yeah, it seems really solid, and it's taking over a lot of the Python mind show. At the moment,
Will Vincent 19:51
I should go watch that one, because I think I'll link to it. He gave, he's given a number of talks. He's quite good at it. There was one too, I think was it Jane Street? Which is like a quantitative trader. So it was a little more hand wavy, but he was, and this was, I think, four months ago, but he was saying how, you know, it launched in February. And so four months ago is what, like November. It was already 10% of all pi, pi downloads were using UV. And, you know, it is, it almost seems too good to be true, right? That it, on the one hand, has like, a single, you know, lock file for everything. It also can do your Python, and it's not and it's fast, but it's so fast that you can do things like move things out of CI into pre commit, like so fast that it can change the way we work. So that, in some ways, is the most interesting thing to me, because that was one example. But I'm sure there's others, if you just don't even have to think about any of this stuff, you know, that sounds great, and I sorry, that's kind of what I'm super excited about. And yeah,
Lily Foote 20:53
I think as long as you willing to learn the new workflows, it's probably a really solid choice these days. My problem is that I have my own workflows that I really like, and I haven't just felt like investing the time to UV. Well, sure,
Will Vincent 21:15
right? And I think it, you know, to the you mentioned, the sort of battle testedness of Django. You know, it's, I believe it's VC funded. They still aren't at a 1.0 commercial release. Everything looks positive so far, but that is an additional risk, right? This who knows, at some point they're going to have to do something, right? They have rough they have UV
Lily Foote 21:38
advertising in the dev tools space is tricky.
Will Vincent 21:41
I mean, Docker managed it, I guess, right? So, I'm sure that's an obvious but, you know, yeah, it's also interesting. You know, Docker is in on teams, right? If you all just use UV and it's all in a TOML file. Like, does that remove the need for Docker in some situations, like, I'm, I'm still a little bit ignorant on it, but it seems like it would in some cases, maybe
Lily Foote 22:07
I tend to avoid Docker, unless I have to use it for work reasons anyway. So
Carlton Gibson 22:13
like Docker for local development, it's just like sticking needles in your eyes for no reason. Like, yeah,
Will Vincent 22:20
Carlton's, Carlton's, yeah, I've I hopped on UV. Can bootstrap my local environment then, yeah, well, yeah, interesting proposition. Well, in the whole Python thing, like the pi m, you know, you don't need pi m, if you can just put it in UV, yes. Like, that's such a huge thing for, just for beginners, right? Because, gosh, like, it's a minefield, I mean, and I'll shout out to my employer, pie charm has UV support now, which is cool. Now there's a question of levels of support, so we're, you know, going to have even more integration. But, yeah, it's pretty it's pretty wild that something that's a dev tool, that's foundational can be so popular so fast, because this is not a space like there's a whole there's an XKCD on it that I saw Charlie put in one of his talks. Like, this doesn't usually happen around standards, right? So I think
Lily Foote 23:16
there's been a lot of frustration with, oh yeah, the legacy tools in this space, which is one reason it's achieved such good adoption. They've got a lot of the UX right with it, as far as I can tell, especially with the performance.
Carlton Gibson 23:34
But as well, the single tool, right? It's the single tool that hand that does it, that does it, right? It get for me, it show it go. It shows how, you know, a decent amount of money goes an awful long way, right? So they've managed to fund it, fund a team, and actually put them on it full time, and all of a sudden, all these problems that were insoluble for a decade or more are resolved in the space of a year. Money is the fixer for of all evils.
Will Vincent 23:59
Well, it's the and it's the combination of the rest bit. But then just, even if they just rewrote it all in Python from scratch, with the money, there would be some improvements, you know, not, maybe not as much, but there would still be no one, yeah, no one had the desire or the time to do all that. That's kind of the choice. I want to watch that rest talk, because I've read a little bit about it, but I want to understand a little bit more what actually they all did from scratch.
Lily Foote 24:25
Yeah, I think there's a lot of clever people who've worked on it, and therefore a lot of clever ideas in how to really optimize things.
Will Vincent 24:38
Hacksoft is your development partner beyond code, from custom software development to consulting team augmentation or opening an office in Bulgaria, they're ready to take your project to the next level. And Carlton, so are you? You're a UV, or whatever the phrase is,
Carlton Gibson 24:53
no UV, you know me, I like, well, that's
Will Vincent 24:57
why you You sounded you sounded like you were on. Probably no, I'm
Carlton Gibson 25:00
interested. I'm looking I'm looking at it. I'm investigating it. I've I'm not using it in battle like mate. It takes an awful long time to get me to change tooling like an awful long
Will Vincent 25:12
time like all of us. Again, this speaks to, I mean, I haven't done anything real with it, other than toy projects, because it's kind of like, well, if I'm not facing speed problems, and my team isn't crazy frustrated. Like, yeah, no. Why would I? It
Lily Foote 25:24
doesn't all of the problems it solves. I think brilliant. None of them are problems that I have. And so I'm in. I'm happy to watch it. I'm I'm probably in the position where, if somebody said, Should I use UV, I'd be like, probably doesn't. The fact that I'm not using it doesn't mean you shouldn't. I'm old man herding goats on the mountain. That's me, and you don't need to copy what I'm doing at all.
Carlton Gibson 25:52
I'm slightly skeptical about the VC funding position. I have to admit, I'm slightly more concerned about that than other people. You know, other people are happy to say, Oh, well, let's not worry about it. Bit of money is all good, but money is all good. That's super I'm personally interested in making sure that that what that I know, what the state of play in the community tools are, so that you know if it all does go horribly wrong, I don't feel like, oh God, and we're now trapped in a, you know, VC hell hole. Now that's just, you know, that's very unlikely to ever come to pass. And it's, you know, the astral team are all great, and they have no intentions to all that. But you know, just as a matter of, you know, diversity within the community, I'm happy to hang out with my crusty tooling for a little while longer.
Lily Foote 26:41
I feel very similar to Carlton on this, except I wrote my own tooling,
Carlton Gibson 26:45
right? Yeah. Well, you
Lily Foote 26:50
would not, but recently I have, yeah,
Will Vincent 26:55
well, I'm quite sure I'll be doing a PyCon us demo of UV with PyCharm, amongst other demos. So I'm, uh, as much as I would love to hang out in a cave and herd goats, I'm, uh, forced
Carlton Gibson 27:06
to, well, I think I absolutely have no problem with other people. I've been using the same salute. I've been using virtual and wrapper for 15 years plus, and I have no intention of changing anything. Yeah, but
Will Vincent 27:16
I think it's, it's, it's this interesting to me, some of these tools, or things like this barbell shape we're on the one hand, like power users, or speed matters, boom. Like, yeah, they'll flip over. And then, and then the beginner thing, right? And this is the like, three of us are a little removed from being pure beginners, but God. Like, you know, you tell someone, oh yeah, just install Python. Okay. Like, yeah, exactly, exactly right. Like, there's so many tools, so many ways to mess it up, and then, if you can. So I'm, in some ways, I'm almost most, you know, just from the teaching angle. I'm most excited by that because I have seen how ridiculous that is. And,
Carlton Gibson 27:53
yeah, I think that's for me, that's the most exciting thing as well. I think an easy, reliable, it works. Here's how you bootstrap your Python environment, which isn't going to confuse begins, I think that, for me, is the is the speed is a bit like speech meat, you know, like, and it's
Will Vincent 28:09
the same thing that everyone else is on, everyone's on exactly the same one, you know, that's, yeah, I mean, and even I think this is a little bit maybe hidden to some, to some of us, but Like, just installing Python has really improved in the last five years. I mean, python.org installer is great Microsoft with the Windows support. I mean, even five years ago, it was like, I had every time I got a new computer, I was like, Oh, hmm, this is going to blow some time. And now it's, I don't want to say trivial, but if you know the steps, it's not so bad. So
Carlton Gibson 28:41
I have, I have Rob's. One bit from UV is that I've started using the standalone builds on servers because I was using PI M and it just, I feel no need to compile Python. I would really, really love if python.org would ship pre compiled
Lily Foote 28:59
Python standalone stuff is amazing that was actually created before astral, and astral have adopted it since, using release the maintenance burden. But
Carlton Gibson 29:14
I'm not actually using download at UV to fetch the stand alone builds as a sort of, you know, nominal lag in the ground, not recent. Well, the
Lily Foote 29:29
templates, Django, Rusty templates,
Carlton Gibson 29:32
all your side projects. We rewriting Django and rust.
Will Vincent 29:35
Yeah, tell us about this.
Lily Foote 29:38
But I mean, after I left colo, I was looking for some way to continue using rust and templating is one of the more performance sensitive areas of Django, I think, yeah, absolutely from absolute you side of things, rather than. An I O, so I thought. But also,
Carlton Gibson 30:04
just to give context, there any sorry to butt in, but any request, any request, it's going to go, what's where's your time go? Over went database templates by one and two. So anyway, carry on comes.
Lily Foote 30:15
Yeah. So I was thinking, Well, I love Django. I'm really enjoying rust. What's the best way to put those together? And templates? Was the answer I came up with. So since autumn last year, I've been trying to build a parallel implementation of Django is templating language using rust, and I'm aiming for 100% compatibility of rendering so it's can really just drop into an existing Django code base and get All the potential benefits of having been rewritten in rust. I'm not at a stage to do any benchmarking, so I don't know if I've succeeded yet on the performance side of things, but once, once it's complete for a given version of Django, I can then start looking into benchmarking and performance improvements and all that sort of stuff.
Carlton Gibson 31:23
Okay, so that sounds really, really, really exciting. Can I ask a question, if I've got a custom template tag, yes, how would that work? Because that would be written in Python,
Lily Foote 31:36
yes, this is an unsolved problem right now. It's, it's been on my radar as the thing that I am going to need to solve at some point, but I haven't got round to it yet. Okay, okay,
Carlton Gibson 31:53
fair enough. Good. Straight back away, though.
Lily Foote 31:58
I have some ideas, but I haven't looked deeply and really grappled with that one yet. I'm just trying to get the core stuff working. The other thing I'm really trying to do with it is give better error messages than Django gives. If you get an error in Django templates, you get this horrible trace back of Django templates internals, and it's not really very easy to understand what's gone wrong often.
Carlton Gibson 32:33
Now we could fix that, though, couldn't we? Isn't there a way of marking frames as to be excluded from TRACE backs somehow,
Lily Foote 32:41
possibly,
Carlton Gibson 32:44
I was reading a rich that I was reading the rich docs yesterday, because I was doing it, and they've got a traceback thing where you can say, skip these frames, skip that frame. So I was like, wow, we could do with that in Django. Because who wants 30 frames of template internals? Like, what's the Yeah, instrumented render 48 times as you go down the list. Yeah.
Lily Foote 33:06
I definitely encourage any, anyone looking for a fun issue to try and tackle that. We should create a ticket in tracks so that someone could do that. So I think that that'd be a useful thing to have, and it's probably not too difficult. Maybe
Carlton Gibson 33:32
I love it, love it, love it. Can I ask your take on because I love the Django template language, and I one thing I love in particular is just not defining a particular variable, deliberately not defining a particular variable, and then so having the whole block just vanish away. Because, you know, the if defaults to empty and it it knows what to do, and it doesn't raise an error. But lots of people don't like that. They're like, No, no, no. I really want, I really want this to be much more strict with me. Do you think there's any way we can sort of be have a template, say, Look, this is what I'm after, and you could lint it. Maybe look the context you passed actually did have the variables that the template was looking for or something. I know what's your thought in that space.
Lily Foote 34:10
I think there's some room for exploration there. It would be nice if Django could be more strict for the people who want it to be more strict. The trouble with that is, I don't think it can be a global setting like most of Django template settings are, because existing stuff, like the admin and third party stuff might very much rely on that feature. So I think what would be necessary is a way to limit it to templates that have been written by the developers of the project, and then they can opt into being strict on their own templates, but fall back to not strict when interacting with the. These upstream templates,
Carlton Gibson 35:02
the idea, idea comes half constantly. This is just me making stuff up going along now, but idea calf comes to mind of like having a template tag that sort of defines what the expected context is, and then takes the context and sort of lints whether those are true or not. But we'll have to, we'll have to brainstorm this sort of Django? Yeah,
Lily Foote 35:21
there's, yeah, there's a lot of, I think there's a lot of stuff in templating that actually could be explored and improved. And it hasn't really had loads of attention for a while with the popularity of APIs over templating, but I think especially with HTML, templating is coming back into vogue in Django. So yeah, I think
Will Vincent 35:50
absolutely happened. But
Carlton Gibson 35:56
so have you seen all these exciting component libraries, the Django components, Django bird, DJ angles, like these various slippers.
Lily Foote 36:06
I've I've seen some of that from a distance. I've not dug deep. You
Carlton Gibson 36:12
haven't got one which is waving the flag, no. I mean,
Lily Foote 36:18
well, I haven't really worked on a Django project for a while, because with colo, I was writing tooling for programmers, not writing a website. Really, so, really, kind of rusty on some of this stuff. But also
Carlton Gibson 36:37
you're more of a back end, you're more of an ORM expert, right? I mean,
Lily Foote 36:41
yeah, anything back end has always drawn my interest. Front end has always been complicated and scary.
Will Vincent 36:51
Well, can I ask, What do you feel the pull at all to you know, given your skills, are you still happy in web land, or do you feel that the data science pull at all? I
Lily Foote 37:04
don't know about dust science, but Well, I
Will Vincent 37:07
guess everything else, right? That's the problem with data science is it encompasses, just like everything else, with programming languages that isn't
Lily Foote 37:14
web, certainly, Dev Tools is interesting to me. Rust is known primarily as a systems language, so getting into doing more systems type stuff could be really interesting. I know that the embedded world is really cool, but I've done basically nothing to know how to work with that. But there's a lot of areas of programming that I would actually quite like to explore more, but it there's only so much time you have, and there is a question of, How much do you lean into your existing skill set, and How much do you try and do something new, and yeah, I'm really trying to find that balance, both in my open source life, like building generosity templates and my work life, whatever turns out to be next for me.
Will Vincent 38:18
Well, one more question, then I'll add a questions for both of you, actually. So in the Rust world, which I know Carlton, you've spent some time there as well. So, so taking cargo, taking package manager, and then applying it to Python. Are there any other obvious things that rust does that Python, with a bit of money and brains, could or should adopt? Do you think
Lily Foote 38:40
I haven't thought of anything obvious yet. Carlton, any ideas while I come to thing,
Carlton Gibson 38:47
I think the thing I'd like to see more I was going to ask you a little bit about this was, is that if we could improve the story around the rust for Python integration, so there's maturing, it makes it very easy to package up. But it's still a bit scary, you know, if I'm just, if I'm, quote, unquote, just a Python developer, and then I see this, oh, I could go and build something this, pi Oh, three thing, what's going on? Ah, it's still, you know, you still want to dedicate two, three days to sit down and plow through it. And, oh, yeah, now I've got my Hello World from rust. Yeah, that was honestly quite a lot of gone. Yeah,
Lily Foote 39:23
I think, I think the Python rust interoperability story is actually really solid.
Carlton Gibson 39:31
It is, but still
Lily Foote 39:35
it's, I mean, if you compare it to what you had to do to get an extension module before No, no, no, c, c plus sight and way more painful, at least my impression from the outside then I ever found the experience with rust. I think, I think the maturing developer. And team have done an amazing job of just taking advantage of the Python packaging back end evolution over the past years that and built something really solid. And Pio three is a really solid piece of technology too. I've actually joined the maintenance team of that. So
Will Vincent 40:25
have you there you are.
Carlton Gibson 40:28
So there you are, folks, if you're looking for a Django room expert who also does rust on the maintenance team of the rust fight and integration frame, yeah, no, I think you need to
Will Vincent 40:37
think, you need to think bigger. You need to go raise some VC funds and do something. I mean, right? I mean, you have the background, right? You have the perfect background of Python, rust dev tools. I don't know what specifically that thing is, but, you know, that's all you need to do is say, Yeah, I can do it. And, you know, astral is doing it. So, you know, there's VCs are trying to spend the money that they have.
Carlton Gibson 41:01
Anyways, I wonder if there's one thing we could pick up in the Rust ecosystem, which is additions. So particularly in Django, we have very strong backwards compatibility constraints correctly. So because we've got those 20 million downloads a month that we have to keep thinking about but additions in Rust allow, you know, you to step forward and say, No, we're going to drop compatibility here, and we're going to step forward and now you have to be using this addition if you want to be using this.
Lily Foote 41:27
Well, it's a bit more nuanced than that with rust, because they have extremely strong backwards compatibility. I think you can use a new edition in your own code, but depend on code that's written in an older edition, and they've defined these editions in such a way that the compatibility between those is still there. That's all forward compatible, yeah. So you can opt into the better behavior, but in a way that still integrates well with what's gone before, which does mean that you can't make some backwards incompatible changes that you would like to because you can't keep that cross edition compatibility. But I would like a I think Django has some rough edges and bad defaults and stuff like that, that there's a quite a bit of resistance to changing and improving. I would like us to find a better way to handle that
Carlton Gibson 42:51
and something like conditions, like something, I mean,
Lily Foote 42:54
maybe, I mean, what's the difference between addition and an LTS? Maybe, maybe we could do something where we where we improve defaults, every LTS cycle or something,
Carlton Gibson 43:14
okay, I would have to see how that rolls out. One thing I wanted to ask you is about, we've talked about UV and we've talked about rust. And one thing that rust does for rust does very well is CL eyes. And, you know, we've talked about the dev the DX, the developer experience of UV, and how they've nailed it. And there's some, you know, wouldn't it be nice if we could, you know, improve the DX of Django somehow?
Lily Foote 43:37
Yeah, well, there are some really nice um libraries for command line stuff in Python as well. I really like click. I've there's a terminal user interface. Is it textual in Python? I can never remember, yeah, textual, yeah. And I suspect there's a third party library out there somewhere that integrates those with Django management commands. And should be,
Carlton Gibson 44:13
yeah, no, there is one as well. And there was a release of this typer as well, which sits around click and gives makes it type hinted, yeah, and there was a release of Django type as well memories, yeah. So,
Lily Foote 44:32
yeah, I think it might be nice to start depending on click in Django so that we don't have to deal with Arc pass because our pass is kind of crafty.
Carlton Gibson 44:47
It's not tight enough for, you know, you like it. It's,
Lily Foote 44:49
I mean, it works, but it's for both. And it's, I think it's been demonstrated that the third party ecosystem has done. Better, and it would be nice if Django opted into that. I think
Carlton Gibson 45:04
I've got one sort of half idea is that we should build all these things just as around Django, rather than necessarily trying to force the Play Doh into the shape it doesn't want to go. Sure,
Lily Foote 45:19
then the problem becomes discoverability, rather than backwards compatibility. Trade offs, yeah,
Carlton Gibson 45:29
anyway. Will start,
Will Vincent 45:32
well, we're covered a bit of time. Is there any? Are there any things that you wanted to mention or we should have asked you about while you have a microphone, literally and figuratively.
Lily Foote 45:43
Nope, nothing's coming out to mind. Okay,
Carlton Gibson 45:46
so I've got to ask you run the steering Council. You've got all the power. You've got a magic wand to wave. What's the thing you're going to fix in Jane? Can be community. It doesn't have to be Primark,
Lily Foote 45:59
yes. I mean, I ran for election an honest it's got to be trying to make the contributor experience work better for everyone involved than it has been before. Okay,
Will Vincent 46:15
fair enough. Well, we've, yeah, we've, we've, we've covered all the things. So this episode will come out in three weeks. So if your LinkedIn profile says you're still looking for work, people should reach out to you. But again, I think it's just,
Carlton Gibson 46:28
and I've just got to say one more time, nearly contributor to the ORM rust being on the Pi 03 maintenance team. You know, there isn't much more you could ask for. If you're looking for someone with some jobs, yeah, but I appreciate
Will Vincent 46:44
you being willing to talk about publicly, because this is a thing that happens, and it's not just newcomers who have this issue. And so thank you for agreeing to that.
Lily Foote 46:57
My pleasure.
Will Vincent 46:59
So we're gonna have links to a whole lot of stuff, including Lily's packages, and check them all out. And we are Django chat.com We'll see everyone next episode, bye, bye,
Carlton Gibson 47:10
bye, bye.
Will Vincent 47:13
This episode was sponsored by hacksoft, your Django development partner beyond code. Learn more about their services and the link in the description you.