Transcript: Breaking Django
hello and welcome to another episode of django chat i'm will vincent joined by carlton hi carlton
hello hi i will hi and we were just talking about the fact that carlton broke django the other day
oh well that's and we thought we might share how one does that and give a peek at the insides of
django so carlton how did you break django and how come i didn't notice it until you told me
oh well that well you know because they recover quickly it's the main it's the main point so i was
releasing some builds django uh 2.2 beta 1 django 2.1.6 maybe 2.0.11 maybe 2.1.11.17 maybe um and
something went wrong with the packaging so we run um we use uh setup tools and run setup.py
which is get to build the
source distribution which we then upload to the python package injects pypi and for
three of those four releases all but the 2.2 beta the the files that went into the package
weren't correct there was some files from master or from the 2.2 branch which just shouldn't have
been there and so when people downloaded those tried to install them and run their unit tests
they just they weren't so people trying to download the latest version right after you
would have yeah right after so they
they see the release announcement
they automatically yeah i saw it i didn't well yeah i saw the release announcement but i didn't
go ahead and download it right yeah and so within about half an hour of the releases being released
there's two three tickets opened on the django issue tracker okay this is a duplicate the first
one this is a duplicate the first one whoa i'm on it fix it um i then spent i don't know an hour or
two hours trying to reproduce the packaging error i couldn't do that i have no idea what went wrong
there's some git weirdness is all i can um presume um and then i created new versions and i uploaded
those to pi pi and all was fixed and so the reason you didn't notice is because you weren't right
there there and then trying to upstall it was only two three hours in between the broken builds
being uploaded and the new releases replacing right well yeah because i remember when we you
know we spoke i think the day after and i was like oh what's new and you're like oh i broke
django it blew up my day you know yeah no because like most people
i think i was like oh i didn't notice but glad you fixed it yeah it totally took up the afternoon
yeah so how um i think it's a good chance for people to you know so you're you're one of two
django fellows so to talk about why you have the authority to break django uh right or the
hierarchy right because django is a community but you as the django fellow you and i mean tim
graham historically are in charge of releasing the new versions right so part of part of our role is
is to release Django.
I mean, there are a few other people in the community
do it and have got all the right keys and access permissions and all the rest but it's tim and i
who do it as part of our fellow responsibility there's two reasons i guess for that one is it's
um it's it's a job it's laborious it's it you know it requires work and two it's moderately
complicated so it's not something you have to pay attention and if you don't pay attention
things can go wrong and you know i'm not saying i wasn't paying attention when i did this but
you know things do go wrong and you need to be on hand so it's better that it's done by a fellow
than a volunteer contributor who might be able to do one release and then but what if it goes wrong
maybe they haven't got the capacity to follow up with a follow-up release or right the day job gets
in the way because the and i mean how and actually i don't know how long have django fellows been
around because that's pretty recent about four years four years so only within the last four
years has there been part-time pay for volunteers who've otherwise done this laborious work of just
the release part
well no but it's not just the release park it's triaging tickets it's which is
well right that's the main part of the work is every day there's three four five new tickets
on django are these legitimate tickets what are we going to do then there's reviewing the patches
which again is hard work and then merging them in and making sure that they're backported to the
right branch you know if there's a if there's a bug fix then that will get bug backported to the
latest stable release branch if there's a security fix then that gets backported to all the supported
branches and these kinds of things.
So this is all the glamorous, the glamorous.
side of yeah it's not so i mean it's fine it's not you know they they are the bits that wouldn't
get done on a project of django size if it weren't for the fellows um yeah this is where projects
fall down it's not that people aren't willing to write code it's that people can't triage the
tickets and people can't just keep you can't do it on a volunteer basis so you know there's lots
of open source projects that wilt because of that yeah yeah well and that's um yeah i i don't know
how people do it i mean even just i have a a repo awesome django that i'm still in the process of
trying to plug into the awesome repo repository and um the maintainer he's been you know very
helpful but it's you know i've just been busy and um yeah the goodwill goes away at some point it's
nice to have you know a little bit of a paycheck to grind through the things that one has to grind
through on yeah i mean it's just it's absolutely unrealistic to expect people to maintain an open
source project
indefinitely for free you know want to have one side project that you maintain no problem but
to keep a big project going it's not going to happen people used to describe django as the
meat grinder and because it would get you know you new contributors would come along and they'd
get eaten up by the meat grinder and they'd say oh we need some fresh meat for the meat grinder
this was a mini django chat episode we plan to do more of these in the future around timely events
so rest assured if carlton breaks django again you'll hear about here
see you next
time.