Hidden gems of Django 5.x with Sarah Boyce

This video features Sarah Boyce at DjangoCon US 2024 in Durham, North Carolina, USA.

Hidden gems of Django 5.x with Sarah Boyce
0:40:28
Published December 6, 2024
624 views

Did you know Django doesn't include any bug fixes or code optimisations in it's release notes?
Each feature release (.0, .1, .2) only draws attention to a handful of features and classes many as "minor", restricting them to a very small summarising bullet point.

If you're looking for more reasons to upgrade to the latest feature branch or are curious about hidden gems - this is the talk for you.

This talk was presented at: https://2024.djangocon.us/talks/hidden-gems-of-django-5-x/

LINKS:
Follow Sarah Boyce 👇
On Mastodon: https://mastodon.social/@sarahboyce

Follow DjangoCon US 👇
https://fosstodon.org/@djangocon
https://x.com/djangocon

Follow DEFNA 👇
https://www.defna.org/

Video production by Confreaks
Follow Confreaks 👇
https://confreaks.com
https://x.com/confreaks

Summary

Sarah Boyce argues that many of Django’s most valuable improvements are hidden because release notes mainly describe headline features and compatibility changes. Django 5.x also includes substantial accessibility work in the admin, documentation improvements such as links to source code, performance gains tracked through benchmarks, bug fixes, optimizations, and extensive collaboration by contributors. She presents the Django community—including accessibility contributors, translators, documentation authors, and local initiatives such as Django Girls—as the project’s most important hidden gem, and suggests finding better ways to recognize and communicate this work.

Key takeaways

  • Django feature releases are developed well before their public release, and the 5.x cycle is closer to completion than its release dates might suggest.
  • Release notes focus on selected features and compatibility changes, while bug fixes, optimizations, documentation work, and contributor stories are often omitted.
  • The Django admin has gained accessibility improvements, including clearer headings, navigable landmarks and tables, and screen-reader access to form help text.
  • Django’s documentation now provides source links for many code references, making it easier to inspect the implementation behind an explanation.
  • Django’s performance is tracked over time, and upgrades to newer Python versions can provide significant speed improvements.
  • The project depends on hundreds of contributors whose collaboration, translations, community events, and other work deserve more visibility.

Summarised automatically from the transcript.

Transcript

6,022 words · auto-generated Show

Automatically transcribed, so expect mistakes in names and technical terms.

0:21

Speaker 1: Okay, so hello. My name's Sarah Boyce. I am one of the Django fellows. Thankfully, Natalia has already explained what that means, so I don't have to go into it. I've been in the role roughly six months. And yeah, before that I've been uh a Django developer, I'm a bumminton player, I like to paint people. And I promise I'm quite friendly, so uh please come and say hello and talk to me if you want to talk about this talk or about anything at all. Yeah, and this talk is called The Hidden Gems of Django 5. x. And before I give away what that might mean,

1:08

Speaker 1: I thought it's important that I first like cover what what is 5. x. Because people keep asking me if I mean 5. 1, but I mean 5. x, I promise. So raise your hands if you've seen this diagram before. All right. The vast majority of you, that that's good. All I've done is I've added like a rough today line on it. Uh this is to illustrate basically how Django feature releases work and how we support them. A feature release is every eight months, and we go through a cycle each for two years basically. And 5. x will be 5. 0, 5. 1, and 5.

1:54

Speaker 1: 2. So hopefully I've not lost anyone yet. But what's interesting, oh no, wait. So my first question is Which Django versions are you using right now? So I'm curious who's already using 5. 1, uh, etc. Please. Tell me like your main project or the one that you've been using recently. Um Yeah, okay, curious. All right, so some people are already on uh 5. x. So there are a number of people who are using 5. 0 and 5. 1 already. Still a good chunk on Django 4.

2:41

Speaker 1: 2. I'll be curious if if uh this group is uh prefers to Uh upgrade from LTS to LTS, our long-term support releases. But yeah And some who are on unsupported versions, which is a shame, but never mind. I'll pretend I didn't see it. No worries. Oh toe is getting higher, alright. Let's move along. So, you know, when I look at this, it looking at this diagram, it looks like, you know, 5. x started in uh December 2024, but it not really like Actually, this diagram

3:28

Speaker 1: represents what we think you care about. So you care about when is it released and when like how long is it supported for. But in terms of the beside uh behind the scenes information, uh when we're working on it, actually we were working on Django 5. 0 back in January 2023, that's when we started And it gets released in in the December. So there is a period of of feature development and then we have a feature freeze. And then from that point onwards, the only things that are going to go in are bug fixes based off those new features that were implemented or security fixes. And so even though you might think, oh, 5. 1 was only released very recently, uh, and so we're about halfway through, we're not.

4:19

Speaker 1: We're actually we're quite close to the end of the 5. x cycle from my perspective. Uh talking about six point oh or six point X is not that far away. So what's in it, right? Well what what what is included in in 5. x, especially if I'm talking about that or it's basically done Well, if you wanted to find out what's in any feature release, the main source and the the true source of information really would be the uh the release notes. And I'm sure most of you are already aware, but if you go to Django Project. com and you go to our docs Uh it will take you to the uh most recent release, like

5:04

Speaker 1: of the versions of the docs, but you can change that. There's this little widget. Uh and you could choose to look at dev. You can look at like the um See basically what we have on main, and so that you can see the release notes that are also for 5. 2 and they're under development. And so you can read them already, you can read them now. And you can read the release notes for 5. 1 and 5. 0, etc. And that should roughly cover what's in 5. x. And if you were to have a look at them, and thankfully I'm gonna make this a bit bigger, the release notes are split up into sections. They always look a little bit similar. So this is roughly the 5.

5:50

Speaker 1: 1 release notes. And it will start with the Python compatibility. And then we have a section of what's new in Django 5. 1. of which that will have the the headline features. So we'll put a couple of features and give them a bit more attention uh or a bit more, you know, uh space than we give other stuff. And then everything else is whacked in minor. So we have this long section of of minor features. We have backwards incompatible changes. And then the features deprecated and the features removed. So that covers essentially everything that we think is important information that you need to know from a release. And we spend a

6:36

Speaker 1: lot of work d designing these release notes and crafting them and trying to make them, you know, im uh give you the information that you need. But I'm really curious w do you read any of it? What do you read of of those things? I I mean I I will let you answer, but uh you know Based off my experience of upgrading, I certainly used to upgrade, see what breaks, and then check what was removed, and then go, ah You can select multiple, so um

7:23

Speaker 1: Okay, cool. I mean there there are certainly some hardcore people who appear to perhaps read everything. If you're also reading things that you're not using, but that's only roughly 20% of the audience. It looks like most of you look at The things that we've drawn attention to, and then the stuff that's going away, and then the rest, perhaps you'll read, perhaps not. It's not massively surprising. But as I said, like the it's designed to give you everything you need to know, right? That's that's All of that information is of course you need to know what's new, otherwise you you would never know about it. You need to know what's changed because that could impact you. Um but you know, is that everything you want to know?

8:10

Speaker 1: There's certainly a lot of information that we've chosen not to put in the release notes. And I've already gone through what's in, but perhaps you want to know about bug fixes. I'm not sure if you've ever noticed we we never talk about bugs on that on that page. They never happened. They don't exist. Django doesn't do bugs. Yeah. Optimizations. There's a lot of work that happens to make Django faster and better. And we also don't talk about that. We don't mention that such and such is now more performant than it was on previous versions. Docs, like there could be brand new sections of docs, and I mean large sections. There could be new tutorials, new topics, there could be quite significant

8:57

Speaker 1: stuff that we've added in during this feature release. But it's not it's not Django Core, so it's not in the f feature release notes and you and you wouldn't know about it unless you'd stumble across it. and people. There's not a single mention of a a person. I think we might say something generic about thank you. But there is no specific names. There's no um you know any of that information is included on that release start. So perhaps you want to know, but perhaps you don't. But um one of the things that I did was I had a look at all of all the commits that actually had an impact on the release note, so on that section that you perhaps look at and you read versus the commits that that that don't impact that document, the

9:42

Speaker 1: all that other pieces of work that that we're doing to make Django you know, better and uh for everybody. And it was roughly and take this with a heavy pinch of salt it was roughly you know, only fifteen percent of the work that goes into Django is talked about at all. And the vast majority of the work with those bug fixes, those optimizations, any kind of cleanup, anything about the other pieces of work that we're doing, it's not included, the docs, etc. And so when I'm talking about the hidden gems of Django 5. x, a lot of people are curious if I'm gonna talk about um I don't know, one of those features that are perhaps already represented and and maybe my take on it.

10:31

Speaker 1: But really I want to talk about some of the things that we just don't talk about. Okay, so uh pre-warning to the people of the audience, I'm gonna give you uh a screen reader experience about someone going through the Django admin. And uh when I play this video, uh I will also have some subtitles of what the screen reader is saying. And there's also going to be on the screen it will show you the keys that are being pressed because you're navigating via keys. And there are some shortcuts that you can use when you're using a screen reader in order to better navigate the page more efficiently. And this screen reader I was using was called Narrator. It's a Windows tool

11:17

Speaker 1: and these are some of the shortcuts. It doesn't massively matter if you if you don't know them when they pop up. This is just a cheat sheet so that you're aware of what's coming. This is Django 4. 2. There are going to be some problems. I want you to try and notice them while they happen And we'll see how many you are able to notice.

11:40

Speaker 2: Link. Django administration, heading level 1. Site administration, heading level 1. Unavailable No next landmark. No previous landmark. At 1, table, rows books, 9x3. Exit table, authentication and authorization, table, rows groups, 2x3. Exit table, at one, table, rows books, no previous table. Exit table, authentication and authorization, link, authentication and authorization Link, groups, row, link, add, column two of three, link, change, column three of three, link, users, row two of two, column one of three, link, add

12:26

Speaker 2: Column two of three Scan off, loading complete, add user Django site admin document, exit table, username, edit, required, add user Django site admin has finished loading Y O R. Scan. Password. Edit. Required. Press space to edit. Insertion point before, scan off. Hid, hidden, hidden, hidden, hidden, new line selected. Scan. Password confirmation. Edit. Required. Press space to edit. Insertion point before. Scan off. Hidden, hidden, hidden, hidden, hidden. New line selected.

13:14

Speaker 2: Scan Save button Scan off, loading complete, add user Django site admin document, username, edit, mitomazer, required, M. Add user Django site admin has finished loading.

13:33

Speaker 1: Alright, so one of the things I forgot to do was to tell you what I was going to be trying to do in the video. So as when I started, I was on the you know Django Applass page, the main page, and I'm just navigating it and seeing what's there, and then I try to add a new user. All right. So I'm curious if you noticed any issues, if you thought anything Because the main thing that you need to remember is if it's not said out loud, then it doesn't exist. That information's not available to you. So At the start , you've probably heard that you're supposed to have correct header structure

14:20

Speaker 1: and you perhaps Perhaps you don't really know why. But the main reason is because of this navigation. You you want uh uh people who are using screen readers to be able to have this logical structure of the page that they can then go from one level and and you know navigate Accordingly, but on that that page that we were on, there was multiple header level ones. There was multiple uh headers that are supposed to describe what this page is, which is kind of contradictory information And it's not it's not how it should be structured. So that was that was wrong. Um it didn't support this shortcut to go to the main section. So when you're looking at a page, there's there's quite clear

15:08

Speaker 1: sections like there's header, there's a header, maybe there's a sidebar, there might be a footer, and then there's like the main section where this this information is gonna change from page to page and you might be wanting to have that shortcut to go there and and so that you can use that but you know I couldn't do that. I couldn't even move between those sections that that that wasn't supported Uh yeah, okay. I was navigating between tables. That was half working. Did anyone notice what what what went wrong? Yeah, it it it it skipped a table. There was one table it just didn't notice existed at all. And I wouldn't have known that table exists. It's it's not possible for me to know that.

15:54

Speaker 1: For some reason it just it just didn't it didn't tell me about it. And then I tried to show that the password that was entered by the way was like 1, 2, 3, 4, 5. or hidden, hidden, hidden, hidden, hidden. And you know, it it it it's not a valid password. It it it doesn't have like the required minimum length. sort of entirely numeric, etc. Uh but all of that help text information was not was not alerted to me. I couldn't I couldn't hear that, so you know, I I thought that was valid Okay. I'm not going to go through the entire uh uh same demo, but I'm just going to demonstrate Some of those features in a in a shorter form to demonstrate some of the things that we fixed.

16:42

Speaker 1: It's not necessarily all of that.

16:44

Speaker 2: Header, banner landmark. Sidebar, navigation landmark. Exit table, add user Django site admin. Sidebar navigation, add 2, table, columns model name add link, change your view list link, 2x3. Exit table, authentication and authorization, table, columns model name add link chain, add user Django site admin, add user Django site admin, add user, heading level 1. No previous heading Username, edit, required. 150 characters or fewer. Letters, digits, and add forward slash dot forward slash and forward slash forward slash underscore only. Required. Press space to edit.

17:29

Speaker 1: Right, you get the picture. Oops, sorry, I got too excited. No.

17:39

Speaker 2: Header. No.

17:42

Speaker 1: There we go. So some of those things are fixed. There was only one header level one, right? I was able to navigate between uh sections. I was able to go to to the header, to the sidebar, etc. When I was in the sidebar, I was navigating between tables because that's how we list our, you know, our apps. And it didn't skip any, which was nice. And, you know, when we was on the form, it was able to say the help text information. It was telling me the information I I needed to know when, you know, I was filling out the field. So it's it's much better. The shortcut of Q was was was not supported, but it's progress, you know, it was it's getting better. I want to draw attention to

18:28

Speaker 1: a piece of documentation that's in progress. So Tebow's been working on an accessibility contributor guide in order to help us as contributors make better decisions when we're working with things like the admin and to know how to test it and know how to, you know, have some empathy for for people who are using the web differently to how we use it um so that we can, you know, hopefully not only make things better, but not introduce new new issues as we go along. Who who likes the Django Docs out of curiosity? Uh not everybody, but but almost everybody. Yeah, you know, we we we take a lot of care of the of the docs.

19:14

Speaker 1: There's this kind of ethos that if, you know, docs or it didn't happen and and we spend a lot of work on it. I might have to read this because I'm not sure if you can see it, but we got some feedback about the Django documentation that it was that it's really difficult to navigate through the docs. And that this this person was was quite frustrated by it. And they posted that it's uh it's very annoying and everything is explained by example and uh actual reference overviews are hard to find. Um You know, and they go on. But the main thing that they're saying is, I just want to see for every class an overview of its member functions, what goes in and what comes out, and which type everything is supposed to be in an exact

20:02

Speaker 1: Unambiguous way, like most other documentation of anything else ever. I don't want to read a book when I would quickly want to find something. You know, fair enough. And this this had some interesting kind of uh discussion afterwards about what this what this user was meaning when that when they're talking about the docs. But the thing is, is the docs is not a stationary thing. They adapt, they change, we can improve them And we do quite frequently. This is a screenshot of the docs from Django 4. 2, and I'm gonna show you from 5. 1, and I want you to try and notice the difference, and it's gonna be subtle.

20:50

Speaker 1: Can you spot it? Yeah So pretty much all of the pretty much all of the code references in the docs now have these source links and if you're on and it will if you click on them you will get to the definition you know on GitHub for that branch also. So that you can actually read the code of the thing that you're describing. So as the person said, they they just want to see ex exactly what goes in, what comes out, etc. And if they want to, they can just Click the button and read the code if it's if it's too verbose and full of examples, etc. As they were saying. And we're we're making that you know easier for people to

21:36

Speaker 1: um Of course we don't mention that in the release notes because you know we don't we don't talk about what we do to the docs. Um and it's Still again part of the things of of what you do see is changing and what you what you don't see. And one of the things that I wanna um part of the frustration of the feedback is uh it doesn't quite appreciate that people spend a lot of work and a lot of time trying their best to make this as good as we can for you. And if you do have uh frustrations or feedback, please work with us to to make the experience better because there are many different perspectives and ways we can make things better.

22:24

Speaker 1: And And we're willing to try try different things. This is another uh graph, which is uh something that I would be surprised if anyone seen or knows what this might be. Raise your hand if you think you know what this is. So uh this is a screenshot from uh what what we get outputted from Django ASV. So we have uh a way that we track Django's performance over time. And one of the things that I really like about this graph, and you probably can't see, but I will say, the the blue line, the line on top, that is Python 3.

23:10

Speaker 1: 10. The red line, which is quite a bit further down, is 3. 11, and then this like purpley line, which is just a bit underneath that red line. is 3. 12. And so the main thing you should notice is just by upgrading your Python, the the performance of your code gets better generally. So I encourage you with everything, getting onto the latest version usually gives you benefits that you might not be aware of. And it's one of the things that we notice with, you know, when we track the performance of Django over time is just, uh, see Python is getting getting faster. And uh this is a pretty graph because uh this is a uh something within Django where you can see, and this is the the perfect thing, is that

23:58

Speaker 1: Over time, when uh really it's not really changing, we have ever so slightly squiggles. Uh with with each run we do a um it It runs it, it takes a reading of of uh how long that that um benchmark to we see that over time. And then you notice that there's this jump where it goes down and then it continues with that over time. So something happened and then it got faster. Which is great. It's also quite significantly faster. I've highlighted it here, but if you can't read, it says that those benchmarks, one became uh 38 % faster, another one 28% or 29%

24:44

Speaker 1: faster, and the other one was about uh 13, 14% faster. So fairly significant, and and those were to do with like roughly two commits that that happened together. And again, we don't talk about that. So when we do a piece of work that might have quite a significant impact, it's not mentioned. You know, it's it's not something that it's not information that many people have access to. And it's a lot of work. And the other thing that I want to mention is with all of that, and I was talking about all those things that we do. I also didn't didn't talk about you know the people who were doing it. And if you went into that ticket, which was about this performance change, you would see this really beautiful collaboration that happened between

25:31

Speaker 1: uh Anthony Shaw who who raised the ticket and Mariush and Simon where they were discussing what they need to do. They were sharing different code snippets and and and trying out different examples. And and eventually they uh created the the change that that had that quite significant impact. And it's a really nice a piece of collaboration of the community of of these people who are living in completely different places who, you know, made made Django better. And it's not unusual. Almost every change is a collaboration between multiple people who live all across the world and are working together to make Django better. i i with almost every change, it it may not even be an individual person who's taken that ticket and and

26:20

Speaker 1: put it all the way through to across the finish line. Sometimes it it changes hands that somebody did something that got it one step further and then somebody else took over and took it that other step further and then there were multiple reviews and and all these other people who were perhaps They were on the ticket and they said something that was interesting and it helped us came to the right solution. So there's there's a lot of people that are in the work that that you don't see. And there were three hundred and sixty-four contributors to Django 5. 0 and 5. 1. It's a lot of people. It was really hard to fit them on the screen and you can't read any of that. Uh and It it really all of these people

27:06

Speaker 1: are what makes Django work. I I mean Natalia was talking about the work of the fellows, but but we don't do it alone. It really The people who who do the bug fixes, do the automizations, do the feature work, it's the community. And it's amazing what they're doing and all that. All that work that is also just in that 84% that we never talk about. It it it's done by by re real people. And if you don't already know, really the Django community is the best hidden gem of Django. Not n there are many people who are using Django who have not really experienced the community that are behind it And you know, if you're a first time attendee, I hope you've gotten a a taste of it.

27:52

Speaker 1: Uh, but really, this is what I think makes Django. Awesome, and thank you so much.

28:13

Speaker 3: Thank you so much for that. That was a really wonderful talk. Um you said several times that you know there's that 87 % of the commits that don't make it into the release notes. Some of what you talked about seems really important to me and I would really like to know about it. Are there plans to extend the release notes to add that information or to disseminate that in some other way?

28:32

Speaker 1: Uh thank you, Lacey. Um so A part of what I wanted to do in this talk is I wanted to spark the idea as to whether there would be appetite for that because a lot of this information. The question is, is is it the right form for it to all live in there? Or perhaps we should have something else that we can also provide to to add that information. It's not uncommon that that uh that release notes do include bug fixes. Um it's not uncommon that they also include uh contributors or or ticket numbers, etc. I mean on our monthly uh release notes, we we do have a ticket link, which at least if you click on it, you could see

29:21

Speaker 1: who was involved in the ticket and then from there you can see the PR, etc. So there are there are probably very small tweaks we can do without a lot of effort. But it it would be something that I'd be curious if you're at the sprints, we can talk about whether it makes sense to include other information in or whether it's it's better for a a blog post or or something like that that that we should provide to the community because it's a shame that there's a lot of work that that is is not visible. Oh

30:03

Speaker 4: How are you not overwhelmed by just the amount of information? And these issues, you know, you're showing you know 300 contributions and each of these threads can go 10 to 80 deep.

30:16

Speaker 1: Oh, I mean it is overwhelming. Some tickets are easier than others. When you're um With those ones, it it uh at some point you just need to commit to uh diving into that problem. I mean the main issue that I have when there's there's a uh a list of uh PRs that that need reviewing. And these this is what I'm referring to for ones that are trying to resolve like a a a nasty ticket and you know which ones are gonna be intense uh and sometimes you're kind of waiting for the courage to just appear one day that you will then go for it.

31:04

Speaker 1: Um Yeah, i i breaking it up, uh trying to push it a little bit forwards and you know, and It it doesn't have to be the fellows also. There there are so many like everybody in the community can can help us to Test it to check it to confirm that this this is the right solution and and and check our work, check we haven't missed anything. It's very easy to miss a comment and it it's not uncommon that a contributor comes along and goes, oh, I think you know we haven't addressed so-and-so 's comments that that was put, you know, 10 years ago over here, et cetera

31:50

Speaker 5: Any more questions? No. No, he he has

32:05

Speaker 6: Well lazy asked my first question. I think the accessibility work is phenomenal and ongoing. Um and I guess it's like It it's this the same question, but count how do we celebrate those people who have come in and started doing all that work and making sure that they're visible? And we've added all these new accessibility features, but we don't tell anybody about them. How are they gonna know?

32:29

Speaker 1: Yeah, I mean um one thing that's worth telling people is we do have a social media working group. And uh I'm not sure if you've noticed, but I think they've been trialing out something called Feature Fridays where they try and uh highlight a feature in Django. And there's no reason why we can't have um And my alliteration is failing me, but uh accessibility autumn, yeah, like yeah. And days or something, um to uh highlight Different stuff. And there are also I'm I'm pretty sure there are I wouldn't be surprised if there is an accessibility awareness week or something where we want to try and celebrate it and we could

33:14

Speaker 1: specifically designed that we're going to try and put more information about these contributions or or highlight the people in the team or you know, that th there are definitely ways that we could try and address it. Um and there are already forms available such as uh you know on Django Project. com we can we can put something there but you know know with with the team itself. Um but I think we are trying to highlight it a little bit more in the release notes. Um yeah.

33:48

Speaker 5: Anymore.

33:51

Speaker 7: Thank you very much for for the talk. I um I don't know something. And I was thinking about uh also other things that maybe are less obvious for this hogens, like for example the amount of new translation on the documentation that for every release we have, there are spread uh community that work on that. It's less obvious for English speaking people And also other things that we are not um measuring right now. Like for example, we started using perform uh measuring performance but not the impact of the consuming our consumer depot did agreed talk about it. So maybe we can start measurings.

34:38

Speaker 7: And the last one is the spreads of using of Django across the world, maybe because someone started a Django Girls workshop. I don't know. in some places far away and we can start measuring how it's used across the world also to help this local community to have a translation, something like that. So

35:01

Speaker 1: Yeah, a hundred percent. Uh the i uh as you said, there's uh you know, the the c when I did the Counts of commits into Django, it's it's only a very small slither of the story, and it's just a measurable slither of the story, right? As you said, translations is is something that is it again, a huge amount of work that is being done and it and it's being done mostly uh invisible to a lot of people who are perhaps native English speakers and and have that privilege. Uh and we should try and highlight, you know, the work that happens so that people get the appreciation and recognition that they deserve that that it hopefully is able to recruit more volunteers who are perhaps interested in it.

35:50

Speaker 1: Um and we we do have some tools available. The release notes are are one thing that we could do, especially if we've we've got a new uh language that we're supporting or something. But uh you know, a as I said with the social media team, with the blogs, it would be great for us to try and figure out a way that we can keep reminding the community about the hidden work that is going on. Django Girls is a is a beautiful initiative and making people aware that there are these workshops and there are ways that Django is is empowering you know, women and non binary folks around the world to to get involved in Django is is certainly a a thing that we're very proud of And it's you know it's a community-run event.

36:36

Speaker 1: And as I said, it's the community who really is the special thing. So to celebrate those people. It is great. I mean, I really like Django Chat for that reason also. It's another tool where we get to put a spotlight on on different community members and and give it a way that it it lets everybody knows about the different things that people are involved in. Thank you

37:03

Speaker 8: This isn't so much a question as a request. Given the the survey showed a lot of people are on the LTS path, a thing that I I've certainly go every time it happens as I'm reading the like four point two release notes and then I remember I have to also read the four point oh and four point one. Um so I just like to throw the suggestion it would be helpful if The LTS releases included a reminder at the top for people on the LTS path to at least here's the links to the 4. 0 and 4. 1 release notes as well to read for backwards compatibility and new features.

37:34

Speaker 1: I think that's a really good idea. And we're doing 5. 2 currently, so come to the sprints. You can raise a PR, no problem.

37:46

Speaker 7: I I never thought release notes would be so exciting, but they such an interesting topic. Do you think we can work towards a kind of Universal pattern for release notes that because I think Django's documentation has set standards that have been picked up elsewhere. You don't people don't always

38:04

Speaker 4: say it, but you see things elsewhere that are in Django. And Setting it out as a not just here are our release notes, but this is how we do it and why we do it, and this is the That temp I took a photograph of the kind of template you showed because I thought it expresses that really well. And um I think that would be do you do you think that would have value?

38:29

Speaker 1: Yeah, why not? I think it's always good to for us at at the very least to be able to recognize why we're doing it the way we're doing it. And it and it is because it's It's the information that we that is important. It it's it's what you need. Um it's got no unnecessary I and I I mean that in in it with heart, like it's got no unnecessary information. And it would be curious what other uh Other similar kind of people who are also on time-based release, for example, how they are structuring their release notes and how they represent this information, and whether there's stuff that they're doing better or or we're doing better and to understand, you know, if this is working for us, it's very hard to know.

39:18

Speaker 1: A lot of it is It's the same template that gets used each feature release. It's not like we're often changing it. So it would be curious for us to at least as a bit of an audit to to double check is this uh still um suiting the community that we're serving in in the best way and uh can we still justify how it is and if we're happy with it then great you know it's it's the process we we're at least comfortable with. So

39:51

Speaker 5: Any last question? Also, give it up for Sarah Boyce

Questions this talk answers

What versions are included in Django 5.x?

Django 5.x covers Django 5.0, 5.1, and 5.2. Each feature release follows an eight-month release cycle, with support continuing through the release’s support period.

Discussed at 1:08

What information is missing from the Django release notes?

The release notes focus on headline and minor features, compatibility changes, deprecations, and removals. They generally do not cover bug fixes, performance optimizations, documentation improvements, cleanup work, or the people who contributed.

Discussed at 8:10

What accessibility improvements were made to the Django admin?

The admin gained more correct heading structure, navigable header and sidebar landmarks, complete table navigation, and screen-reader announcements for form help text and validation-related information. Some shortcuts are still unsupported, but the experience is substantially better.

Discussed at 17:42

How can I view the source code behind Django's documentation?

In Django 5.1, code references in the documentation include source links. Clicking one takes you to the corresponding definition on GitHub for the relevant branch.

Discussed at 20:50

How does Django track performance improvements over time?

Django uses Django ASV to benchmark performance across runs and Python versions. The benchmarks show that newer Python versions are generally faster and can reveal substantial gains from Django changes, including examples of roughly 13% to 38% improvements.

Discussed at 22:24

What is the biggest hidden gem of Django?

Sarah identifies the Django community as the biggest hidden gem. Contributors around the world collaborate on features, bug fixes, optimizations, documentation, translations, accessibility, and community initiatives such as Django Girls.

Discussed at 27:06

Presenters

Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.

More videos by Sarah Boyce

More videos from DjangoCon US