← Back to Show Notes

Transcript: Django Fellow - Mariusz Felisiak

hi and welcome to another episode of django chat i'm carlton gibson joined as ever by will vincent

hi carlton i will and we have special guest today mariusz feliciak my fellow django fellow hi marius

hi carlton hi man um so marius um let's begin um you're a django fellow like myself so let's

Let's first of all talk about how you got into Django,

and then perhaps we can get on to what the Django Fellowship is and what we do.

So tell us about how you found Django and how you got into that.

So I worked with Django for almost 10 or 11 years now.

And most of this time I worked with Oracle databases.

And in the same time I used Django heavily.

It seems that it's not a common combination.

It was quite rare.

When in 2015, I think, Django folks posted, announced that they are trying to find someone

that will help in maintaining the Django ORAC backend, the entire ORAC infrastructure

and everything that is related with ORAC.

Because if they will not find anyone, then they will consider to removing the ORAC backend

from the core because it's really hard to maintain without an expert that is using it daily.

I decided that maybe that's the best time to start to contribute to Django to help them with

maintaining our infrastructure and to be honest I was really surprised at the beginning with such a

warm and friendly welcome because basically at the beginning as i was a person that nobody really

knows and after a few weeks i started to be responsible for the oracle ci infrastructure

and i started to contribute to django

This became a part of my daily routine, to be honest, so after my normal day of work,

I check in new tickets, try to find bugs in, especially in the arriving backend at the

beginning, but then I moved also to another part of Django, I tried to find some small

optimization, cleanups, reviewing pull requests, which is not really a common thing to do,

because most of contributors would like to submit patches and be a part of Django,

be one of the authors of Django,

but there's only a small amount of people that really would like to review tickets

and check if they work properly.

Right, and you said you were doing that...

Because it's the hardest job.

Yeah, no, I mean, it's difficult, right?

I mean, we'll come on to the fellowship role and what that is in a minute,

But you said you were doing this after your work.

So it was like you were employed.

Were you using Oracle at work as well?

Yeah.

So we used Oracle Database and Django at work.

And after normal day of work, after eight hours,

I came back to home and used my computer to contribute to Django.

So it was quite a hard time for me because also in the same time,

I tried to defend my PhD.

I also have a family, a small kid, etc.

So it was quite a hard time for me.

Yeah, because one of the big things with open source is people getting burnt out,

people putting in too much, people running their energy levels low

and then not being able to carry on.

So, I mean, how did you manage that?

Were you allowed to contribute as part of your work

or was it purely on your own back or purely extra time?

So I did this purely in my extra time,

so it was a really intensive time for me.

But now, finally, I have some free time

because Django is my daily work,

so I don't need to do this in my extra time.

But still, probably I spend some extra time in Django.

Yeah.

Do you have any tips for people contributing?

Like how to be aware of how much time they give

versus the other things in their life?

For sure, you should have some bounce of time

that you want to spend on any open source project.

It doesn't need to be a Django.

So you can contribute to one of Django third-party package.

you can contribute to another open source package there is plenty of them

there is a there's plenty of maintainers that really would like to get your help

that was not so obvious for me at the beginning when i started to to work in an open source world

because i imagine that all open source packages and their maintenance are just

some kind of superheroes out know everything and and it's it probably will not be helpful for them

to to to to get any any time or any code from me but that's not true right not all superheroes wear

capes right but like all projects are under maintained or well i don't know i don't know

whether all projects but most projects most maintainers could do with a helping hand like

they could do with your input yeah i've said i've started with really small uh django filter packages

that is called django request and it was also quite surprised for me that after sending five

or six pull requests to to this package it may turn and ask me to hey maybe we will create a

Django request team and you will help me to maintain this field map. I was really surprised

also with such a word welcome because it was someone's work and

he gave me an access to his repository and asked for help. It was a small but big step for me.

open source maintainers are very trusting i was curious carlton since you also got started with

a number of packages if that was a similar case where a couple prs in the maintainer says

here's here's the store here's access because in you know non and non open source engineering

context no one would do that but it seems actually quite common uh in open source if they get a sense

that you're a reputable actor um i guess you can always revert everything but people are pretty

trusting once you've crossed a bar. Yeah, I think so. I mean, the issue is time, right? So,

you know, I've got a few projects that I want to work on over the summer. And the reality is we're

halfway through the summer, and I've, you know, not had very much time to work on them at all.

But, you know, I'll chip away and, you know, I'll get to do a release in the autumn. But

the cadence for that kind of management is very much slower than, you know, something that's

fully maintained with paid time simply because it's volunteer effort and so if you can come along

and say look i'll fix this issue or i'll you know triage tickets or i'll that's amazing um i don't

know a single maintainer who's not going to jump at that because i don't know any project which has

got more hands on it than is needed to keep it going right uh well uh marius for you um what

was that process like uh becoming a fellow how did how much work did um carlton need to do to

indoctrinate you or what was that onboarding process like because when we had tim graham on

um carlton and tim talked a little bit about that process but what was it like for you because that

was that wasn't that long ago so to be honest at at the at the very beginning

it wasn't

really tough for me because

I was already a part of the Django

core team

I had access to the Django repository

I was aware of how to

backport changes, how to

review tickets, how to

triage tickets, etc

so I know the

entire process

mainly

I can say that

But especially I should be thankful to Tim Graham for that because from 2017, when I became a member of Django Core team,

He helped me a lot with reviewing tickets, with the entire process, with a lot of tips

and how to do some things.

So I'm extremely thankful to him, to I can say Scheiberger, because he was responsible

for the Oreg backend previously.

Of course to Simon Charette, who is our ORM star in the jungle, so if you have any questions

heavy ORM specific issue, then we can also ask him for help.

But I don't think that the entire process of

becoming a Django fellow was really tough for me. I just switched from doing

almost the same in my extra time to normal daily work. Maybe with some

small differences like releasing Django, previously I didn't know how to release Django,

there is a new version of Django but now I can do this. Yeah, I mean the difference is well I wasn't

actively maintaining Django before I became a Django Fellow whereas Marius was. I got the

the fellow role from the basis of my work on drf and jenga filter and you know other packages but

maris has already been there and working on the orm and you know when tim said he was going to

step down i was a bit like wow tim knows so much how's it going to work without him and then when

the fellow committee then they nominate when they picked marius i was like wow that's the perfect

person it's you know exactly i know you were telling me like and i was asking you how do you

how you felt about it carlton you were saying how thrilled you were and then you've been saying the

same thing the last couple months how you know maris is a superhero amazing work you've been

doing maris so thanks anyway right maris tell us about the um what is the for our listeners tell

us about the fellowship role and tell us you know what that involves and you know what is the

fellowship role for people who don't know because i've seen you you you do tweets i think monthly

is it talking about um tickets you've you've handled um i find that uh very helpful i almost

wonder actually for you two fellows um in the same way that tom christie does a monthly update

if perhaps more visibility on the the roles that you that you got that you both are doing would be

helpful to the community well there is we do um fellow reports on django developers where we um

which is the public the the public facing work that we do so that you know tickets that we've

reviewed on track or um or prs that we've reviewed on github um we see those there's other work that

we do like security work which we don't put in those those fellow reports but yeah well maybe

it's maybe it's more just there's a divide between developers and the rest of django and

i feel like um you know perhaps i can promote it a little bit on my newsletters the fellows report

but i think most people aren't actually aware of what the two of you are doing yeah maybe what are

we doing what's the uh yeah so what are you doing even for me it was quite hard to uh explain what

i'm really doing in in this job even to my previous colleagues or other developers here

when they asked what you are doing as a jenga fellow and when i try to explain them that it

It is not mainly related with writing a Django, with writing a code to the Django core.

I was quite surprised that it is not the biggest part of our job.

So we are mainly responsible for reviewing tickets, for triaging tickets, for reviewing

pull requests.

think that's the main part of our job and so my daily routine starts from checking Django updates

with checking all events on our track instance comments that people add new tickets etc

I started, I mainly started from reviewing tickets, reviewing unreviewed tickets

and after that reviewing pull requests, left some comments. We are also responsible for

maintaining CI infrastructure, we are also responsible for

Bing for example on IRC channel and other support Django channels to

be one of the line of supports for users but we have so many people that are involved in

supporting users on django users google group or in django irc channel that

it is not a it is not the biggest part of our daily work so mainly charging tickets

reviewing requests merging them backporting changes but we are also checking django security

group discussed security issues if it's a security issue or not how to solve them

mainly that's it and doing the security releases and yeah yeah that's one of the biggest yeah we're

gonna sorry call them we're uh we'll link to the django developers and django users groups because

i'm i'm looking now at the monthly fellow reports that you um you both put out um so for folks who

do want to see there is a lengthy detailed report i just this is the separate question of communication

within django and it is when you use it at google groups work but um maybe not the most public

facing forum for stuff i mean one thing that's been coming to me recently over the summer there's

been you know we just did a security release release with four security issues and then the

month before that there was a security race with um one or two i can't remember without looking

right now but there's been a lot of work there and then there's also been issues on django project

tom.com and then there's a django people and there's django packages and you know there's

there's all these other extra site django snippets i think he's under the um django organization now

as well or has been for years i don't know but there's these other bits of the kind of django

ecosystem that ostensibly marius and i meant to maintain as well or part of our remit is to keep

those maintained we just don't have the time because we're working on the core django project

um the django you know open source project the django and so one thing that's really been coming

to me is that is when as an as another way that people could contribute is in all these other

things around the community which i've been coming to realize are part of the fellow role

but which are almost unmaintained because there just isn't the bandwidth there to support them

well what's an example of a community that does this right is there a a language or framework

django can borrow from um i mean because this is a hard problem that's a good question um i guess

part of the issue is that django truly is open source and community driven whereas some some

projects are much more solo efforts with a little bit of help and so those solo efforts can have a

canonical you know i'm thinking of view or laravel where there's one person who's really

driving it i guess um drf it's you know it's you and tom carlton for quite a while yeah i mean what

would i say i mean i think there's things like django packages which has been around for a long

time which is super which is great um and there's django snippets which again has been around since

the early days of django and but they're not really picked up and loved and we either need

to sort of say to them well say either we need to go to the dsf members mailing list which if

you're not a member of the dsf join it as we say every week almost um but we either need to go to

that mailing list and say hey there's there are these resources that need maintaining can we find

some volunteers to help maintain those or we need to end of life them and scale back a bit um i don't

know what do you think maris because you you i saw you a week or two ago you ended up spending

you know quite a lot of time maintaining django people um so what happened there and what are

your thoughts on the scope of the of the django project yeah we have a lot of packages and

to be honest also a lot of sites that are under django swings so uh it's it's it's really hard to

maintain all of them

just like the issue that we had

with Django

people

a week or two ago

with some

strange size

that we get instead of

Django people

and to be honest

it's still something that

we did not understand

how it

was having probably some issue in Heroku, but it's hard to understand what really happened.

But yeah, I spent the entire day on bumping requirements, on redeploying Django people on Heroku, etc.

But previously, before this issue happened, I did not really spend time

in maintaining Django, in maintaining Django people so

But suddenly an issue appeared on the Django people that they have a strange size in-seat of Django people and maybe we should

fix this

So I was whoa

What just happened?

It's really strange. Maybe some outdated requirements? Let's bump them?

No, no. It wasn't better.

So yeah, but it seems that currently it works fine, but we have a lot of packages

that are currently in the Django org, like Django docker box that we

moved from Tom Forbes' repository under the Django.

Let's talk about the Django docker box project for a minute.

What is that?

Because I think that's going to be a really useful tool.

Can you explain what that is and how people might use it?

To be honest, for me it's extremely useful

because I'm not able to have multiple databases versions on my own laptop.

In the Django docker box we have ready-to-use containers with a different version of all

databases that are currently supported by Django, with different version of libraries, for example,

GIS libraries. And you can use them to run tests. We can use them to find issues on different

versions. Because our CI infrastructure currently works with a single version of each database,

mainly the last the newest supported version of each database and in the Django docker box

we have all supported versions with the entire test suits and we are able to catch some small

issues in the previous version of each database like I don't know this single test is failing on

PostgreSQL 9.4

for example

or MariaDB 10.1

point something

which you will not be able to catch

without it

and it is also really helpful

for users because you don't need to

set up the entire test suite

Right, so that's what I was going to say

Do you think using Django Dockerbox

is a better way forward for new contributors?

I mean, assuming they're happy with Docker

you think

that's the way forward to recommend to

new users to get going with the Django

DevSuite and get going

with it. Exactly, if you have a

basic Docker knowledge like me

then you will maybe

to use them

to run the entire test without

the entire

process that

can be quite hard to

set up database

1, 2, 3 or 4 different

databases

databases and to set up everything correctly

it's easier, especially if you are trying to submit a patch

to the URL, it's the hardest part because you need

to support all database versions

And so speaking of all database versions

you said you got into Django because of your use of Oracle

because you chose to support the backend, so for all of us who aren't using Oracle

what what's the offer what's you know because it's got this reputation as the enterprise

beast but you obviously have fun with it so you know give us the 10 second elevator pitch what's

oracle for us and why should we use it yeah i think that the oracle is just a normal database i i know

that is maybe not as supportive for users and developers.

That's the main issue, I think, with the ORAC database.

That is not developers-friendly,

just like Pository SQL, for example, or other databases.

But it is changing in the last few years.

So you can see that there is a process

of changes in the ORAC database

and it starts to

look almost like

a PostgreSQL.

For example, a year or two ago

they added a feature that is really similar to the

different databases like in the PostgreSQL.

You can have different databases in the same engine, in the same instance.

So I think that it was a big step forward.

Now they are trying to support JSON fields and a few other features that they added recently.

So it's better than it was a few years ago, but currently I'm not using it daily.

So, and I'm thankful for that, to be honest.

I think that the biggest advantage of using Oracle Database

is the entire asset of enterprise management utilities

that they give for you.

So, probably you will not find so many features for DBAs

like in the Oracle Database.

Okay, so it's easy to administer.

Yeah, it's easier than in other databases.

Oh, I was going to ask if Oracle ever reached out to you

or other Django people directly.

Do they give a shit about Django with new features saying,

hey, we worked on this, or is it just they toss it out there

and assume someone like yourself will do the free work to integrate it?

I'm not sure if they really care about the open source world,

But few years ago, they take under the Oracle organization at least Python driver that was previously maintained by a single person.

Currently he's an Oracle employee and I think that it is his daily work to maintain Python driver for the Oracle database.

so at least some step forward but but yeah they did not try to uh preface i'm not sure if

we try to reach them to to to get some funds it's it's hard for me to say it seems like something

that we should do right we should reach out to this giant megacorp oracle and say hey can you

give us some peanuts so that we can maintain the support in the leading or one of the leading

python web framework well and there's a real danger marius with you not using it day to day

that it will not be as maintained as it has been so who would we who would do that reach out carlton

this is actually just so we make this for those listening part of the problem with django is that

there's a lot of cooks like who who would anybody who's empowered to do that reach out so marius

could email them i could email frank could email frank president of the sf board could email them

but we'd have to put that on his radar um you know any member of the dsf anybody any user could

be like hey i use django and i listened to this podcast on django and they said that oracle don't

fund maintenance of the back end how about you fund like but yeah ultimately i guess we should

reach we should reach out and say hey dear oracle please can you support us but well and ultimately

it's finding there are big companies out there using oracle and django and in the absence of

support we'll need to drop one or both for their project yeah probably the hardest thing in

reaching them would be to to get contact with someone that that that really can make a decision

yeah because it's a huge organization yeah well yeah and we don't have to spend the whole episode

on oracle but they must it must be a solved problem for some other frameworks or languages

it can't always just be this beast that is totally disconnected from the programming world that uses

it and pays their bills anyway maybe someone from oracle is listening what would be like what would

be helpful i'd be nice like for you both what would what would you like people to know about

fellows that they don't already know and what could the community do to make your roles easier

Probably people that are not maintaining any open-source project don't know how hard it is to maintain open-source projects.

So, one thing that I like to say, if you reach any open-source project, Django or any other, then be polite to maintainers.

because they are real people that, in many cases, have their own job,

have their own family, and maintaining open source projects

is not what they would do daily for eight hours.

And sometimes in an open source world, you reach that kind of discussions or conversations

conversation when people are just arguing or or trying to

say not really supportive things like you are not maintaining this package very well so i will not

use it yeah and they are not there you don't understand that it is not something that uh

would like to hear and in most of cases they shouldn't really they don't really bother of

that kind of comments yeah yeah well it's and i think it's it's an extreme version of what

happens to a lot of software um if you if you're at a startup there's often the case where you're

less happy as it grows because the numbers on the screen increase but the amount of complaints you

get from users that's you know you hear those and you have to deal with those so even though

you've gone from 100 to 10 000 users day to day you're going from 5 to 50 complaining people and

so you're just sort of miserable because there's that disconnect between digital and the human side

of what you're doing and i for for you both as well you yeah and i think a lot of that like the

the job of tree art the reason why no so why was the fellowship program created was because no one

was triaging tickets and no one was reviewing pull requests and it can it it can be really

difficult you know you've got a pull request that's three years old on the ticket that's

nine year old nine years old that's been updated and some more tests have been added but comments

which were vital four years ago haven't been addressed and to find that history and to really

work out what's going on it can you know it's really hard work and then you get to the end of

then you're like wow i'm exhausted and that's why the fellowship role exists because that work

simply can't get done and we're working our butts off to get us to do as well as we can

and if people people all i guess i would ask is people recognize that and people realize that

we're doing our best and if you don't agree with us that's fine just say hey i don't agree and try

and explain why rather than the passive aggressive or i'm going to stop using janga it's like

you know

come up with a better insult

right? I mean that's not

yeah

but I need to say that in Django community

we are

really happy people because it's not

really often that we get that kind

of comments

but yeah instead of

adding comments to some

track tickets that's when you will

move this forward

you need to always remember that

patches are welcome yeah if you want to move it forward prepare a patch and we'll review it as

soon as as we will be able to and we we do quite well you know we did like the the patch so in the

track system there are patches which there are lots of patches submitted there's 200 open pull

requests but lots are flagged with need improvement they've got reviews on them or they need

documentation so they've got reviews there's only about 20 which are sort of they not with a review

already in place and that that 20 rolls over pretty quickly you know you we get there we get

there quite fast we i think we do quite a good job and you know maris is amazing and i do the

best i can so well marius i'm curious for you uh so django has a number of new features coming

forward i guess most prominently um async what are you excited about that's coming to django

as opposed to the maintenance role

that you have to spend a lot of time on?

To do this async thing,

I'm not an async person or an async expert

and it was a huge challenge for me

to review this first async ticket

with adding an SG handler, for example,

because I didn't even know where to start.

And in the same time,

You are responsible for adding this to Django, for the quality of this code, because partly

we are responsible for that, for not creating new regressions, etc.

So I had to learn a lot about async in this first patch.

And probably I will learn even more when we add async support for views and to another

part of Django.

I think it will be a big challenge, I'm not sure if we will be able to reduce Django 3.0

to at async support for views, but we'll see, because we have only one month to the feature

freeze and also a lot of other features in the line like adding enums for example to Django.RM,

adding a new currently we added a new exclusion constraints to PostgreSQL, we

have also a lot of new features that are waiting in the line and currently when we have only one

month to the future freeze you can see a beginning of this pressure that's my new feature you should

add it because if not then I will need to wait another few months to the next Django release

so please please add it at this last day before the future freeze you should review it and

move it into coral. So we need to be really

assertive people, at least in these few last weeks before the future freeze.

But we have so many new features currently in the Django 3.0 that even if we will not add any new

new feature to Django 3.0 it is already astonishing what is that date for a feature freeze it will be

at the beginning of September 8th of September I think 9th I think but yeah okay yeah well perhaps

we want to editing note move this episode up Carlton just so that people are aware of that

deadline who maybe wouldn't pee yeah I mean I think anybody who's regularly developing knows

the feature freeze is coming because it's it's kind of yeah i just i think most again i'll be

the voice of ignorance i think a lot of people aren't aware of the schedule and for your yeah

so if someone has submitted something they're aware of that for a regular person they're not

aware that by september you know it's coming in december more or less yeah i mean so the

interesting thing with the feature freeze is like it it gives us time to release the alpha or the

beta the the release candidate get those tested in the community and that's generally speaking why

the the point releases are good quality and they're you know there'll always be half a dozen

little mini regressions in some new feature but the point of the having the feature freeze is to

allow time for those bugs to be found but you know we we have to be i don't know kind of certain that

there isn't bugs we can't just go oh we've still got three months to fix it it's like no no this

is if it's not ready we we can't bring it in at this point right any projects you want to make

side projects you want to mention marius yeah i'm i'm so involved in in django that

in the last i don't know two or three years i didn't have time for any side projects

if people do want to get in touch beyond the google developers uh the developers google group

is there a way that they could or should twitter email do you have any preference

i think that the best way to to reach us is on django irc channel django dev irc channel to be

honest because basically we are there for then for the entire day maybe not actively but when i

start my job I'm just opening RSC channel and I get the entire history from

from the last few hours yes so we are able to respond to any comment there so

if you have an issue with I don't know running a test suit or you would like to

propose a new feature but you are not sure if this should go to the core you

You can add a new comment on our IRC channel, and if not one of us, then probably another

from the community will respond to that.

I think that the IRC channel is the best and the most responsive way to get help in using

Django and to get help with starting to contribute to Django also.

okay great yeah maris is maris is very active there and so a lot of the other core members

i'm less so i'm more of an asynchronous methods person so you know for me if you want to help get

setting up the test suite email django core mentorship and i'll get that and reply there

you know i'm on irc but yeah well we'll link to all these resources in the show notes so

they're available to everyone right brilliant right let's leave it there thank you marius

thank you very much for coming on to the show um it's been super having you and thank you for

joining us everybody we're on twitter at chat django and um django chat.com join us next time bye